随着IPv6的逐渐普及,一些问题开始显现。通常我们会在网络中使用native模式,由运营商为子网设备统一分配全球可路由的公网IPv6地址。但是这个地址并不是固定不变的,每次重启网络之后都会发生变化,这就需要我们将IPv6地址解析到一个固定的域名上,方便日后的使用。
在ipv4时代,我们只需要解析主路由的域名,即可以方便的通过端口转发等NAT功能来访问内网的设备。而在IPv6的时代,NAT已经被逐渐取代,每个设备都能获得一个可以路由的公网地址。
这个时候我们可以在子设备上开启DDNS解析对应的AAAA记录。但是不是所有的子设备都支持DDNS客户端的。有没有什么方法可以在路由器上为所有的子设备统一DDNS解析呢?
在openwrt里,DUID和ipv6地址对应的关系被保存在/tmp/hosts/odhcpd
这个文件中,我们只需要在这个文件里查找DUID对应的IPV6地址即可。
打开文件后,里面的内容排版如下
使用查找指令,就可以将DUID中的v6地址找出来
bashgrep "000100012cbc75cfe0d55e8e525c" /tmp/hosts/odhcpd | awk '{print $9}'
grep后面是DUID,当然也可以填设备名称,awk '{print $9}'
表示打印这一行中的第9段,也就是v6公网所在的
在lucky中,新建一个DDNS解析,类型为ipv6,获取方式为“通过指令获”
测试能够正确获得该设备的v6地址。