我使用的Ubuntu 10.04桌面,默认情况下与“networkingpipe理器”(我非常怀疑)。 我在parsing2个不同域名服务器上的DNS区域时遇到问题。
$ cat /etc/resolv.conf #Generated by Network Manager search example.org nameserver 10.0.0.20 #public nameserver, contains public.example.org nameserver 10.0.0.30 #private nameserver, contains private.example.org
和问题。 无论哪个名称服务器首先列出将解决:
$ ping host.public.example.org PING host.public.example.org (10.0.0.50) 56(84) bytes of data.
列出的第二个不会:
$ ping host.private.example.org ping: unknown host host.private.example.org
但它在那里:
$ dig @10.0.0.30 host.private.example.org ... ;; ANSWER SECTION: host.private.example.org. 3600 IN A 10.0.0.60 ...
如果我颠倒了/etc/resolv.conf中的名称服务器的顺序,host.private将会被访问,而host.public则不会。 为什么? 从resolv.conf手册页:
如果有多个服务器,则parsing器库按照列出的顺序查询它们。
这不仅仅是ping有问题,当Thunderbird无法收到邮件时,我注意到了这一点,因为邮件服务器的DNSlogging位于列出的第二台服务器中。 我不应该在这里做什么工作?
呃……这不是真的那样。 只要第一个名称服务器正在运行并且活动,所有的绑定请求都会发送到它。 您到达第二个名称服务器的唯一方法是,如果列表中的以前的名称服务器已经死亡,并且在LONG超时之后。
要解决您的问题,我猜你可能必须build立一个本地cachingDNS服务器configuration,并将两个区域的名称服务器指向两个不同的服务器。 您的parsing器configuration将被设置为使用主机的IP。
本技巧向您展示了如何通过使用多个名称服务器来改进DNS查找。 如果您曾因任何原因导致您的主DNS服务器无法访问,此function将非常有用。
名称服务器列在/etc/resolv.conf中,每行一个。
代码1:示例/etc/resolv.conf
名称服务器192.168.1.1
名称服务器10.0.0.1
要改进DNS查找,请将多个DNS服务器(最好位于不同的子网上)和以下选项添加到/etc/resolv.conf中:
代码2:/etc/resolv.conf选项
选项旋转
选项超时:1
这将使用名称服务器在轮换和等待最大。 在尝试下一个之前1秒钟。
公用名称服务器应该响应该私有地址不会退出。 如果它是第一次运行,你会得到公众的答复。 首先列出私人服务器。 公共服务器只能用作回退。
名称服务器端的解决scheme是使用拆分configuration。 这将提供私人networking上的私人数据,只提供公众方面的公共数据。 公共服务器应该只在专用networking上提供推荐(google.com等)。