![Linux 中的 DNS 服务器问题](https://linux22.com/image/608206/Linux%20%E4%B8%AD%E7%9A%84%20DNS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%97%AE%E9%A2%98.png)
我们已经在 RedHat 6.1 OS 上配置了 DNS 服务器,bind 版本是bind-9.8.2-0.10.rc1.el6_3.6.x86_64
。我的 DNS 服务器运行正常(通过 dig 和 nslookup 命令测试)。
问题是,每当我将此服务器保留在/etc/resolv.conf
客户端中作为主服务器时,我都无法从我在 中添加的第二和第三 DNS 服务器获得响应/etc/resolv.conf
。如果我将其保留为第二/第三 DNS 服务器,则无法从此服务器获得响应。只有当我将单个 DNS 服务器保留在 中时,我才能获得响应/etc/resolv.conf
。
答案1
这是预期行为。resolv.conf 中有多个 DNS 服务器并不意味着“尝试每个服务器直到找到”。而是意味着“尝试第一个服务器,但如果没有得到响应,则尝试下一个”。
因此,如果您的 DNS 服务器仅记录了您内部机器的记录,并且不将请求转发到外部 DNS 服务器,那么查找外部内容(如 google.com)将导致“未找到”响应。由于“未找到”是一个响应,因此客户端会放弃,因为您的 DNS 服务器做出了响应。
答案2
尝试将该rotate
选项添加到选项部分。
rotate 在 _res.options 中设置 RES_ROTATE,这会导致从列出的服务器中循环选择名称服务器。这可以将查询负载分散到所有列出的服务器中,而不是让所有客户端每次都先尝试列出的第一个服务器。
答案3
你到底想要什么?我猜你想要“转发器”+“首先转发”来解析本地/非本地主机。
现代 BIND 还为此提供了视图和分割品牌 DNS - 需要大量文档细读。