我正在测试 bind9 dns 服务器的 AAAA 记录。我想禁用 IPv4,以阻止 dns 请求发送到我的默认 ipv4 dns 服务器。
在 resolv.conf 中我添加了
domain mydomain.com
nameserver xxxx:xxxx:xxxx:xxxx:xxxx::xxxx
search mydomain.com
当我尝试调用 getaddrinfo("mydomain.com",NULL,&hints,&res); 将域名解析为 IPv6 地址时,我看到错误消息“无到主机的路由”。
当我在 Ubuntu PC 上运行时,相同的程序可以解析为 IPv6 地址。
我曾尝试测试
nslookup mydomain.com
server: 10.1.xx.xx
address 1: 10.1.xx.xx dnsserver.com
nslookup: can't resolve 'mydomain.com'
nslookup 命令在 Linux PC 上正常运行。
Linux 内核已启用 IPv6,在 eth0 和 lo ::1 中具有本地链接地址 fe80::xxxx,并且能够 ping6 地址。看到的问题主要与 bind9 服务器中列出的域名的名称解析有关。
我需要在 /etc/network 中或者其他地方做什么额外的事情吗?
答案1
不太清楚你想做什么,但让我看看。
如果您想测试 AAAA 记录的 DNS 解析,则无需禁用 IPv4,您只需向 DNS 服务器查询 AAAA 记录即可:
dig -t AAAA yourdomain.com
如果服务器有记录,它也会使用 ipv4 成功返回。
如果你想在双栈主机上使用 ipv6 测试 dns 客户端,那么你可以使用
dig -6 -t AAAA yourdomain.com
如果您的主机和 DNS 服务器都可以使用 IPv6 进行通信,那么您也应该看到正确的结果。