为什么在 Ubuntu 中通过 DHCPv6 分配 /128 IPv6 地址?

为什么在 Ubuntu 中通过 DHCPv6 分配 /128 IPv6 地址?

我正在 Ubuntu 中测试 IPv6 的实现。我的 Ubuntu Linux 客户端正确地从服务器获取 RA 并在通告的前缀中配置一个地址。接下来,它通过 DHCP 获取另一个带有掩码的地址/128

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether f8:a9:63:0c:3c:cb brd ff:ff:ff:ff:ff:ff
    inet6 2001:xxxx:1f15:yyyy::9/128 scope global 
       valid_lft forever preferred_lft forever
    inet6 2001:xxxx:1f15:yyyy:faa9:63ff:fe0c:3ccb/64 scope global dynamic 
       valid_lft 82162sec preferred_lft 10162sec
    inet6 fe80::faa9:63ff:fe0c:3ccb/64 scope link 
       valid_lft forever preferred_lft forever

我对此地址的掩码很感兴趣/128,它暗示着点对点链接。为什么掩码是/128而不是/64

这是 DHCPv6 的正常行为还是与我的 DHCP 服务器的配置有关?

答案1

是的,这是正常行为。DHCPv6 服务器提供地址(使用 IA_NA 选项),但不会告诉客户端有关子网的任何信息。因此,客户端只需在接口上配置单独的地址。到子网的任何路由均由 RA 提供。如果 RA 在没有自动配置选项的情况下宣布前缀,则客户端不会自动配置地址,但会为本地子网添加路由。

这种职责分离是有意为之。DHCPv6 服务器有权分配地址(以及其他事项),但没有权力谈论网络状态。DHCPv6 服务器通常甚至不在本地子网上,而是通过中继与客户端通信。客户端直接与之通信的设备是路由器。因此,在 IPv6 中,路由器使用 RA 告知客户端网络状态(前缀、默认网关、路由等)。额外的配置选项和可选的地址分配由 DHCP 服务器完成。

这样,客户端可以快速响应网络变化,同时仍然可以从 DHCPv6 接收更多长寿命信息。

相关内容