Я пытаюсь перенаправить некоторый трафик с одного экземпляра клиента OpenVPN на другой. как изображено здесь

Я хочу перенаправить трафик с некоторых портов и оставить другие на экземпляре VPN1.

Все правила, которые я применяю, относятся к VPN1, поскольку клиенту не нужно заботиться о том, будет ли перенаправлен его трафик, а также VPN2 не нужно заботиться о том, "кто" запросил запрос. Итак, вот правила, которые я использую прямо на экземпляре VPN1:

Чтобы клиент мог добраться до сети 10.8.0.0/24, я добавил в файл server.conf который добавил:

push "route 10.8.0.0 255.255.255.0"
route 10.8.0.0 255.255.255.0

Для пересылки трафика с tun0 на tun1 я добавляю следующие правила:

iptables -t nat -A POSTROUTING -o tun1 -j MASQUERADE
iptables -A FORWARD -i tun0 -j ACCEPT     #forward traffic 

Для подключения к интернету по первому туннелю у меня также есть:

iptables -t nat -A POSTROUTING -s 10.8.100.0/24 -j MASQUERADE

Итак, вот где я начинаю терпеть неудачу. По этой ссылке я добавил следующее:

echo "1 nextHop" >> /etc/iproute2/rt_tables
ip route add default via 10.8.0.1 dev tun1 table nextHop
ip rule add from all fwmark 0x1 lookup nextHop
iptables -t mangle -I PREROUTING -p tcp --dport 80 -j MARK --set-mark 1  ## or whatever port I want to forward.

Когда я добавляю последнее правило iptables, трафик идет от tun0 на клиенте, к tun0 на VPN1, к tun1 на VPN1, на tun0 на VPN2 и достигает Интернета. Тем не менее, ответ tun0 на tun0 в VPN2 и перенаправляется на tun1 на VPN1, но НЕ tun0 на tun0 на VPN1, чтобы достичь tun0 на клиенте. Я видел это с tcpdump .

Я пробовал много разных подходов, используя DNAT и SNAT но я все еще не могу переслать ответ обратно клиенту.

Как я могу перенаправить некоторые порты из VPN1 в VPN2 и получить ответы обратно клиенту?

0