Цель: Сделайте 192.168.2. * Доступно с 192.168.0. *
Ситуация: У меня есть удаленный сайт (сеть B) со встроенным в маршрутизатор сервером OpenVPN. На моем конце у меня есть сеть (Сеть A) с VPN-клиентом, подключенным к удаленному сайту (Сеть B). Хост с VPN-клиентом может пинговать все системы в обеих сетях.
Вопрос: Как я могу заставить хосты в сети A связываться с хостами в сети B, предварительно направив их через хост с помощью VPN-клиента? Примечание. Я не хочу, чтобы у каждого из них был собственный VPN-клиент.
Вот диаграмма, которую я создал, чтобы было понятнее: https://networkengineering.stackexchange.com/questions/59630/using-vpn-make-192-168-2-accessible-from-192-168-0
Я пробовал следующее:
На каждом компьютере в 192.168.0. * (Сеть A) будет добавлен шлюз по умолчанию, как показано ниже.
$ route add default gw 192.168.0.3
В GATEWAY (у него мой VPN-клиент) добавьте следующую запись маршрутизации.
$ route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.47
На этом этапе я надеялся, что машины в сети A смогут проверить связь с сетью B, но они не смогли.
Я понял. Мне пришлось настроить iptables на VPN-клиенте для работы в качестве NAT с опцией MASQUERADE, затем мне нужно было добавить IP-адрес VPN-клиента на соответствующий интерфейс в качестве шлюза по умолчанию для каждой системы в этой сети.
Разрешить машинам во внутренней сети (сеть A) связываться с внешней сетью (сеть B)
Вам необходимо настроить iptables для пересылки пакетов из вашей внутренней сети на eth1 (backend) во внешнюю сеть на tun0 (remote).
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables -A FORWARD -i tun0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT
route add default gw 192.168.0.3
Разрешить машинам во внешней сети связываться с вашей внутренней сетью
Вам необходимо настроить iptables для пересылки пакетов из вашей внешней сети (Сеть B) на tun0 (удаленный), во внутреннюю сеть (Сеть A) на eth1 (backend).
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth1 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i tun0 -o eth1 -j ACCEPT
route add default gw 192.168.2.47
вы можете направить весь трафик, кроме интернет-трафика, с сайта B с сайта на сайт openVPN, с сайта на сайт vpn добавит маршрут по умолчанию для сети 192.168.0.0/24, а маршрут по умолчанию будет добавлен в таблицу маршрутизации вашего шлюза, чтобы каждый хост эффективно маршрутизируется через правильный шлюз.
мы попробовали это в сети с двумя виртуальными машинами pfsense (версия 2.4.4), и все прошло хорошо. сайт A был сервером, а сайт B был клиентом для соединения сайтов! сайт B маршрутизировал весь трафик через VPN, но мы переключили его обратно, чтобы маршрутизировать весь трафик http / https на каждую WAN обоих сайтов.