我在Linux盒上有一个应用程序,它使用反向查找来解析主机名。问题是,我的resolve.conf中有两组DNS服务器(总共4台服务器),每一组对应于不同的IP范围。它对一个IP的范围很好,无论哪一个恰好在第一个服务器中,但是如果我试图查找另一个范围,它报告没有找到: 3(NXDOMAIN)。如果它只是尝试列表中的下一个服务器,它会在那里succeed....is使它这样做吗?DNS服务器仅对其各自的范围具有权威性。
发布于 2012-08-27 19:42:02
我将安装dnsmasq,使其(127.0.0.1)成为唯一的名称服务器,并使用" server“dnsmasq.conf指令将其配置为查询此或那个域的服务器。
如果有一种方法可以在NXDOMAIN上尝试与DNS服务器不同的服务器,那就是使用具有此功能的本地DNS服务器。Linux解析器不允许这样做。可以将PowerDNS配置为为每个查询运行命令,因此作为最后手段,您可以始终这样做。
发布于 2012-08-29 10:40:05
回复@cstamas,只是为了澄清如何用dnsmasq解决VPN问题。
假设您的计算机位于homenetwork.test域,IP地址为10.1.0.0/16,而DNS服务器为10.1.0.1。该DNS服务器只能查询worknetwork.test域的“外部”域名。它对homenetwork.test和1.10.in-addr.arp具有权威性(内部)。
现在,您连接VPN以加入工作网络,现在您有了一条通过该接口连接到10.2.0.0/16的新路由和一个对worknetwork.test和2.10.inaddr.arpa具有权威性的新的DNS服务器10.2.0.1。如果使用这些名称服务器中的一个或另一个,则只能解析其中一个worknetwork.test域和另一个homenetwork.test域。
如果同时使用dns服务器(和RES_ROTATE),这并不会更好,因为有时您能够解决其中的一个或另一个。
现在,如果你用
dnsmasq --no-resolv --no-negcache --no-host --conf-file= \
--server=/worknetwork.test/10.2.0.1 \
--server=/2.10.in-addr.arpa/10.2.0.1 \
--server=10.1.0.1在resolv.conf中有"nameserver 127.0.0.1“,您将使用10.2.0.1来解析worknetwork.test和10.2.x.x IP地址以及您的主DNS服务器。
发布于 2012-08-27 20:01:56
你告诉的信息很少,所以很难开始,但我会尝试.
首先,您所说的服务器是权威的dns服务器(提供有关您设置的区域的信息),对吗?如果是这样的话,您应该在您的resolv.conf中设置一个仅是递归的服务器(只为您解析dns名称,而不是提供信息)。正如sch所说,您可以在本地主机上安装它。
另一方面,如果服务器返回一个not域,意思是:“我知道这个名称,我是它的权威服务器,这个名称不存在。”标准dns解析算法在此停止。仅此而已,这是无法避免的。您应该将您的权威dns服务器设置为不对该名称具有权威性。
https://serverfault.com/questions/421663
复制相似问题