1

Я добавил статический маршрут на своем маршрутизаторе к адресу, который находится в другой подсети, чем остальные мои компьютеры. Он работает нормально, но когда я пингую его, я получаю следующий ответ от команды ping которую я никогда раньше не видел:

64 bytes from 10.11.12.13: icmp_seq=0 ttl=127 time=1.527 ms
92 bytes from 10.0.0.1: Redirect Host(New addr: 10.0.0.254)
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 bf4c   0 0000  3f  01 9c43 10.0.0.2  10.11.12.13

Я пингую это с Mac, кстати.

Мой роутер 10.0.0.1. У рассматриваемого хоста есть 2 NIC. Один из них - 10.11.12.13, а другой - резервирование DHCP на моем маршрутизаторе с адресом 10.0.0.254 (что объясняет адрес перенаправления).

Очевидно, это из-за статического маршрута (дух), но какого черта этот ответ ?? Я никогда не видел, чтобы команда ping давала такой ответ раньше.

1 ответ1

7

Ваш маршрутизатор отправил вам сообщение ICMP Redirect в ответ на ваш эхо-запрос ICMP, потому что хост, к которому вы пытаетесь подключиться, находится в той же локальной сети, что и вы, но ваш сетевой стек направил ваш пакет на MAC-адрес маршрутизатора (поскольку IP-адрес назначения был вне подсети, и ваш маршрутизатор был вашим маршрутом по умолчанию). Итак, маршрутизатор говорит: «Эй, этот парень в той же локальной сети, что и ты. Поговорите с ним напрямую и перестаньте обременять меня передачей трафика, который вы должны отправлять напрямую ». Команда ping отображала содержимое этого ICMP Redirect.

Если вы попытаетесь установить TCP-соединение с тем же IP-адресом, вы получите эквивалентное перенаправление ICMP, но ваш сетевой стек, вероятно, просто обработает его, а не покажет его вам. Единственная причина, по которой команда ping показывает это вам, заключается в том, что команда ping является инструментом диагностики сети, поэтому она полагает, что вас заинтересуют такие подробности.

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