我正在尝试在 linux 机器上使用 ISC DHCPv6 设置一个简单的 ipv6 网络。
这是我的 dhcpd6.conf:
subnet6 beef:fade::/112 {
max-lease-time 3600;
range6 beef:fade::100 beef:fade::fffe;
}
dhcpv6 服务器工作并将地址分配给指定范围内的连接主机,但是,连接的设备无法相互 ping 或 ping dhcpv6 服务器,因为它们使用 128 作为网络掩码。
上网查了一下,发现是因为没有RA。所以我下载并启动了 RADVD,启用了 ipv6 转发并且我的防火墙被禁用了。这是我的 radvd.conf:
interface enp1s0
{
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
prefix beef:fade::/112
{
AdvOnLink on;
AdvAutonomous off;
};
};
但这导致 radvd 说:enp1s0 prefix length should be: 64
. 但我不想要前缀长度 64。我希望能够在必要时将其设置为几乎任何长度。
我该怎么做呢?我唯一的要求是我必须使用 ISC DHCPv6 实现。
另外,假设我可以让它工作。当在 DHCPv6 服务器上启用防火墙时,我必须向我的防火墙添加哪些规则才能使其正常工作。
显然
enp1s0 prefix length should be: 64
只是一个警告,而不是问题的原因。在我的特殊情况下,这不起作用的原因是客户不接受 RA。要在 Linux 机器上接受 RA,您必须设置
/proc/sys/net/net/ipv6/conf/eth0/accept_ra
为1
或2
.