我有一个来自 ISP 的路由 /64 并且我正在运行 radvd。我的客户端(Linux、Windows)在插入路由器时运行良好,无需任何额外配置。它们都通过 SLAAC 为自己分配带有 ISP /64 前缀的唯一地址,用于临时和永久 (1) 地址分配。
我没有运行 DHCPv6,也不打算这样做。正如我在此处了解到的,对于 SLAAC 客户端来说,它是非常无用的,除非他们有使用分配的 DHCP 地址的特殊配置,因为他们很可能会在默认情况下忽略它 (2),这无论如何都很好且首选。我绝对不想在插入网络的“库存”客户端机器上做任何工作。
那么,上面的第 (1) 点:客户端使用的 SLAAC IPv6 地址并不是真正永久的。将这些放在 Bind for DNS AAAA 记录中可以工作......一段时间。这是我问题的症结所在。
我无法弄清楚如何让 DNS 服务器根据 SLAAC IP 填充其记录。
题:
1) radvd 可以在 RA 上运行脚本,然后将其带到第 2 步...
2) 我从上一步知道,我有一个新客户端的新 FE80 地址。如何获取该客户端使用其 FE80 地址分配给自己的全局 IPv6 地址?
3) 然后,我想用他在步骤 2 中获得的全球 IPv6 地址更新绑定 DNS 记录。
我试图完成的上述事情似乎应该遍布整个互联网 - 我正在努力找出我做错了什么,使我的用例如此罕见。是否已经有一种机制可以自动完成我所缺少的(记住 DHCPv6 是不可能的)?
问候和感谢
(2) SLAAC Ubuntu 客户端肯定会忽略 DHCPv6 分配,即使 radvd 告诉了它们。事实上,Ubuntu(也许更多)在这种配置中使用时甚至有一个旧错误,它实际上不会添加路由,从而在没有手动干预的情况下使连接无用。我认为这个错误的优先级非常低,因为 DHCPv6 与 radvd …
以下是信息:
Host link IP: fe80::9eec:b32d:855c:5589
Server link IP: fe80::f03c:91ff:fe11:96c4
Host global IP: 2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727 (Ugh!)
Server global IP: 2601:aaaa:bbbb:cccc::1
Run Code Online (Sandbox Code Playgroud)
服务器已为 2601:aaaa:bbbb:cccc::/64 路由块
DHCP尝试将此 IP 分配给主机:2601:aaaa:bbbb:cccc:1000::fa8d
主机必须是通用的: 主机没有自定义网络配置作为要求。假定所有主机都是任何人都拥有的计算机,并且它们将它们插入并且它们应该可以在没有任何自定义的情况下工作。这意味着 dhclient 永远不应该在 IPv6 客户端上使用:一切都应该通过 SLAAC 或有状态的 SLAAC(我想要完成的)完成。
主机与默认为 IPv6 的浏览器配合得很好,并且无论是 IPv6 还是 IPv4,都可以访问所有站点。
主机网络:
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 28:d2:44:6b:bf:9f brd ff:ff:ff:ff:ff:ff
inet 172.21.0.102/24 brd 172.21.0.255 scope global dynamic noprefixroute enp0s25
valid_lft 39535sec preferred_lft 39535sec
inet6 2601:aaaa:bbbb:cccc:ec25:e54d:4255:6c76/64 scope global temporary dynamic
valid_lft 86199sec …
Run Code Online (Sandbox Code Playgroud)