Назад | Перейти на главную страницу

Маршрутизация исходящего трафика HTTP / HTTPS через другую подсеть

Я пытаюсь настроить Linux-сервер, который изначально должен был находиться только в одной «серверной подсети». Однако я вынужден использовать прокси для доступа к службам HTTP / HTTPS в этой подсети, что вызывает множество проблем с моими веб-приложениями, которым требуется доступ к API через HTTPS.

К счастью, Сервер подключен ко второй «клиентской подсети», которая предлагает неограниченный доступ к службам HTTP / HTTPS. Я настроил обе сетевые карты, и теперь я получил подсеть сервера на eth0 и клиентскую подсеть на eth1.

Я читал о похожих проблемах, и самое близкое, что я нашел, было следующее: https://askubuntu.com/questions/104400/how-to-put-all-traffic-and-on-one-interface-and-some-traffic-on-another-interfac Я выполнил инструкции и соответственно изменил порты и интерфейсы (шлюз eth0 является шлюзом по умолчанию):

iptables -t mangle -A OUTPUT -p tcp --dport 443 -o eth0 -j MARK --set-mark 1
ip rule add fwmark 1 table 1
ip route add 0.0.0.0/0 table 1 dev eth1

Однако, похоже, это не работает.

Мне было интересно, это ли фактически возможно, с технической точки зрения, даже создать определенные правила маршрутизации, которые позволяют направлять локальный исходящий HTTP / HTTPS-трафик через другую подсеть.

Я знаю, что этот пост действительно старый, но совсем недавно я решил эту проблему, используя другой подход, который включает маршрутизацию исходной политики: Не удается проверить связь с многосетевой Linux-машиной на нестандартном интерфейсе.

Хост подключен к двум сетям. «Подсеть клиента» позволяет получить доступ к внешним ресурсам, однако к ее клиентам нельзя получить доступ извне. К клиентам в «подсети сервера» можно получить доступ извне сети, однако они не могут получить доступ к каким-либо ресурсам за пределами своей собственной сети.

                  ---
                   |"Client Subnet"
 ------     eth0   | 3.3.0.10 
| Host |-----------
|      |-----------
 ------     eth1   |"Server Subnet"
                   | 123.123.0.10
                  ---

Я установил шлюз клиентской подсети в качестве шлюза по умолчанию и настроил маршрутизацию исходной политики, как показано в ответе из сообщения выше. Затем сервер вел себя так, как хотелось.

echo 13 eth1 >> /etc/iproute2/rt_tables
ip route add default via 123.123.0.1 table eth1
ip rule add from 123.123.0.10 lookup eth1