如何在 arm Linux 目标上禁用 IPv4 并仅启用 IPv6?

如何在 arm Linux 目标上禁用 IPv4 并仅启用 IPv6?

我正在测试 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 进行通信,那么您也应该看到正确的结果。

相关内容