LINUX.ORG.RU
ФорумAdmin

iproute2 два провайдера один сервер

 


0

1

В локалке есть два роутера 10.1.1.1 и 10.1.1.2, оба пробрасывают 80й порт на сервер 10.1.1.33.

Если заходить на сервер через первый роутер - все ок. Если через второй, то сервер отправляет ответы через первый, который прописан как дефолтгв.

Подскажите, чего сказать iproute чтобы пакеты уходили в гейт с которого пришли.

Чем вообще отличаются пакеты с разных роутеров кроме мака отправителя?

Придется в iptables второго роутера пакеты маркировать?

Как-то я такое уже делал, давно, вообще не помню как :(

Ответ на: комментарий от Rost

впрочем, маркировка тоже хороший вариант

Rost ★★★★★
()

Чем вообще отличаются пакеты с разных роутеров кроме мака отправителя?

Ничем, только этим. Следовательно нужно маркировать соединения на основе MAC-а router-а (по первому входящему на сервер пакету).

spirit ★★★★★
()

Настрой маршрутизацию от источника, пример ниже.

ip route add default via 10.1.1.1 table 101

ip route add default via 10.1.1.2 table 102

ip rule add from 10.1.1.1 table 101

ip rule add from 10.1.1.2 table 102

sirius
()
Ответ на: комментарий от sirius

Не выйдет. Там ответы на оба шлюза идут от 10.1.1.33.

Если есть возможность поставить два адреса на сервере - то это лучший вариант.

Если нет - то проще маркировать трафик от второго шлюза.

Oleg_Iu
()
Ответ на: комментарий от sirius

Точно, не выйдет, Oleg_Iu прав. Тогда и правда - маркировка, как выше предложили.

sirius
()
Ответ на: комментарий от spirit

То есть, сделать правило на сервере по маку источника и маркать его для iproute критерия fwmark? Еще пришло в голову. Может на втором роутере менять tos, а на сервере использовать критерей iproute tos? Как вариант.

klim888
() автор топика
27 апреля 2021 г.

У меня точно такая же ситуация: 2 роутера в одной сети с белыми ip, несколько портов прокинуты внутрь на web-сервер. Если подключаться извне к первому роутеру (внутренний ip 192.168.1.1 - шлюз по дефолту), то всё ок, а если ко второму (внутренний ip 192.168.1.100, mac E8:28:C1:DF:EE:B0), то apache отправляет ответ на первый роутер и подключиться не получается. Решил проблему следующим образом:

echo 201 rt >> /etc/iproute2/rt_tables

iptables -t mangle -I PREROUTING 1 -p tcp -m mac –mac-source E8:28:C1:DF:EE:B0 -j CONNMARK –set-mark 1

ip rule add fwmark 1 table rt

ip route add default via 192.168.1.100 table rt

iptables -t mangle -I OUTPUT -j CONNMARK –restore-mark

Вроде работает, правильно я сделал?

asingl
()
Ответ на: комментарий от Bootmen

Походу ТС очередной бот. Спящий бот с 2015 года. Проверте его историю.

Bootmen ☆☆☆
()
Последнее исправление: Bootmen (всего исправлений: 2)
Ответ на: комментарий от Bootmen

Похоже, Вы не поняли вопрос.

У клиентов всё хорошо, они ходят в инет через первый роутер. Второй используется как резервный. При аварии на первой линии достаточно сменить шлюз с первого на второй и инет заработает через второй роутер.

Но в сети есть вебсервер, который в обычном режиме должен быть доступен извне со второго роутера тоже, хотя шлюзом у него указан первый. Вопрос был как раз про это: как менять маршрут пакетов на вебсервере в зависимости от того, откуда пришел пакет. Потому, что изначально все пакеты он отправляет на первый шлюз и по второму белому ip вебсервер оказывается недоступен.

Sirius подсказал, как это можно сделать, а я нашел подходящие для меня команды.

asingl
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.