无法从 Windows XP ping Linux IPv6 地址

无法从 Windows XP ping Linux IPv6 地址

我使用 为 VirtualBox VM 上的 SUSE Linux 机器提供了一个 IPv6 地址ifconfig eth0 inet6 add ..

我无法从 Windows XP ping 该地址(反之亦然)Linux 机器的地址是,efbb::26 而 XP 是efbb::27

ping6 -s efbb::27 -r efbb::26 
the output:
from efbb::27 with 32 bytes of data ( I think it must be 56 bytes)
Invalid source route specified
    Problem with source address or scope-id

哪里有问题?

答案1

您混淆了地址:您尝试从 Windows 发送 ping,但您将 Linux 地址指定为“源”,将 Windows 指定为“目标”。操作系统无法从不属于它的地址发送数据包。

通常,您根本不需要指定;路由表1处理地址的选择。只需运行以下任一操作:-s addr

ping6 efbb::26
ping efbb::26

发送多少字节的数据并不重要;它甚至可能是零——ICMP 标头无论如何都会发送并会得到回复。不过,有些系统可能会忽略大于 ~1000 字节的 ping,但 32 和 56 真的没有什么区别。


1使用netshinterface ipv6访问 IPv6 路由表等。

答案2

简单来说,ipv6 地址的第一个八位字节可能有特殊含义。某些位表示该地址用于多播。其他位定义范围。简而言之:您不能随便为其选择任何值。

所以我的问题是,您使用的地址来自哪里。我发现它们相当“不寻常”。如果您正在构建私有网络,请考虑使用所谓的“唯一本地地址”(fc00::/7)中的地址。fc00::/8 是为全局分配的唯一本地地址保留的。因此,您应该从 fd00::/8 中选择地址。

有关此问题的更多信息,请参阅 RFC 4193。

相关内容