Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fping sometimes returns dupe pings on host with lots of ICMP activity #191

Closed
mayheart opened this issue Jul 16, 2020 · 7 comments
Closed
Labels

Comments

@mayheart
Copy link

Hi there,

I've ran into a weird issue with fping registering duplicated packets. This host has a lot ICMP activity going on, lots of HOST UNREACH, there's also fping sessions running in the background. If I limit the amount of ICMP activity, these duplicate issues go away.

/usr/bin/fping -e -q -c 3 -p 200 -t 500 192.168.94.154

192.168.94.154 : xmt/rcv/%loss = 3/3/0%, min/avg/max = 15.7/19.6/22.0

/usr/bin/fping -e -q -c 3 -p 200 -t 500 192.168.94.154

192.168.94.154 : duplicate for [0], 84 bytes, 54.9 ms [<- 192.168.94.102]
192.168.94.154 : duplicate for [1], 84 bytes, 54.7 ms [<- 192.168.94.102]
192.168.94.154 : xmt/rcv/%loss = 3/3/0%, min/avg/max = 14.3/14.5/14.8

/usr/bin/fping -e -q -c 3 -p 200 -t 500 192.168.94.154

192.168.94.154 : xmt/rcv/%loss = 3/3/0%, min/avg/max = 18.5/19.9/21.4

