У меня проблема со сложной настройкой, и я не могу об этом думать.
Взгляните на рисунок, на нем показаны все задействованные компоненты. В основном я пытаюсь использовать NAT на двух маршрутизаторах, и одно направление работает, а другое - нет.
Маршрутизатор 1 - это OpenWRT с двумя интерфейсами (lan и vpn), а маршрутизатор 2 - это Ubuntu.Архитектура
Маршрутизатор 1 является клиентом OpenVPN и подключается к маршрутизатору 2 (сервер OpenVPN). Подсеть OpenVPN - 192.168.200.0/24, внутренняя LAN слева - 192.168.170.0/24, а 10.0.0.10/24 - на другой стороне. Маршрутизатор 2 также является двухкомпонентным, второй интерфейс предоставляет сервер OpenVPN (10.10.0.1).
OpenWRT продвигается в обеих зонах, а также маскируется в обоих направлениях.
config defaults
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
config zone
option name 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option masq '1'
option mtu_fix '1'
option network 'lan'
config include
option path '/etc/firewall.user'
config rule
option target 'ACCEPT'
option name 'Any - Any - All'
option src '*'
option dest '*'
option proto 'all'
config zone
option name 'vpn'
option output 'ACCEPT'
option input 'ACCEPT'
option forward 'ACCEPT'
option masq '1'
option mtu_fix '1'
option network 'OpenVPN'
config forwarding
option dest 'lan'
option src 'vpn'
config forwarding
option dest 'vpn'
option src 'lan'
Конфигурация iptables маршрутизатора 2 выглядит следующим образом:
iptables -F
iptables -X
iptables -t nat -F
iptables -A FORWARD -i eth1 -o eth0 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -i eth1 -o tun0 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -i tun0 -o eth1 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
А также маршрутизирует:
net.ipv4.ip_forward=1
Я проталкиваю маршрут в сеть 192.168.170./24 на Router2.
route add -net 192.168.170./24 dev tun0
Результат:
Левый сервер 192.168.170.10 может пинговать правый сервер 10.0.0.10, и у меня есть полное соединение слева направо.
Маршрутизатор 2 (192.168.200.1) может пинговать IP-адрес VPN маршрутизатора 1 192.168.200.7 и наоборот. Правый сервер 10.0.0.10 не может пинговать левый 192.168.170.10, и у меня нет подключения справа налево, но я могу пинговать VPN-IP маршрутизатора 1 192.168.200.7.
И это моя проблема. Мне нужна прозрачная маскировка в обе стороны. И я не уверен, где моя проблема :(
Спасибо!
Сделал работу :)
Кажется, вам нужен не только маршрут, но и клиентская директива на сервере OpenVPN, которая подталкивает внутренний маршрут к OpenVPN (iroute)
Замените на общее имя в сертификате клиента и включите директивы клиента в server.conf сервера OpenVPN).
/ и т. д. / openvpn / ccd /
Содержание
ifconfig 192.168.200.7 255.255.255.0 #always configure client with static address
iroute 192.168.170.0 255.255.255.0 #behind this client is the subnet
Видеть http://backreference.org/2009/11/15/openvpn-and-iroute/ :)
Если вы хотите замаскироваться, вам нужно указать для этого шлюз! Заменить строку route add -net 192.168.170./24 dev tun0
с участием:
route add -net 192.168.170.0/24 gw 192.168.200.1
И наоборот...