一台 ESXi Host 里的虚拟机经过一台交换机连到学校墙上的端口,同一个交换机上还连了我的笔记本。IPv4 和 IPv6 地址都是通过 DHCP 分配的,IPv4 只有校内局域网连接,笔记本和虚拟机都可以正常通过网关转发数据包访问到其他子网上的主机;笔记本的 IPv6 可以直接访问到互联网,说明网关也正常转发 IPv6 数据包。
但是,虚拟机同样也通过 DHCPv6 拿到了 IPv6 地址,可以单独 ping 通网关和同一局域网内的笔记本,就是发往互联网的数据包不能被网关转发。图中前六条是在 ping 网关的链路地址,能得到网关的回应;后面的是在 traceroute 谷歌的 DNS 服务器,网关根本没有返回 ICMP TTL limit exceeded 的消息。
这之前我在笔记本上手动配置静态 IPv4 地址,企图在学校办公室访问到宿舍笔记本的时候,发现一样不能被网关转发数据包。结合这个情况,我怀疑路由器上可以设置“非经 DHCP 分配的 IP 地址发来的数据包不予转发”这样的规则?
如果确有这种规则,我进一步怀疑是学校的路由器对 DHCPv6 等等 IPv6 的协议支持得不好,只有 Windows 的笔记本可以正常拿到 IP 地址,Debian 等 Linux 的机器存在兼容性问题,在 DHCP 的过程中虽然 client 拿到了 IP 地址,路由器上却没有正确注册,以致于不予转发数据包。
请熟悉路由器配置的各位朋友指点迷津。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/392090
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.