[tcpdump from the 2nd dupe ping. 192.168.94.102 was being fping'd in a separate process in the background]
14:23:30.088038 IP 192.168.94.137 > 192.168.94.154: ICMP echo request, id 1, seq 0, length 64
14:23:30.102825 IP 192.168.94.154 > 192.168.94.137: ICMP echo reply, id 1, seq 0, length 64
14:23:30.118139 IP 192.168.94.137 > 192.168.95.174: ICMP 192.168.94.137 udp port 53 unreachable, length 68
14:23:30.124185 IP 192.168.94.137 > 192.168.94.102: ICMP echo request, id 1, seq 0, length 64
14:23:30.142943 IP 192.168.94.102 > 192.168.94.137: ICMP echo reply, id 1, seq 0, length 64
14:23:30.149838 IP 192.168.94.137 > 192.168.89.222: ICMP 192.168.94.137 udp port 53 unreachable, length 68
14:23:30.156188 IP 192.168.94.137 > 192.168.95.174: ICMP 192.168.94.137 udp port 53 unreachable, length 68
14:23:30.175882 IP 192.168.94.137 > 192.168.89.222: ICMP 192.168.94.137 udp port 53 unreachable, length 68
14:23:30.187189 IP 192.168.94.137 > 192.168.89.9: ICMP 192.168.94.137 udp port 53 unreachable, length 68
14:23:30.203772 IP 192.168.94.137 > 192.168.89.222: ICMP 192.168.94.137 udp port 53 unreachable, length 68
14:23:30.211093 IP 192.168.94.137 > 192.168.89.9: ICMP 192.168.94.137 udp port 53 unreachable, length 68
14:23:30.233026 IP 192.168.94.137 > 192.168.89.9: ICMP 192.168.94.137 udp port 53 unreachable, length 68
14:23:30.280678 IP 192.168.94.137 > 192.168.231.253: ICMP 192.168.94.137 udp port 53 unreachable, length 68
14:23:30.288266 IP 192.168.94.137 > 192.168.94.154: ICMP echo request, id 1, seq 1, length 64
14:23:30.302885 IP 192.168.94.154 > 192.168.94.137: ICMP echo reply, id 1, seq 1, length 64
14:23:30.324312 IP 192.168.94.137 > 192.168.94.102: ICMP echo request, id 1, seq 1, length 64
14:23:30.324622 IP 192.168.94.137 > 192.168.231.253: ICMP 192.168.94.137 udp port 53 unreachable, length 68
14:23:30.343009 IP 192.168.94.102 > 192.168.94.137: ICMP echo reply, id 1, seq 1, length 64
14:23:30.368692 IP 192.168.94.137 > 192.168.231.253: ICMP 192.168.94.137 udp port 53 unreachable, length 68
14:23:30.488483 IP 192.168.94.137 > 192.168.94.154: ICMP echo request, id 1, seq 2, length 64
14:23:30.492304 IP 192.168.94.137 > 192.168.93.205: ICMP 192.168.94.137 udp port 53 unreachable, length 68
14:23:30.502823 IP 192.168.94.154 > 192.168.94.137: ICMP echo reply, id 1, seq 2, length 64
14:23:30.512487 IP 192.168.94.137 > 192.168.93.205: ICMP 192.168.94.137 udp port 53 unreachable, length 68
14:23:30.524422 IP 192.168.94.137 > 192.168.94.102: ICMP echo request, id 1, seq 2, length 64

uname -a

Linux librenms 5.7.0-1-amd64 #1 SMP Debian 5.7.6-1 (2020-06-24) x86_64 GNU/Linux

fping --version

fping: Version 4.3
fping: comments to david@schweikert.ch

ifconfig vlan990

vlan990: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.94.137 netmask 255.255.255.240 broadcast 192.168.94.143
inet6 fe80::230:48ff:fedd:93d4 prefixlen 64 scopeid 0x20
ether 00:30:48:dd:93:d4 txqueuelen 1000 (Ethernet)
RX packets 3131050377 bytes 996169961741 (927.7 GiB)
RX errors 0 dropped 16 overruns 0 frame 0
TX packets 2848131375 bytes 395710959835 (368.5 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

@mayheart mayheart changed the title fping sometimes returns dupe pings fping sometimes returns dupe pings on host with lots of ICMP activity Jul 16, 2020
@mayheart
Copy link
Author

Downgrading fping back to 4.2 completely fixed the duplicate ping issue.

@mayheart
Copy link
Author

[4.3 binary (from source)]

14:52:29.735216 IP 192.168.94.137 > 192.168.94.154: ICMP echo request, id 1, seq 0, length 64
14:52:29.748887 IP 192.168.94.154 > 192.168.94.137: ICMP echo reply, id 1, seq 0, length 64
14:52:29.935484 IP 192.168.94.137 > 192.168.94.154: ICMP echo request, id 1, seq 1, length 64
14:52:29.949628 IP 192.168.94.154 > 192.168.94.137: ICMP echo reply, id 1, seq 1, length 64
14:52:30.135751 IP 192.168.94.137 > 192.168.94.154: ICMP echo request, id 1, seq 2, length 64
14:52:30.152963 IP 192.168.94.154 > 192.168.94.137: ICMP echo reply, id 1, seq 2, length 64

[4.2 from debian]

14:52:34.561876 IP 192.168.94.137 > 192.168.94.154: ICMP echo request, id 54885, seq 0, length 64
14:52:34.575538 IP 192.168.94.154 > 192.168.94.137: ICMP echo reply, id 54885, seq 0, length 64
14:52:34.762122 IP 192.168.94.137 > 192.168.94.154: ICMP echo request, id 54885, seq 1, length 64
14:52:34.777432 IP 192.168.94.154 > 192.168.94.137: ICMP echo reply, id 54885, seq 1, length 64
14:52:34.962379 IP 192.168.94.137 > 192.168.94.154: ICMP echo request, id 54885, seq 2, length 64
14:52:34.977410 IP 192.168.94.154 > 192.168.94.137: ICMP echo reply, id 54885, seq 2, length 64
14:52:35.442977 IP 192.168.94.137 > 192.168.94.154: ICMP echo request, id 54886, seq 0, length 64
14:52:35.457478 IP 192.168.94.154 > 192.168.94.137: ICMP echo reply, id 54886, seq 0, length 64

It looks like the ICMP ID behavior was changed between 4.2 and 4.3. I suspect it's picking up ICMPs from other pings if they happen at the same second and have the same ID.

@schweikert
Copy link
Owner

This might be caused by 1486bf2

@schweikert
Copy link
Owner

@tycho FYI

@schweikert schweikert added the bug label Jul 16, 2020
@tycho
Copy link
Contributor

tycho commented Jul 16, 2020

Yeah, I saw this in my own systems. I think you might need to cherry pick this from my tree: tycho@d2dda2d

@mayheart
Copy link
Author

mayheart commented Jul 16, 2020

Yeah, I saw this in my own systems. I think you might need to cherry pick this from my tree: tycho@d2dda2d

Can confirm with your patch the old behavior returns. I put the binary into test production, no duplicates generated.

15:52:55.918252 IP 192.168.94.137 > 192.168.94.154: ICMP echo request, id 29008, seq 0, length 64
15:52:55.933546 IP 192.168.94.154 > 192.168.94.137: ICMP echo reply, id 29008, seq 0, length 64
15:52:56.118512 IP 192.168.94.137 > 192.168.94.154: ICMP echo request, id 29008, seq 1, length 64
15:52:56.131581 IP 192.168.94.154 > 192.168.94.137: ICMP echo reply, id 29008, seq 1, length 64
15:52:56.318779 IP 192.168.94.137 > 192.168.94.154: ICMP echo request, id 29008, seq 2, length 64
15:52:56.334724 IP 192.168.94.154 > 192.168.94.137: ICMP echo reply, id 29008, seq 2, length 64

@schweikert
Copy link
Owner

fixed in 57061af

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants