当本地区域文件存在时,dns 无法解析远程域

当本地区域文件存在时,dns 无法解析远程域

经过无数次研究,我仍然不确定这是对还是错。请允许我问一下。

我在 Linux 上设置了绑定 DNS,并且设置了解析器首先监听本地主机,然后再监听其他主机。

我有一个域名,示例.com,它有亚马逊域名服务器。

在 Linux 上,我也有区域文件示例.com并且其写法为

example.com.  86400   IN      NS     < local host name >

当我命令

nslookup example.com

它将回归

Server:     < local host ip >
Address:    < local host ip >#53

删除/禁用区域文件后

它将返回正确的信息

Server:     < amazon ns ip >
Address:    < amazon ns ip >#53

我认为正确的设置是即使区域文件存在,dns 也可以找出真实名称服务器在哪里。

你能告诉我哪里出了问题吗?我应该深入研究哪里?

答案1

DNS 查找工作的优先级在文件中定义/etc/nsswitch.conf

如果你搜索该文件,你会发现 hosts 行如下

cat /etc/nsswitch.conf  | grep hosts
hosts:          files dns

因此,解析将首先在文件中查找条目/etc/hosts,然后检查 DNS。DNS 优先级在文件中定义/etc/resolv.conf

因此, /etc/resolv.conf 您可能会有公共 DNS 条目。

相关内容