我希望网络上的设备能够自动配置由https://www.unique-local-ipv6.com/生成的前缀中的 ULA 地址,该网络主要仅支持 IPv6。
rad
我的主路由器运行的是 OpenBSD 7.4,并且使用以下配置运行:
dns {
nameserver {
fdd0:c720:85fa:100::1
}
}
interface igc1 {
prefix fdd0:c720:85fa:100::/64
}
interface igc3 {
prefix fdd0:c720:85fa:100::/64
}
我已经使用额外的 IPv6 ULA 地址设置了主接口,如下所示 (/etc/hostname.igc0):
inet autoconf
inet6 autoconf
inet6 alias fdd0:c720:85fa:100::1 64
我的客户端计算机(也是 OpenBSD 7.4)也设置为使用inet6 autoconf
. 它在 fdd0:c720:85fa:100::/64 中获取 IPv6 ULA 地址,但在向 fdd0:c720:85fa:100::1 发送邻居请求时从未收到邻居通告:
router# tcpdump -i igc3 ip6
10:02:52.296838 fe80::6af7:28ff:fe64:348d > ff02::1:ff00:1: icmp6: neighbor sol: who has fdd0:c720:85fa:100::1
10:02:53.296831 fe80::6af7:28ff:fe64:348d > ff02::1:ff00:1: icmp6: neighbor sol: who has fdd0:c720:85fa:100::1
10:02:54.296897 fe80::6af7:28ff:fe64:348d > ff02::1:ff00:1: icmp6: neighbor sol: who has fdd0:c720:85fa:100::1
10:02:55.306817 fe80::6af7:28ff:fe64:348d > ff02::1:ff00:1: icmp6: neighbor sol: who has fdd0:c720:85fa:100::1
10:02:56.306761 fe80::6af7:28ff:fe64:348d > ff02::1:ff00:1: icmp6: neighbor sol: who has fdd0:c720:85fa:100::1
fdd0:c720:85fa:100::/64 中的地址当前不可路由。我认为ndp -a
证实了这一点(在路由器上运行时):
Neighbor Linklayer Address Netif Expire S Flags
...
fdd0:c720:85fa:100::1 a8:b8:e0:01:d0:51 igc0 permanent R l
fdd0:c720:85fa:100:222b:20ff:fef7:a413 (incomplete) igc0 expired N
fdd0:c720:85fa:100:6094:e251:66e6:7bc9 (incomplete) igc0 expired N
fdd0:c720:85fa:100:6754:e5:a200:1d9c (incomplete) igc0 expired N
fdd0:c720:85fa:100:bfbf:5645:c950:385f (incomplete) igc0 expired N
我相当确信我错过了一些简单的东西,但我不明白是什么。我尝试在两台机器上禁用 pf ,但没有效果。我已经阅读了 slaacd(8)、hostname.if(5)、ifconfig(8)、rad(8) 和 rad.conf(5) 的手册页,但没有找到任何看起来(对我来说)的内容具有相关性。
我的 ISP 返回的来自我的前缀委托的 GUA IPv6 地址在我的所有设备上都能正常工作。我想使用 ULA 进行内部寻址,因为我的 ISP 的前缀委托不是静态的,并且已经更改了两次。
更多详细信息(其他配置文件、dmesg 等)可以在OpenBSD Misc Mailing List Archive中找到,因为我也在那里寻求帮助。
我在这里做错了什么?
(转自我的 OpenBSD 邮件列表回复)
好吧,我想我已经明白了。
我的核心问题是我在 rad.conf 中手动分配前缀,然后为每个接口分配相同前缀中的地址。这造成了某种冲突——我仍然不完全理解其本质。
这是我在 rad.conf(5) 中错过的关键行:
因此,只要我的接口在各自的前缀中分配了两个地址,rad 就可以为这些地址提供服务,而无需任何额外的配置。
这是我的最终 /etc/hostname.igc1:
我的最终 /etc/rad.conf:
现在,我网络上的设备将通过 SLAAC 自动分配 GUA 和 ULA 地址。