There is a hosts nss module that resolves IPv6 link-local addresses, complete with scope-id: http://samba.org/~idra/code/nss-ipv6literal/README.html You use it something like this: It turns names like "fe80--21d-7dff-fe9c-3c86seth0.ipv6-literal.net" into IPv6 addresses + a scope ID. ...it's an ugly syntax but it works. Even though ping6 uses getaddrinfo to resolve the name and the scopeid is provided by getaddrinfo, ping6 apparently ignores it and still requires a -I option. It would be nice (and likely fairly simple) to make it not require a -I option to ping link-local addrs when a scopeid has already been provided by getaddrinfo.
This isn't needed, as this works perfectly well: ping6 fe80::206:5bff:fe6b:c8a7%eth0 Old versions of iputils wwould have caused problems and, indeed, RHEL5 still has a problem (see bug 534087) -- the problem with that version is that getaddrinfo() wasn't being called if the address begins with a IPv6 numeric address). This bug needs to be closed.
Fair enough -- I haven't checked it, but I'll assume you're correct.