LINUX.ORG.RU
решено ФорумAdmin

Вопросы по ICMP Redirect.

 ,


0

1

Допустим есть такая сеть:

Шлюз, у которого на eth0 два адреса: x.x.1.1/24 и x.x.2.1/24.
send_redirect=1, ip_forward=1, iptables ACCEPT на всё.
Хост 1: x.x.1.2/24, у него прописан шлюз: x.x.1.1
Хост 2: x.x.2.2/24, у него прописан шлюз: x.x.2.1
И всё это находится в одном L2-сегменте.

Если 1.2 пытается связываться c 2.2, то шлюз посылает ICMP-Redirect, что адрес 2.2 доступен через 2.2. Linux(не знаю как оффтопик) нормально реагирует на такой пакет и шлёт всё на 2.2 мимо шлюза.

Я не понимаю с какой стати шлюз отправляет редирект и почему хост нормально на это реагирует.

Судя по RFC-792 по ICMP, шлюз не должен так делать.

The gateway sends a redirect message to a host in the following
situation. A gateway, G1, receives an internet datagram from a
host on a network to which the gateway is attached. The gateway,
G1, checks its routing table and obtains the address of the next
gateway, G2, on the route to the datagram’s internet destination
network, X. If G2 and the host identified by the internet source
address of the datagram are on the same network, a redirect
message is sent to the host. The redirect message advises the
host to send its traffic for network X directly to gateway G2 as
this is a shorter path to the destination. The gateway forwards
the original datagram’s data to its internet destination.

For datagrams with the IP source route options and the gateway
address in the destination address field, a redirect message is
not sent even if there is a better route to the ultimate
destination than the next address in the source route.

Может кто-нибудь знает где можно точно прочитать про подобное поведение Linux шлюза?; или просто прояснить ситуацию...

Ну и как отключить такую фичу, не отключая send_redirect?

Шлюз шлет ICMP_REDIRECT когда видит, что источник и получатель пакета висят на одном интерфейсе (eth0) - т.н. shared media. При этом в кэш маршрутов хоста (но не в таблицу маршрутизации) попадает маршрут к получателю через интерфейс, на который пришел ICMP_REDIRECT:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
x.x.2.2         0.0.0.0         255.255.255.255 UH    0      0        0 eth1

картинка

google: «shared media foreign redirect»

см. RFC 1620

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