Package: liboping0
Version: 1.6.2-1
Severity: important

Hi,

I'm using liboping (through the Perl module) to ping ~250 devices
and put the results on a map. However, frequently, clients that cannot
possibly be up (they haven't been deployed yet) blip up for one ping
as if they were up, with a completely reasonable latency value.

Some code reading uncovered why: liboping uses random ICMP ident values
(which are 16 bit) for each ping, and when the ping reply comes back,
it uses _only_ this ident value to correlate it back to the machine.
Due to the birthday problem, 250 devices mean that there's ~50%
probability of two devices getting the same ident value, and so the
ping reply from one of the hosts actually being up gets misattributed
to one of the hosts that are down. This affects both IPv4 and IPv6.

I've hacked around it by dropping the randomization (just counting
ident sequentially up), but a better fix would probably be simply
checking the source address of the reply packet (in addition to the
ident); by definition, it should be the same as the one we sent to.

-- System Information:
Debian Release: 7.4
  APT prefers stable
  APT policy: (750, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.13.3 (SMP w/16 CPU cores)
Locale: LANG=en_DK.UTF-8, LC_CTYPE=en_DK.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages liboping0 depends on:
ii  libc6  2.13-38+deb7u1

liboping0 recommends no packages.

liboping0 suggests no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to