Цель: Сделайте 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 (удаленно) .
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 и маршрут по умолчанию будет добавлен в таблицу маршрутизации вашего шлюза, чтобы каждый хост эффективно маршрутизировался через правильный шлюз.
мы попробовали это в сети с двумя vm pfsense (версия 2.4.4), и все прошло хорошо. сайт A был сервером, а сайт B был клиентом для соединения сайта с сайтом! сайт B маршрутизировал весь трафик через VPN, но мы переключили его обратно, чтобы маршрутизировать весь трафик http / https на каждую WAN обоих сайтов.