Показать страницуСсылки сюдаODT преобразованиеPDFэкспорт ODT=>PDFНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Zyxel и объединение сетей через VPN ====== Задача решалось применительно к OpenVPN-соединениям, но ничего не мешает применить это же решение к другим типам VPN-соединений. ===== Постановка задачи ===== Есть головная сеть (головной офис, сеть на работе и т.п.), есть удалённая сеть (филиал, домашняя сеть и т.п.). Необходимо связать сети между собой через VPN и обеспечить доступность компьютеров из одной сети в другой. Т.е. чтобы из удалённой сети можно было зайти на комп в головной сети и наоборот. Удалённая сеть построена на основе Zyxel Keenetic Giga III ===== "Условные обозначения" ===== Головная сеть имеет следующие блоки адресов: 1.1.1.0/24, 2.2.2.0/24, 172.16.0.0/15, из них первые две сети -- публично доступные адреса. Публично доступный адрес VPN-сервера в головной сети: 1.1.1.11 Удалённая сеть имеет адресацию 192.168.1.0/24 Сеть 172.18.1.0/24 используется для организации VPN-доступа. ===== Решение ===== Ключевые настройки на стороне сервера: <file conf openvpn.conf> server 172.18.1.0 255.255.255.0 client-config-dir ccd route 192.168.1.0 255.255.255.0 client-to-client </file> <file conf ccd/clientName> ifconfig-push 172.18.1.6 172.18.1.5 iroute 192.168.1.0 255.255.255.0 push "route 172.16.0.0 255.255.0.0" push "route 172.17.0.0 255.255.0.0" push "route 1.1.1.0 255.255.255.0" push "route 2.2.2.0 255.255.255.0" push "route 2.2.9.0 255.255.255.0" push "route 4.5.6.7 255.255.255.255" </file> Здесь последние две строки обеспечивают маршрутизацию в стороннюю сеть 2.2.9. и к сторонней машине 4.5.6.7 из удалённой сети через VPN-канал. Кроме того настраиваем трансляцию адресов: <code bash> iptables -t nat -A POSTROUTING -s 172.18.1.0/24 -d 1.1.1.0/24 -j RETURN iptables -t nat -A POSTROUTING -s 172.18.1.0/24 -d 2.2.2.0/24 -j RETURN iptables -t nat -A POSTROUTING -s 172.18.1.0/24 -d 172.16.0.0/15 -j RETURN iptables -t nat -A POSTROUTING -s 172.18.1.0/24 -j SNAT --to-source 1.1.1.11 </code> На стороне клиента, при создании VPN-соединения, снимаем галочку в поле "Использовать для выхода в Интернет", и, наоборот, ставим в поле "Получать маршруты от удаленной стороны". В целом, это стандартная настройка OpenVPN-сервера и клиента. На этом этапе из удалённой сети будут пингаться машины в головной сети, при условии, что тем или иным способом будет построен обратный маршрут. Но машины в головной сети будут получать пакеты, "заНАТеные" адресом 172.18.1.6. Кроме того, из головной сети машины в удалённой сети будут не доступны. Чтобы решить эту проблему заходим на Zyxel через telnet/ssh и в командлной строке вводим следующее: <code bash> ip static Home ISP no ip nat Home interface OpenVPN0 security-level private no isolate-private </code> Первая строка включает НАТ для пакетов пришедших из локальной сети и уходящих через интерфейс в сторону провайдера. Вторая строка отключает безусловный НАТ пакетов из локальной сети. Две последние отмечают, что VPN-канал надо считать локальной сетью, и что локальные сети на разных интерфейсах могут взаимодействовать друг с другом. Проверяем, если всё хорошо, в CLI говорим команду ''copy running-config startup-config''