$ 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>
That's the correct number of hops for the default mode (first invocation above), with correct timings, but where are the IPs of the router at each hop?
traceroute 2.1.0
iptables was cleared: iptables -F && iptables -F -t nat
Nothing special in routing table:
$ 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
The strangest thing is this problem happens on 3 different Linux hosts on the same LAN (Arch Linux on x86_64 and on aarch64 and on armv7h), but does NOT happen on a third host (Arch Linux on WSL subsystem on Windows).
UPDATE: the difference between the hosts is whether the host's IP assignment is via DHCP from the router (traceroute works) or statically assigned in client config (traceroute breaks).