Ubuntu IPv6 ping 自身给出未知主机

Ubuntu IPv6 ping 自身给出未知主机

我在尝试让 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

$ ping6 -c 5 -I enp0s25 fe80::ba94:3d5e:9929:4c6e/64

结果是

unknown host

我该如何排除故障?

答案1

删除 /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

可以在地址中通过附加%和接口名称来指定本地接口参数 -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
...

这些组合不起作用:

$ ping6 -c 1 -I enp0s25 fe80::ba94:3d5e:9929:4c6e/64
unknown host

或者

$ ping6 fe80::ba94:3d5e:9929:4c6e
connect: Invalid argument

答案2

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

相关内容