@
xiaofami IPv6 分为 SLAAC 和 DHCPv6 ,SLAAC 如它的名字,是无状态的,而 DHCP 是有状态的,无状态意味着路由器不知道设备用的什么地址,自然没法做 DDNS 这种事情
DHCP 的话,考虑一下把内网设备的 DHCP 租约映射成成权威域名服务器
具体来说,DNS 是递归解析的,你需要通过 NS 记录,把你的域名的三级域名(例如
xxx.home.lostattractor.net) 指到一个权威 DNS 服务器(比如说你的路由器),然后权威服务器例如可以通过设备名,返回对应的 v6 地址,例如我家现在所以设备的 v4/v6 地址都可以通过
hostname.home.lostattractor.net 查到
然后对于 SLAAC ,如你帖子里说的,可以通过 EUI64 反算,但是 EUI64 是根据 MAC 地址生成后缀的,所以你需要有设备的 mac 地址,一方面这可以扫,一方面你的设备是不是至少会用 dhcpv4 ,那么 dhcpv4 的租约里就包括 mac 地址,你可以用前缀+dhcpv4 租约里的 mac 地址去猜 v6 地址,然后 ping 一下就知道设备有没有真的用了
很碰巧的是 dnsmasq 前段时间更新实现了这个 SLAAC 猜测的功能,叫 ra-name ,虽然用 dnsmasq 当权威服务器很不靠谱,但是 dnsmasq 已经能完成以上所有的操作了
不过 openwrt 虽然 v4 用了 dnsmasq ,v6 却是自己实现的 odhcpd (因为 relay 功能),所以暂时可能用不上,有兴趣的话过段时间我写个博客(