Activity log for bug #1775891

Date Who What changed Old value New value Message
2018-06-08 16:45:46 psl bug added bug
2018-06-08 16:51:15 psl description ping6 utility, iputils-s20121221, Ubuntu 16.04.4 amd64 IPv6 address can have extension with local interface. It is required to ping link-level IPv6 addresses (fe80::/10). Example, ping6 fails, OS doesn't know where to route packets user@test$ ping6 -c1 fe80::87f4:81fa:b481:d781 connect: Invalid argument network interface is specified, ping6 works: user@test$ ping6 -c1 fe80::87f4:81fa:b481:d781%enp4s0 PING fe80::87f4:81fa:b481:d781%enp4s0(fe80::87f4:81fa:b481:d781) 56 data bytes 64 bytes from fe80::87f4:81fa:b481:d781: icmp_seq=1 ttl=64 time=0.461 ms --- fe80::87f4:81fa:b481:d781%enp4s0 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.461/0.461/0.461/0.000 ms Ping loopback, it works user@test$ ping6 -c1 ::1 PING ::1(::1) 56 data bytes 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.039 ms --- ::1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.039/0.039/0.039/0.000 ms But when I add %lo, ping6 cannot handle it.... This is the issue I want to report. user@test$ ping6 -c1 ::1%lo unknown host Other example with real IPv6 address user@test$ ping6 -c1 2001:470:6e:66::2 PING 2001:470:6e:66::2(2001:470:6e:66::2) 56 data bytes 64 bytes from 2001:470:6e:66::2: icmp_seq=1 ttl=64 time=0.054 ms --- 2001:470:6e:66::2 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.054/0.054/0.054/0.000 ms user@test$ ping6 -c1 2001:470:6e:66::2%sit1 unknown host BTW, CURL can do it... user@test$ curl http://[::1%lo]/test.htm <html><body>TEST</body></html> user@test$ curl http://[2001:470:6e:66::2%sit1]/test.html curl: (7) Failed to connect to 2001:470:6e:66::2 port 80: Connection refused Yes, curl fails in this case but there is no http server configured at that IPv6 address... Important point is it tries to connect. Here is a proof: user@test$ curl http://[2001:470:6e:66::2%sit1]:22/test.html SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.4 Protocol mismatch. curl: (56) Recv failure: Connection reset by peer ping6 utility, iputils-s20121221, Ubuntu 16.04.4 amd64 IPv6 address can have extension with local interface. It is required to ping link-level IPv6 addresses (fe80::/10). Example, ping6 fails, OS doesn't know where to route packets user@test$ ping6 -c1 fe80::87f4:81fa:b481:d781 connect: Invalid argument network interface is specified, ping6 works: user@test$ ping6 -c1 fe80::87f4:81fa:b481:d781%enp4s0 PING fe80::87f4:81fa:b481:d781%enp4s0(fe80::87f4:81fa:b481:d781) 56 data bytes 64 bytes from fe80::87f4:81fa:b481:d781: icmp_seq=1 ttl=64 time=0.461 ms --- fe80::87f4:81fa:b481:d781%enp4s0 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.461/0.461/0.461/0.000 ms Ping loopback, it works user@test$ ping6 -c1 ::1 PING ::1(::1) 56 data bytes 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.039 ms --- ::1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.039/0.039/0.039/0.000 ms But when I add %lo, ping6 cannot handle it.... This is the issue I want to report. user@test$ ping6 -c1 ::1%lo unknown host Other example with real IPv6 address user@test$ ping6 -c1 2001:470:6e:66::2 PING 2001:470:6e:66::2(2001:470:6e:66::2) 56 data bytes 64 bytes from 2001:470:6e:66::2: icmp_seq=1 ttl=64 time=0.054 ms --- 2001:470:6e:66::2 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.054/0.054/0.054/0.000 ms user@test$ ping6 -c1 2001:470:6e:66::2%sit1 unknown host BTW, CURL can do it... user@test$ curl http://[::1%lo]/test.htm <html><body>TEST</body></html> user@test$ curl http://[2001:470:6e:66::2%sit1]/test.html curl: (7) Failed to connect to 2001:470:6e:66::2 port 80: Connection refused Yes, curl fails in this case but there is no http server configured at that IPv6 address... Important point is it tries to connect. Here is a proof: user@test$ curl http://[2001:470:6e:66::2%sit1]:22/test.html SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.4 Protocol mismatch. curl: (56) Recv failure: Connection reset by peer Here is a reference to RFC https://tools.ietf.org/html/rfc4007