pdk*_*pdk 14 windows networking tcp ping ipv6
我正在开展一个与网络/压缩相关的项目.其中一台机器是Windows Vista,已经配置了IPv6.
当我尝试时ipconfig,我会看到以下格式的地址:fe80::9dc8:72fa:aacd:76e2%10
但是当我尝试从另一台机器ping这台机器时ping fe80::9dc8:72fa:aacd:76e2%10,我收到以下错误:
Ping request could not find host fe80::9dc8:72fa:e327:76e2%10.
Please check the name and try again.
任何想法/评论都非常有帮助.
mpo*_*llo 26
该%10地址后,被称为域中.使用链接本地 IPv6地址时,需要使用范围区域,以便系统知道将数据包发送到哪个接口.
在Windows上,如果您发出netsh interface ipv6 show addresses命令,您将看到分配给系统的地址及其区域ID.请注意,区域ID与接口索引匹配.例如:
Interface 22: VirtualBox Host-Only Network
Addr Type DAD State Valid Life Pref. Life Address
--------- ----------- ---------- ---------- ------------------------
Other Preferred infinite infinite fe80::15c3:6bea:aaac:a015%22
Run Code Online (Sandbox Code Playgroud)
此地址的范围%22是因为它位于索引所在的接口上22.同样,在Linux上,您可能会看到类似的链接本地地址fe80::15c3:6bea:aaac:a016%eth0.区域ID的格式对于运行IPv6的每台计算机都是唯一的,这就是为什么如果您尝试从其他系统执行ping操作可能会有所不同.
例如,如果您有:
System A (Windows): fe80::15c3:6bea:aaac:a015%22
System B (Linux): fe80::15c3:6bea:aaac:a016%eth0
Run Code Online (Sandbox Code Playgroud)
...而你想从Windows框中ping Linux框,你做不到ping fe80::15c3:6bea:aaac:a016%eth0.但你可以做到ping fe80::15c3:6bea:aaac:a016%22.这就是问题.以这种方式链接本地地址可能很棘手.
尝试指定正确的区域ID.也就是说,当你做你的ping fe80::9dc8:72fa:aacd:76e2%10,先做好netsh interface ipv6 show addresses你查验机器上的,并更改%10为哪个界面,您希望将源系统上使用的接口索引.
如果你是执行ping机器从是Linux,你将不得不这样做ping6 -I eth0 fe80::9dc8:72fa:aacd:76e2(假设其他系统上eth0),因为Linux的命令行实用程序不支持%指定的区域的方式(我最后一次检查,反正).
理想情况下,您应该在网络上设置支持IPv6的路由器来执行路由器通告,以便您可以使用无状态地址自动配置(SLAAC)并获取全局单播地址.那么这不是问题.
您无法使用经典 ping 实用程序来 ping ipv6 地址,只能使用 ipv4 地址。Linux 有一个名为ping6ping ipv6 地址的命令行工具,Windows 可能有类似的东西。一些研究告诉我,Windows 使用ping -6ping ipv6 地址。
| 归档时间: |
|
| 查看次数: |
15008 次 |
| 最近记录: |