我们尝试在客户网络上实现 IPv4 和 IPv6 双栈。我们的想法是为最终用户提供开箱即用的体验。因此我们使用了自动 DHCP 设置。
使用 Windows 10 客户端,我可以在两种情况下使用有状态 DHCPv6 和 ICMPv6 正确设置两个地址、IPv4 和 IPv6 - 中间有 WiFi 路由器,并且直接连接到边界网关(桥接模式)。流量在 IPv4 和 IPv6 上传递。
然而,在 Ubuntu 22.04 桌面版中,我们观察到了不同的行为。Ubuntu 桌面版使用网络管理器进行连接设置(开箱即用),并且在安装期间和网络管理器 GUI 中启用了 IPv6。
- 如果我连接到 WiFi 路由器后面,Ubuntu 可以开箱即用,但使用 SLAAC 进行 IPv6 设置。Ubuntu 服务器也是如此。我们在 IPv6 上获得了默认路由。IPv4 也运行良好。
- 一旦我直接(或使用桥接模式)连接到边界网关,Ubuntu 就会正确设置 IPv4,但对于 IPv6 - 只有地址,没有 IP6 默认路由,并且 IP6 网关是通过 ICMPv6 设置的。边界网关仅使用有状态的 DHCPv6 进程,因此没有 SLAAC。使用开箱即用的 Ubuntu 服务器安装时观察到相同的行为,其中 netplan DHCPv4 和 DHCPv6 设置为自动(在安装过程中启用 IPv6,并在 IPv4 和 IPv6 上将 DHCP 设置为自动)。因此,我们获得了 IPv6 地址,但没有 IPv6 上的流量(ping -6www.google.com没有通过)。您能否提供一些关于如何让 Ubuntu 同时使用 SLAAC 和有状态 DHCPv6 的提示?
提前谢谢你。
此致,
埃米尔