Ste*_*veJ 1 domain-name-system resolv.conf centos
我有一个 CentOS 6.4 机器。
与此机架中的所有其他盒子一样,它有两个 NIC:一个内部 (192.168.1.x) 和一个外部(对世界可见)。
我们在机架中的其中一台服务器 (192.168.1.11) 上运行我们自己的缓存解析器(使用 Unbound),并且它配置了一些本地 DNS 条目(mario.local、luigi.local 等),以便我们可以简单地 ping /ssh/ftp 到“主机名”从任何本地框到任何其他本地框,而无需通过外部交换机之一(这会导致我们的 ISP 收费)。
如果我的 /etc/resolv.conf 看起来像这样:
search local
nameserver 192.168.1.11
nameserver 8.8.8.8
nameserver 74.82.42.42
Run Code Online (Sandbox Code Playgroud)
我 ping “马里奥” 我得到:
# ping mario
PING mario.local (192.168.1.3) 56(84) bytes of data.
64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.738 ms
Run Code Online (Sandbox Code Playgroud)
但是,本地 DNS 服务器比 Google 公共 DNS 服务器慢得多,因此我更愿意将其放在列表中的第一个。因此,如果我将 /etc/resolve.conf 更改为:
search local
nameserver 8.8.8.8
nameserver 192.168.1.11
nameserver 74.82.42.42
Run Code Online (Sandbox Code Playgroud)
我希望对“mario”的 ping 尝试在 8.8.8.8 上解析 mario.local,失败,然后查询列表中的第二个 DNS 服务器 (192.168.1.11) 并解析。但相反,我得到:
# ping mario
ping: unknown host mario
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么 - 还是我误解了 resolve.conf 应该如何工作?我想知道它是否与路由有关。
我的期望是,如果第一个 DNS 服务器无法解析 IP,则第二个 resolv.conf 条目会得到尝试,但这不起作用。帮助!
只有在尝试访问第一个名称服务器超时时,解析器才会查询第二个名称服务器。在您的情况下,这不是超时问题,而是解析失败,因此无需查询剩余的名称服务器。
您可以通过添加一个在第一行中没有运行名称服务器的 IP 和它下面的真实名称服务器来测试这一点 - 像这样
search local
nameserver 1.2.3.4
nameserver 192.168.1.11
nameserver 8.8.8.8
Run Code Online (Sandbox Code Playgroud)
第一个肯定会超时,然后将按该顺序查询剩余的名称服务器。
| 归档时间: |
|
| 查看次数: |
7178 次 |
| 最近记录: |