Мне нужно настроить что-то вроде этого:
Clients - OpenVPN_tun0 - Int_Server - OpenVPN_tun1 - Ext_Servers - public_internet
Оба OpenVPN-туннеля запущены и работают с использованием 'dev tun', но у меня возникают проблемы с маршрутизацией трафика между туннелями.
Сервер OpenVPN_tun0 - это Int_Server, а Int_Server - это клиент в OpenVPN_tun1.
OpenVPN_tun0 - это 10.20.30.0/24 (только один сервер), а IP-адрес OpenVPN_tun1 варьируется (несколько серверов, в конфигурации tun1 «удаленно-случайно»).
Int_Server работает на Fedora21, поэтому у него есть firewalld.
Int_server В конфигурации сервера OpenVPN есть «push» redirect-gateway », поэтому весь трафик от клиента направляется в OpenVN_tun0.
Проблема в том, что у Клиентов нет доступа к Интернету, если я не включаю маскирование для публичной зоны в Int_Server ('firewall-cmd --zone = public --add-masquerade'), а затем трафик выходит из 'eth0' интерфейс.
Вот что у меня сейчас (без маскировки публичной зоны):
Int_Server # firewall-cmd --list-all-zones | grep -v -e ": $" -e "masquerade: no$"
...
external (active)
interfaces: tun1
masquerade: yes
...
internal (active)
interfaces: tun0
public (default, active)
interfaces: eth0
services: xxx yyy zzz ssh
...
Int_Server # firewall-cmd --direct --get-all-rules
ipv4 filter FORWARD 10 -i tun0 -o tun1 -m conntrack --ctstate NEW -j ACCEPT
ipv4 filter FORWARD 20 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Int_Server # cat /etc/openvpn/openvpn.log | grep ROUTE_GATEWAY | tail -1
Mon Jan 19 21:49:53 2015 ROUTE_GATEWAY x.y.z.1/255.255.255.0 IFACE=eth0 HWADDR=ff:aa:bb:cc:ee:ee
Любая помощь приветствуется, начиная с подтверждения того, что в первую очередь возможна маршрутизация между двумя туннелями OpenVPN.
-Paavo