dnsmasq配置dhcpv6

dnsmasq开启dhcpv6需要开启以下两项配置

enable-ra
启用icmpv6 ra报文发送功能,这是SLAAC所必须的,实测开不开这一项都会发送ra报文

dhcp-range=::1,::1000,constructor:br-lan,ra-names
要开始dhcpv6必须指定起始和结束主机号,这里是::1和::1000,据我测试指定::或单独一个::1都无法启用dhcpv6,不用担心指定主机号范围后无法使用SLAAC功能,实际上指定主机号范围后SLAAC和DHCPV6是同时开启的。
constructor:br-lan这一项是指定绑定的网卡
ra-names 这一项是利用dhcpv4的主机名来推导ipv6的主机名,可以与其它mode合并使用
不指定结束主机号且无其它mode M:0,O:0,仅使用SLAAC,dhcp服务不启动
指定结束主机号 slaac和dhcpv6同时生效,M:1,O:1
slaac 实测没有效果
ra-only 实测没有效果
ra-stateless M:0,O:1,使用无状态dhcpv6,并禁用有状态dhcpv6,dhcpv6应答会显示无可用地址

如果是openwrt系统,创建/etc/dnsmasq.d/ipv6.conf,添加以下两行

enable-ra
dhcp-range=::1,::1000,constructor:br-lan,ra-names

openwrt系统开启dnsmasq的dhcpv6功能后需要关闭openwrt自带的dhcpv6功能
merlin系统则可以在/jffs/configs目录下修改dnsmasq配置

查看租约信息
cat /var/dhcp.lease

这样能通过主机名访问到的就是IPv6地址了

更多的语法参考这里:
https://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
RDNSS:
https://datatracker.ietf.org/doc/rfc8106/
dnsmasq实现的RDNSS只有dns server list,没有dns search list

发表回复