Ubuntu IPv6 ping self 给出未知主机

jws*_*jws 3 ipv6 localhost ubuntu

我一直在尝试让 IPv6 在新的 Ubuntu 16.04 (Xenial Xerus) 安装上工作。我的场景非常基本 - 尝试 ping 本地 IPv6 地址。

$ ifconfig
enp0s25   Link encap:Ethernet  HWaddr b8:ae:ed:77:91:fa
          inet6 addr: fe80::ba94:3d5e:9929:4c6e/64 Scope:Link
Run Code Online (Sandbox Code Playgroud)

$ ping6 -c 5 -I enp0s25 fe80::ba94:3d5e:9929:4c6e/64
Run Code Online (Sandbox Code Playgroud)

结果是

unknown host
Run Code Online (Sandbox Code Playgroud)

如何排除故障?

jws*_*jws 8

适用于 /64 删除和 -I 指定。/64 是指掩码中的位数,不应在 ping 中使用。

$ ping6 -c 1 -I enp0s25 fe80::ba94:3d5e:9929:4c6e
PING fe80::ba94:3d5e:9929:4c6e(fe80::ba94:3d5e:9929:4c6e) from fe80::ba94:3d5e:9929:4c6e enp0s25: 56 data bytes
64 bytes from fe80::ba94:3d5e:9929:4c6e: icmp_seq=1 ttl=64 time=0.043 ms
Run Code Online (Sandbox Code Playgroud)

本地接口参数 -I 可以通过附加%接口名称在地址中指定:

$ ping6 fe80::ba94:3d5e:9929:4c6e%enp0s25
PING fe80::ba94:3d5e:9929:4c6e%enp0s25(fe80::ba94:3d5e:9929:4c6e) 56 data bytes
64 bytes from fe80::ba94:3d5e:9929:4c6e: icmp_seq=1 ttl=64 time=0.027 ms
64 bytes from fe80::ba94:3d5e:9929:4c6e: icmp_seq=2 ttl=64 time=0.059 ms
...
Run Code Online (Sandbox Code Playgroud)

这些组合不起作用:

$ ping6 -c 1 -I enp0s25 fe80::ba94:3d5e:9929:4c6e/64
unknown host
Run Code Online (Sandbox Code Playgroud)

或者

$ ping6 fe80::ba94:3d5e:9929:4c6e
connect: Invalid argument
Run Code Online (Sandbox Code Playgroud)


Ron*_*pin 7

你不应该/64在 ping 的地址上使用 。这相当于在 IPv4 的 ping 命令上使用掩码长度或掩码。我想 ping 命令试图将其解释为主机名。