Possible ICMP reply misdelivery or identifier collision in ping on FreeBSD 14.4

Hi,

I’ve run into something odd with ICMP/ping behavior on a FreeBSD system and wanted to check if anyone else has seen this.

System version:
FreeBSD 14.4-RELEASE-p5

This is a monitoring server that runs a fairly large number of concurrent ping checks. In total I’m continuously pinging around 100 different targets. All ping requests originate from the same thin jail.

Example:

# ping -o 192.168.11.50 && echo $?
PING 192.168.11.50 (192.168.11.50): 56 data bytes
64 bytes from 18.165.122.41: icmp_seq=0 ttl=63 time=750.555 ms

--- 192.168.11.50 ping statistics ---
1249 packets transmitted, 1 packets received, 99.9% packet loss
round-trip min/avg/max/stddev = 750.555/750.555/750.555/0.000 ms
0

# freebsd-version
14.4-RELEASE-p5


What caught my attention is that the reply is coming from a completely different IP (18.165.122.41), even though the ping target is 192.168.11.50.

This seems to indicate that an unrelated ICMP reply is being picked up by this ping process.

Some observations:
- The system is generating a moderate amount of ICMP traffic (around 100 monitored hosts)
- This happens intermittently
- Only one reply is received, and it is clearly not from the intended target
- The process still exits successfully due to `-o`

My question:
Has anyone seen cases where ICMP replies get "misdelivered" to the wrong socket/process under this kind of load on FreeBSD?

Or is there something about how `ping` matches replies (e.g. identifier collisions, raw socket behavior, etc.) that could explain this?

Any ideas or pointers would be appreciated.
 
Back
Top