Ubuntu 20.04环境下Kea DHCP6配置引发IPv6 DNS解析失效问题求助
Hi,我仔细看了你的问题描述,这种IPv6环境下DNS地址能被识别但就是无法正常解析的情况确实挺闹心的。结合你给出的Kea配置和现象,我整理了几个可能的排查方向和解决思路:
检查systemd-resolved对DHCPv6 DNS的处理逻辑
Ubuntu默认用systemd-resolved管理DNS,它对DHCPv6获取的DNS有特殊的配置规则。你可以先查看/etc/systemd/resolved.conf里的DNSOverTLS、IPv6DNSSEC选项——如果开启了DNSSEC但你的IPv6 DNS服务器不支持的话,直接会导致解析失败。可以先临时把这些选项设为no,然后重启服务试试:sudo systemctl restart systemd-resolved另外,运行
resolvectl status看看对应IPv6接口的DNS服务器条目下有没有标注dhcp,如果没有,可能是接口的DNS模式没设对,执行以下命令强制接口通过DHCP获取DNS:sudo resolvectl set-dns <你的IPv6接口名> --dhcp补全Kea DHCPv6的DNS相关配置
你给出的Kea配置只设置了dns-servers(code 23),但缺少domain-search(code 24)选项的话,部分依赖搜索域的DNS解析可能会失败。可以在Kea的option-data里添加这个配置:{ "name": "domain-search", "data": "your-domain.example.com", "code": 24 }修改完记得重启Kea DHCPv6服务,确保配置生效。
直接验证IPv6 DNS服务器的可用性
虽然resolvectl里能看到DNS地址,但还是要确认Ubuntu机器能正常连通这个IPv6 DNS服务器。用dig命令直接指定服务器测试解析:dig @<你的IPv6 DNS地址> example.com AAAA如果这个命令能返回正确结果,说明DNS服务器本身没问题,问题出在systemd-resolved的配置上;如果超时或报错,那就要排查IPv6路由、防火墙或者DNS服务器自身的问题了。
排查RA报文的潜在冲突
你提到路由器RA设置了“其他配置”标志,但有些路由器可能同时在RA里推送了RDNSS(DNS递归服务器)选项,这会和DHCPv6推送的DNS产生冲突。可以用tcpdump抓RA包看看有没有RDNSS字段,如果有的话,建议关闭路由器RA里的RDNSS推送,只保留“其他配置”标志,让系统完全通过DHCPv6获取DNS。临时切换解析器做验证
可以临时把systemd-resolved换成unbound,看看能不能正常解析,以此排除systemd-resolved本身的问题:sudo apt install unbound sudo systemctl stop systemd-resolved sudo systemctl start unbound如果切换后解析正常,那就是systemd-resolved的配置需要针对性调整。
备注:内容来源于stack exchange,提问作者user22593946

