Скажем, мой маршрутизатор имеет два интерфейса (eth0 и eth1). Запись по умолчанию в таблице маршрутизации использует eth0. Теперь, если маршрутизатор получает пакет по eth0 и IP-адрес dst не соответствует ни одной записи в таблице маршрутизации, он отправит пакет обратно по маршруту по умолчанию. Это приведет к петле маршрутизации. Как маршрутизатор избегает этого? Понимает ли это это и отправляет ли сообщение ICMP о недоступности получателя (тип 3, код 0). В общем, маршрутизатор когда-нибудь пересылает пакет на тот же интерфейс, на котором он был получен?

2 ответа2

4

IP-датаграммы имеют значение "Время жизни" (TTL) в заголовке IP. Каждый раз, когда маршрутизатор пересылает дейтаграмму, он уменьшает (вычитает 1 из) TTL. Когда TTL достигает нуля, маршрутизатор сбрасывает (удаляет, не пересылает) дейтаграмму и отправляет обратно сообщение ICMP «Destination Unreachable, TTL Exceeded».

Кроме того, когда ваш маршрутизатор получил пакет от хоста на eth0, который был бы лучше доставлен на другой хост или через другой маршрутизатор, который также находился в сети канального уровня (в данном случае, в локальной сети Ethernet) из eth0, он мог отправьте сообщение ICMP Redirect, чтобы проинформировать локальный хост, который отправил этот пакет, о том, что он действительно должен был отправить его непосредственно этому другому хосту или маршрутизатору в той же локальной сети Ethernet.

В целом, петли маршрутизации избегаются благодаря правильному проектированию сети и использованию протоколов объявления маршрутов и процедур обслуживания таблиц маршрутов, которые избегают петель.

1

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

Во-вторых, маршрутизатор обычно не должен даже получать то, что он должен выплевывать обратно на тот же интерфейс.

Если вы отправляете трафик на маршрутизатор, который не должен маршрутизироваться, на этом хосте что-то настроено неправильно (возможно, DHCP выдал неправильный шлюз по умолчанию, IP-адрес / маска сети установлены неправильно и т.д.)

Как сказал @Spiff, вот почему есть TTL.

Циклы маршрутизации обычно являются более серьезной проблемой, когда у вас есть более двух интерфейсов и более одного маршрутизатора в подсети. Протоколы маршрутизации, такие как RIP, IGRP, EIGRP, OSPF и BGP, используются между маршрутизаторами для решения таких задач, как определение маршрутизации для подсети, резервное копирование и отслеживание недоступности маршрутизаторов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .