Мне нужно настроить что-то вроде этого:

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

0