Package: iputils-ping
Version: 3:20180629-2+deb10u1
Severity: wishlist
Dear Maintainer,
This is puzzling:
$ telnet fe80::1
Trying fe80::1...
telnet: Unable to connect to remote host: Invalid argument
[ normal behaviour with link-local addresses ]
schaefer@reliand:~$ telnet -6 fe80::1%eth1
Trying fe80::1%eth1...
[also ok: no error, NDP requests sent]
but:
$ ping6 fe80::1
PING fe80::1(fe80::1) 56 data bytes
From fe80::9e8e:99ff:fe3c:5523%eth0: icmp_seq=1 Destination unreachable:
Address unreachable
Link-local addresses are ambiguous: they lack the scope ID, unless you specify
the scope with a postfix %iface_name or %iface_id. So why does ping try to
guess which interface is used?
That's the only way it should work:
$ ping6 fe80::1%eth1
PING fe80::1%eth0(fe80::1%eth1) 56 data bytes
(or with the -I option).
The manpage says:
-I interface
interface is either an address, or an interface name. If interface
is an address, it sets source address to specified interface
address. If interface in an interface name, it sets source
interface to specified interface. NOTE: For IPv6, when doing ping
to a link-local scope address, link specification (by the
'%'-notation in destination, or by this option) can be used but it
is *no longer* required.
And yes, that wrong behaviour is new in buster (correct behaviour in stretch or
jessie). Maybe that changes was upstream and not intentional (could be linked
to other types of non routed v6 addresses), but it is still puzzling.
There is a lot of of code in ping6_common.c that, if device is unset and
getaddrinfo(3) returns a zero scope ID, tries to probe a scope ID. I do not see
why ping should do that.
-- System Information:
Debian Release: 10.7
APT prefers stable
APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.19.0-13-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE,
TAINT_UNSIGNED_MODULE
Locale: LANG=C, LC_CTYPE=fr_CH.iso-8859-1 (charmap=ISO-8859-1), LANGUAGE=C
(charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages iputils-ping depends on:
ii libc6 2.28-10
ii libcap2 1:2.25-2
ii libidn2-0 2.0.5-1+deb10u1
ii libnettle6 3.4.1-1
Versions of packages iputils-ping recommends:
ii libcap2-bin 1:2.25-2
iputils-ping suggests no packages.
-- no debconf information