自 6 月以来,我从 ISP 那里获得了一个 IPv6 子网。我使用的是华硕 AC-66U 路由器,该路由器配置为获取本机 IPv6 前缀。前缀长度为 56,路由器配置为无状态配置。我的 LAN 中的所有设备都能够使用 IPv6 自动配置获取 IPv6 地址(本地链路和全局地址)。
我有一台旧电脑,正在设置为服务器。它运行 Ubuntu 16.04.1 LTS,并使用 QEMU-KVM 运行虚拟机。主机和所有虚拟机都设置为具有静态 IPv6 地址,这似乎适用于所有虚拟机。
我似乎遇到的问题是,当我启动服务器时,我可以从任何具有 IPv6 地址的 LAN 设备正确 ping(在 MacOS 上为 ping6)服务器和虚拟机。但是,大约 3 - 5 分钟后,这在我的 Macbook Pro 上不再起作用,因为它是通过 WiFi 连接的。我的 LAN 中的所有其他设备似乎不受此问题的影响。ping6 返回 100% 数据包丢失,我知道这不是实际的 IPv6 连接,因为我仍然可以 ping 其他 IPv6 设备,包括 LAN 和远程设备。我可以从其中一台服务器顺利 ping Macbook Pro,并且仍然可以从任何其他设备 ping 服务器,即使在我的 LAN 之外。
我做了一些测试,发现了一些非常奇怪的事情。当我尝试从我的 Macbook Pro ping 服务器时,在我的 Macbook Pro 和其中一台服务器上查看“tcpdump icmp6”,它似乎正在发送邻居请求。然而,请求似乎从未到达服务器。当我在我的 Macbook Pro 上执行“ndp -an”时,我可以看到链路层地址是(不完整),这意味着它没有从服务器收到回复(邻居广告)。
很烦人的是,Macbook Pro 在短时间内无法连接到我的任何服务器。请注意,这个问题对于主机和虚拟机来说并不是全局性的。每个设备都单独存在这个问题。如果我启动服务器,我可以成功 ping 主机。大约 3 - 5 分钟后,我无法再 ping 主机,邻居发现报告(不完整)再次出现。但我仍然可以 ping 其中一个虚拟机,3 - 5 分钟后,它又遇到了同样的问题。
在我看来,这似乎是 MacOS 的问题,或者是 Ubuntu 和 MacOS 之间的不兼容问题。我不知道到底出了什么问题,也不知道为什么 Macbook Pro 无法向服务器发送请求(我认为它甚至没有到达)。我注意到的一件事是,当使用本地 IPv4 地址 ping 服务器时,邻居发现正在运行,尽管它从未在服务器上收到请求,暂时修复了两个设备之间的 IPv6 连接。我不知道为什么在 ping 邻居的 IPv4 地址时成功发现邻居,甚至没有在服务器上收到请求,甚至没有从服务器在我的 Macbook Pro 上收到广告。另一件奇怪的事情是,当我用以太网电缆连接我的 Macbook Pro 时,这个问题似乎没有发生。那么这可能是我的路由器上的 WiFi 问题吗?
答案1
我已经设法解决了这个问题。实际问题出在我使用的 AP 上。两者都是处于 AP 模式的华硕 AC-66U 路由器。我尝试了不同的 AP,但它们都没有给我带来这个问题。
我没有在禁用 DHCP 服务器和防火墙的正常运行模式下测试路由器。