Здравствуйте.
Имеется несколько внешних интерфейсов с реальными IP от разных провайдеров, далее настроен NAT.
Чтобы сервер был доступен из интернета по всем адресам, я использовал
up ip route replace default via шлюз_ифейса table t1
up ip rule add from ип_ифейса lookup t1
и так для каждого интерфейса.
Все вроде бы работает, за исключением одного.
С машины, которая за натом, нельзя достучаться до сервера по IP адресам других ифейсов (на которые прописаны эти правила) т.е. пакеты уходят обратно не туда.
Подскажите, как бы это поправить...
routing нескольких сетей + nat
Модераторы: SLEDopit, Модераторы разделов
-
user
- Сообщения: 163
- Статус: ~
- ОС: Debian GNU/Linux
-
verrens
- Сообщения: 14
- ОС: Sid
Re: routing нескольких сетей + nat
ip rule show показывает что-то типа этого?
Код: Выделить всё
0: from all lookup local
32764: from $ip2 lookup t2
32765: from $ip1 lookup t1
32766: from all lookup main
32767: from all lookup defaultЛокальный роутинг (который автоматически при поднятии интерфейса добавляется) прописывается в таблицу main, и в твоём случае, скорее всего, до этой таблицы дело просто не доходит, останавливаясь в t1 или t2. Поэтому обратно пакеты могут уходить лишь через интерфейсы соответствующих default route-ов.
Исправляется это достаточно легко - из main-а удаляется default gw (то бишь default gw должны быть прописаны лишь в таблицах внешних шлюзов) и после всех ip rule выполняется команда 'ip rule add from all lookup main', чтобы правила были вида:
Код: Выделить всё
0: from all lookup local
32763: from all lookup main
32764: from $ip2 lookup t2
32765: from $ip1 lookup t1
32766: from all lookup main
32767: from all lookup default