On Sat, Jan 23, 2021 at 10:27:24AM +0100, Marc SCHAEFER wrote:
>    $ 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?

This was done upstream here:

https://github.com/iputils/iputils/pull/100

> 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).

I agree that this is the normal way of fully specifying a link-local
address.  However, rfc 4291 does not prohibit inferring the scope based
on routing tables, as far as I can tell, so I'm not sure that ping's
behavior is outright wrong.

If you can find text in the standards that indicates that ping is
actually behaving incorrectly, then I'm very happy to raise this issue
with upstream, as I don't particularly like the current behavior either.
I just haven't been able to convince myself that it's actually
incorrect.

noah

Reply via email to