LINUX.ORG.RU
ФорумAdmin

Маршрутизация на одном интерфейсе, чудеса.


0

0

Здравствуйте, коллеги!
Для меня сегодня явилось новостью то, что если в Linux включить forward, начинают forward-иться и те пакеты, которые не должны forward-иться, ИМХО.
То есть:
Пусть у нас есть сеть для простоты 192.168.0.0/24. IP-адрес шлюза 192.168.0.254, пусть этот IP присвоен интерфейсу eth0.

Добавим на какой-нибудь сторонней машине с IP из данной сети (к примеру, на машинке 192.168.0.99) роут:
route add 192.168.0.1 gw 192.168.0.254

И опа, данная тачка 192.168.0.1 пингуется с 192.168.0.99.

В "traceroute 192.168.0.1" видно, что первый хоп это шлюз, второй сама тачка. Что за бред, я всегда считал, что чтобы так сделать (на eth0 шлюза пакет приходит и с eth0 пакет уходит) нужны дополнительные телодвижения. А тут всё по умолчанию. Это не проблема когда маска сети 255.255.255.0, но если маска шире, а винда по умолчанию ставит 255.255.255.0, люди не правят на верную, так как всё работает. А шлюз подвергается лишней нагрузке. Конечно, можно это запретить в iptables (то же лишняя нагрузка), но не ужели нет каких-то параметров в sysctl чтоб такое вообще запретить?

OS: RH9, kernel: 2.4.20-31.9.

anonymous

iptables -P FORWARD DROP
никакой нагрузки не будет - проверъ

kilolife ★★★★★
()

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

ansky ★★★★★
()

>есть сеть для простоты 192.168.0.0/24.
>IP-адрес шлюза 192.168.0.254
>И опа, данная тачка 192.168.0.1 пингуется с 192.168.0.99.
>В "traceroute 192.168.0.1" видно, что первый хоп это шлюз, второй сама тачка.

У тебя проблемы в настройке 192.168.0.1, при указанной маске /24, хост 192.168.0.99 должен пинговаться напрямую

Что же касается шлюза, то он делает, то что ему сказали -- форвардит пришедшие пакеты в соотв. со своей таблицей маршрутизации.
А то что так не должно быть связанно не с шлюзом, а с проблемой описанной выше.

sdio ★★★★★
()

полностью согласен со всеми ответами.
а чтоб подобное присекать на шлюзе включи icmp_redirects

chocholl ★★
()

>я всегда считал, что чтобы так сделать (на eth0 шлюза пакет приходит и с eth0 пакет уходит) нужны дополнительные телодвижения

это и есть тедодвижения

>route add 192.168.0.1 gw 192.168.0.254

вообще, зачем те маршрутизация внутри одной подсети??

если бы ты написал
route add default gw 192.168.0.254
то было бы все так, как ты хочешь (наверное), и гейт бы подхватился

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

>route add default gw 192.168.0.254

Это делается на клиенте, для того чтобы показать что трафик действительно маршрутизируется.

Я понимаю, когда на одном интерфейсе маршрутизируется трафик из разных подсетей, но зачем маршритузируется трафик из одной подсети в туже самую подсеть, когда трафик может ходить на прямую, почему эти пакеты по умолчанию не дропаются, может что-то нужно поменять в /proc/sys/net? То есть чтобы драпались автоматом, не средствами iptables.

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