Я статически настроил IP-адрес интерфейса на сервере:
ip addr add 10.40.0.6/16 broadcast 10.40.255.255 dev eth1
Если я пытаюсь выполнить эхо-запрос к машине в сети (например, 10.40.0.1), это не сработает с сообщением «Целевой хост недоступен».
Если во время пинга я сделаю следующее, я не увижу никакой активности
tcpdump -i eth1 icmp
Однако, если я вместо этого слушаю интерфейс обратной петли:
tcpdump -i lo icmp
Затем я вижу что-то вроде:
16:02:57.369632 IP 10.40.0.6 > 10.40.0.6: ICMP host 10.40.0.1 unreachable, length 92
Мой вопрос: почему пакеты ICMP не отображаются как выходящие через интерфейс eth1?
Редактировать:
# ip r ls
10.40.0.0/16 dev eth1 proto kernel scope link src 10.40.0.6
Если вы проверяете связь с несуществующим хостом, широковещательная передача ARP завершится ошибкой. Tcpdump никогда не увидит icmp, потому что eth1 не будет отправлять одноадресный IP-пакет без пункта назначения уровня 2.
Попробуй это:
tcpdump -i eth1 arp
Вы должны увидеть ошибку разрешения ARP.