LinuxForum.Fans
Тема

Логика маршрутизации

Автор: chegeware 3 сообщений 808 просмотров
#112019

Доброго всем линуксистам.

Маршрутизация в Линукс поражает своим масштабом. Но вот закралось сомнение в базовой логике.
Проблема уже решилась, но до сих пор остается негативный осадок.

Поясню на простом примере.

Дано: два выхода в интернет через ppp0 и ppp1. Параметр defaultroute у обоих отключен.

Изначально была сделана типовая балансировка:

ip route add default scope global nexthop dev ppp nexthop dev ppp1

Интернет входит и выходит (в общем "замечательно выходит" :).

Теперь возникло желание весь трафик пустить только через ppp1. Делаю типовую команду

ip route del default
ip route add default via <шлюз провайдера> dev ppp1


Проблем вроде никаких.

Оставшийся инрфейс ppp0 поднимается вообще без шлюза.

И вот грабли.
По ppp0 нужно принимать из интернета входящие подключения - глухо.

Запускаю tcpdump -i ppp0 - вижу что на ppp0 приходят пакеты, но до локальных процессов они не доходят.

Еще запускаю ping -I ppp0 ya.ru - тоже глухо. Смотрю tcpdump -i ppp0 - и снова вижу что echo request нормально уходит в интернет и нормально возвращается echo reply на ppp0, но до локального процесса ping они не доходят.

Файрвол - ВЫРУБЛЕН.

В небезысвестном http://lartc.org говорится, что в случае нескольких выходов в интернет нужно добавить десяток команд для таблиц маршрутизации, и том числе, с указанием источника пакета (src).

Ситуация напоминает как если я вызвал такси, сообщил свой адрес, приезжает таксист и говорит по Вашему адресу доставлено такси, а я ему говорю - этот адрес вообще не мой, потому что я точно не знаю откуда Вы вообще.

Моя логика в том, что если пришел пакет этому хосту, зачем еще проверять источник пакета.

В чем я неправ?

#112028
chegeware написал:
Доброго всем линуксистам.

Маршрутизация в Линукс поражает своим масштабом. Но вот закралось сомнение в базовой логике.
Проблема уже решилась, но до сих пор остается негативный осадок.

Поясню на простом примере.

Дано: два выхода в интернет через ppp0 и ppp1. Параметр defaultroute у обоих отключен.

Изначально была сделана типовая балансировка:

ip route add default scope global nexthop dev ppp nexthop dev ppp1

Интернет входит и выходит (в общем "замечательно выходит" :).

Теперь возникло желание весь трафик пустить только через ppp1. Делаю типовую команду

ip route del default
ip route add default via <шлюз провайдера> dev ppp1


Проблем вроде никаких.

Оставшийся инрфейс ppp0 поднимается вообще без шлюза.

И вот грабли.
По ppp0 нужно принимать из интернета входящие подключения - глухо.

Запускаю tcpdump -i ppp0 - вижу что на ppp0 приходят пакеты, но до локальных процессов они не доходят.

Еще запускаю ping -I ppp0 ya.ru - тоже глухо. Смотрю tcpdump -i ppp0 - и снова вижу что echo request нормально уходит в интернет и нормально возвращается echo reply на ppp0, но до локального процесса ping они не доходят.

Файрвол - ВЫРУБЛЕН.

В небезысвестном http://lartc.org говорится, что в случае нескольких выходов в интернет нужно добавить десяток команд для таблиц маршрутизации, и том числе, с указанием источника пакета (src).

Ситуация напоминает как если я вызвал такси, сообщил свой адрес, приезжает таксист и говорит по Вашему адресу доставлено такси, а я ему говорю - этот адрес вообще не мой, потому что я точно не знаю откуда Вы вообще.

Моя логика в том, что если пришел пакет этому хосту, зачем еще проверять источник пакета.

В чем я неправ?

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

#112030
CyberDaemon написал:

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

Дак вот я и говорю, что проблему решил по LARTC, но увидел "нелогичность" маршрутизации.

Зачем еще втыкать кучу команд, ведь у ядра уже есть вся информация о собственных адресах хоста.

Войдите или зарегистрируйтесь, чтобы ответить.