$ traceroute -n 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 8.8.8.8 3.158 ms 4.246 ms 5.054 ms
2 * * *
3 8.8.8.8 9.121 ms 10.245 ms 9.327 ms
4 8.8.8.8 12.134 ms 13.160 ms 13.144 ms
5 8.8.8.8 9.727 ms 10.938 ms 9.899 ms
6 * * *
7 8.8.8.8 8.138 ms 12.061 ms 11.841 ms
$ traceroute -n --icmp 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 8.8.8.8 2.046 ms 1.976 ms 1.962 ms
2 8.8.8.8 9.557 ms 9.547 ms 9.536 ms
$ traceroute -n --udp 8.8.8.8
<similar output to default mode but keeps going with * * * after last hop>
Это правильное количество переходов для режима по умолчанию (первый вызов выше) с правильным временем, но где IP-адреса маршрутизатора на каждом переходе?
traceroute 2.1.0
iptables был очищен: iptables -F && iptables -F -t nat
В таблице маршрутизации ничего особенного:
$ ip route
default via 192.168.0.1 dev eth0 proto static
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.9
Самое странное, что эта проблема возникает на 3 разных хостах Linux в одной и той же локальной сети (Arch Linux на x86_64 и на aarch64 и на armv7h), но НЕ возникает на третьем хосте (Arch Linux на подсистеме WSL в Windows).
ОБНОВИТЬ: разница между хостами заключается в том, назначается ли хосту IP-адрес через DHCP от маршрутизатора (traceroute работает) или статически назначается в конфигурации клиента (traceroute прерывается).
Обходной путь, который устранил проблему для меня, заключался в том, чтобы разрешить маршрутизатору NAT назначать IP клиенту через DHCP, вместо того, чтобы устанавливать статическую конфигурацию IP в клиенте.
Предположительно, конфигурация NAT в маршрутизаторе немного отличается между клиентами, зарегистрированными на DHCP-сервере маршрутизатора, и клиентами, которые только что появляются в подсети коммутатора. Я очень старался, но не смог выяснить, что именно настраивает маршрутизатор, чего не происходит, если клиент не использует DHCP. Я попытался зарегистрировать статических клиентов в базе данных маршрутизатора через веб-интерфейс, но это не помогло. Также просмотрел интерфейс telnet, но в оболочке нет iptables и смог найти что-нибудь подходящее среди команд и дампов. На роутере фирменная прошивка.