ICMP-пакеты не могут быть перенаправлены

Машина A 10.167.27.10 Маршрут на A похож на:

0.0.0.0         10.167.27.1     0.0.0.0         UG    0      0        0 eth0
10.167.28.20    10.167.27.11    255.255.255.255 UGH   0      0        0 eth0
10.167.27.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

Машина B 10.167.27.11 Маршрут на B похож на:

default         10.167.27.1     0.0.0.0         UG    0      0        0 eth0
10.167.27.0     *               255.255.255.0   U     0      0        0 eth0

Для ip_forward и accept_redirects установлено значение 1 на B.

И машина C 10.167.28.20. Я могу пропинговать C из B. Поскольку существует маршрут для C, использующий B в качестве шлюза на A, я подумал, что если я пропингую C из A, я получу сообщение перенаправления ICMP. Но на самом деле я не получил никакого ответа.

Я взял tcpdump на eth0 на B и увидел, что пришли ICMP. Но почему они не были отправлены?

Обновить:

В BI использовались функции подключения Netfilter для вывода журналов во время обработки пакетов ICMP. Журнал, который я добавил к точке подключения FORWARD, был напечатан, и результат маршрутизации был правильным. Но журнал в точке подключения POST ROUTING не был напечатан. Я не совсем понимаю...

1 ответ

Машина C знает, как ответить на A? Машина A знает, как связаться с C (вот почему вы видите, что IMCP прибывает в B), но если устройство C не знает, как достичь A, оно не будет отвечать на A (и эхо-запрос не будет выполнен).

Попробуйте пропинговать A из C. Если это не удалось, добавьте маршрут к машине A в устройстве C.

Надеюсь, это поможет.

редактировать

Это ваша топология, верно?

Топология

Поскольку B подключен ко всем другим устройствам, он будет знать, как их достичь. Вы должны включить пересылку на B и определить шлюз по умолчанию для A и C как B.

Другие вопросы по тегам