如何从 DHCPv6 服务器获取正确的前缀长度?

use*_*758 4 linux ubuntu ipv6 qemu dhcpv6

我有两台装有 Ubuntu Server 20.04 的虚拟机。这些虚拟机之一是 DHCPv6 服务器,另一个是客户端。我可以在客户端上设置 IPv6 地址,但我无法与该地址进行 ping 操作。ip -6 route显示此地址,但前缀长度为 128。我希望前缀长度等于 64,与服务器 IP 地址相同。当我将从服务器获得的客户端 IP 地址添加到我的路由表中,但前缀长度等于 64 时,我可以在我的虚拟机之间进行 ping 操作。

这是我/etc/dhcp/dhcpd6.conf在服务器上的文件:

default-lease-time 2592000;
preferred-lifetime 604800;
option dhcp-renewal-time 3600;
option dhcp-rebinding-time 7200;
allow leasequery;
option dhcp6.name-servers 3ffe:501:ffff:100:200:ff:fe00:3f3e;
option dhcp6.domain-search "test.example.com","example.com";
option dhcp6.info-refresh-time 21600;

authoritative:
subnet6 fdaa:a:a:a::/64 {
   range6 fdaa:a:a:a::100 fdaa:a:a:a::199;
}
Run Code Online (Sandbox Code Playgroud)

最后三行是我加的。

这是我/etc/netplan/00-installer-config.yaml在客户端上的文件:

network:
   ethernets:
      ens3:
         dhcp4: false
         dhcp6: true
   version: 2
Run Code Online (Sandbox Code Playgroud)

预先感谢您的任何帮助。

Tom*_*iie 7

根据DHCPd 文档

在正常运行的系统中,客户端应该使用 128 的前缀长度,并从路由器的 RA 获取任何链路上信息。

由于您正在使用两个虚拟机,并且我假设没有支持 IPv6 的虚拟路由器连接到该虚拟网络,因此没有人发送这些 RA,因此您的客户端无法获得正确的子网掩码。

查看链接以获取更多信息。

  • @ user6758,实际上是 RA 告诉主机是使用有状态还是无状态。RA 是必要的,并且是所需 NDP 的一个组成部分。 (2认同)