我最近对 IPv6 地址进行了一些测试,以便更好地了解它的工作原理。我在 Windows 上检查了我的本地“ipconfig”,看到了我的本地 v6 地址,还访问了一个“whatsmyip”风格的网站,查看了我的“公共”ipv6 地址。
奇怪的是,我发现当我的本地机器位于 *::4 时,网站正在从 *::5 读取我的连接(星号在两种情况下代表相同的值)。
我假设 IPv4 实际上是用来连接到该站点的,如果是 IPv6 连接,我希望看到我的个人 ::4 地址,而不是路由器的 ::5 地址。
不管怎样,作为一项测试,我要求在不同地方工作的同事尝试 ping 我的路由器和个人电脑的 IPv6 地址,并且在两种情况下,(mac os)ping 软件的输出都是:
ping *::4
PING *::4 (143.244.220.150): 56 data bytes
64 bytes from 143.244.220.150: icmp_seq=0 ttl=48 time=26.428 ms
64 bytes from 143.244.220.150: icmp_seq=1 ttl=48 time=29.005 ms
64 bytes from 143.244.220.150: icmp_seq=2 ttl=48 time=27.205 ms
(再次强调,* 只是实际 IP 地址值的占位符,出于显而易见的原因而被省略)。
我的问题是 143.244.220.150 是什么,为什么 ping 的不是输入的 v6 地址或实际的 v4 地址,而是它?需要说明的是,该 IP 不是我网络的公共 IPv4 地址。不仅如此,它甚至不属于我的 ISP,地理位置位于东海岸,而我位于中西部。
有任何想法吗?
答案1
2601:....::4 地址似乎是我的路由器分配给我的内部计算机的公共 IPv6 地址,而我的 ISP 为该路由器分配了 2601:....::5 的公共 IPv6 地址。
当我ping -6 2601:....::4
在外部执行 ATT 网络的版本(或 ::5)时,我遇到了请求超时(正如我所料,因为我的路由器未设置为响应外部 ping)。此外,我的路由器将防火墙阻止任何发往网络内部公共 IPv6 地址的 IPv6 流量,这些流量未响应来自网络内部的请求(类似于 NAT 的工作方式)。
我的同事的计算机上一定没有启用 IPv6,所以当我要求他们 ping 我时(正如 @harrymc 所说),他们很可能从某些 ATT 服务获得 ping 响应,该服务试图处理来自该国不同地区的 IPv4 地址的请求。
因此,虽然我仍然不能 100% 确定为什么我的同事会收到这些响应,但上述假设对我来说已经足够了,因为当我使用启用了 IPv6 的计算机从同一位置执行相同的 ping 时,路由看起来是正确的并且没有恶意计算机响应请求。
感谢所有发表评论的人!