routing нескольких сетей + nat

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

routing нескольких сетей + nat

Сообщение user »

Здравствуйте.
Имеется несколько внешних интерфейсов с реальными IP от разных провайдеров, далее настроен NAT.
Чтобы сервер был доступен из интернета по всем адресам, я использовал

up ip route replace default via шлюз_ифейса table t1
up ip rule add from ип_ифейса lookup t1

и так для каждого интерфейса.

Все вроде бы работает, за исключением одного.

С машины, которая за натом, нельзя достучаться до сервера по IP адресам других ифейсов (на которые прописаны эти правила) т.е. пакеты уходят обратно не туда.

Подскажите, как бы это поправить...
Спасибо сказали:
Аватара пользователя
verrens
Сообщения: 14
ОС: Sid

Re: routing нескольких сетей + nat

Сообщение verrens »

user писал(а):
18.01.2011 02:44
up ip route replace default via шлюз_ифейса table t
up ip rule add from ип_ифейса lookup t1

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

Спасибо сказали: