@FlowerShopGuy

Как пробросить порты ч-з несколько сетевых интерфейсов на Ubuntu?

Имеется сервер на Ubuntu, с 2мя сетевыми интерфейсами, за которыми роутеры со своими провайдерами и своей подсетью.
Интернет и прочее на Ubuntu приходит по DHCP по двум eth. А на роутерах проброшены определенные порты которые идут на конечный сервер.
Так вот, проброс портов работает только на одном из роутеров, т.е с внешки могут стучаться в UBuntu только с одного роутера, а именно с того, чья метрика меньше (соответственно с него и интернет берется тоже), но не одновременно ч-з два роутера.
Мне нужно, чтобы интернет брался допустим с eth0, а проброс портов работал с двух роутеров ч- eth0 и eth1 одновременно, а не с того, чья метрика с 0.0.0.0 меньше.
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ответы на вопрос 1
Bermut
@Bermut
Жертва домашней лаборатории
Это решается таблицами маршрутизации, маркировкой соединений через mangle правила, если кратко, то должно выглядить как-то так:
ip ru a table 1 fwmark 1
ip r a default via <1 ips gw> t 1
ip ru a table 2 fwmark 2
ip r a default via <2 ips gw> t 2
iptables -t mangle -I PREROUTING -m conntrack --ctstate NEW -i <eth ips 1> -j CONNMARK --set-xmark 1
iptables -t mangle -I PREROUTING -m conntrack --ctstate NEW -i <eth ips 2> -j CONNMARK --set-xmark 2
iptables -t mangle -A PREROUTING -m connmark --mark 1 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -m connmark --mark 2 -j MARK --set-mark 2
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы