Локалка 1 - Сервер1/OpenVPN - INET - Сервер2/OpenVPN - Локалка 2
192.168.1.0/24 192.168.2.0/24
Проблема в том, что пакеты между локалками ходят, только если на
обоих серверах есть правило в iptables/nat:
-A POSTROUTING -s 192.168.1(или 2).0/24 ! -o eth1 -j MASQUERADE
TCP forward включен. Если это правило убрать, то пакеты доходят
только до следующего сервера и остаются (!) в tun интерфейсе, не
пытаясь идти в чужую локалку (т.е. в интерфейс eth1).
Есть идеи как это исправить?
Извините за недоверие, но пакеты точно не идут через eth1 в локальную сеть? Вы проверяли tcpdump/wireshark? Гораздо вероятнее, что в локальной сети проблемы с маршрутизацией.
Маршруты есть - как я уже сказал в первом сообщении - пакеты доходят до второго сервера и там умирают в tun интерфейсе.
sysctl -a | grep rp_filter
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.eth1.rp_filter = 1
net.ipv4.conf.eth1.arp_filter = 0
net.ipv4.conf.tun0.rp_filter = 1
net.ipv4.conf.tun0.arp_filter = 0
Первый сервер - eth1 - LAN