Ubuntu NAT с несколькими соединениями

У меня есть сервер Linux с 2 WAN-соединениями. Он имеет 2 общедоступных IP-адреса: WAN_IP1 и WAN_IP2. Шлюз сервера по умолчанию — WAN_IP1.

Сервер также имеет 2 интерфейса LAN и соответствующие подсети.

Этот сервер должен пробросить какой-то порт с WAN-адреса_S_ на какой-то LAN-сервер, я всегда делал это с помощью DNAT или MASQUERADE.

Например, у меня есть веб-сервер в моей локальной сети с адресом LAN_IP1, и правила таковы:

iptables -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.10:80
iptables -A POSTROUTING -j MASQUERADE

Когда я пытаюсь подключиться к веб-серверу через WAN_IP1, все идет хорошо, так как WAN_IP1 является шлюзом по умолчанию, но когда я пытаюсь через WAN_IP2, ответ от сервера LAN направляется через шлюз по умолчанию WAN_IP1, и поэтому соединение никогда не устанавливается.

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

Какие-либо предложения?


person snovelli    schedule 29.07.2014    source источник


Ответы (1)


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

Более «чистый» способ, который приходит мне на ум, — поставить маршрутизатор перед вашим сервером, который поддерживает соединение как с глобальными сетями, так и с вашим сервером. Ваш сервер будет общаться только с маршрутизатором (его шлюзом по умолчанию), а маршрутизатор будет маршрутизировать пакеты.
Хотя это практически похоже на указание дополнительных маршрутов на сервере, хотя они настроены на маршрутизаторе. в этом решении, но это возложило бы бремя управления сетью на сетевое оборудование.

person Ulrich Thomas Gabor    schedule 29.07.2014