resolv.conf和named.conf转发器有什么区别?

由于我一直在Ubuntu中对DNS创build过程进行故障排除,所以我注意到下列文件显得多余:

etc / bind / named.conf.options(或named.conf的一部分,取决于你的文件的设置)

forwarders { 1.2.3.4; 5.6.7.8; 9.10.11.12; }; 

等/ resolv.conf

 domain example.com nameserver 1.2.3.4 nameserver 5.6.7.8 nameserver 9.10.11.12 

一般来说,当这样的观察被发现时,我发现我正在做一些不正确的事情,如果我错了,那么纠正我。 似乎named.conf喜欢有机器净IP和resolv.conf应该有127.0.0.1。 除此之外,他们应该有我的ISP的DNS的IP,这将是相同的。 谢谢您的帮助。

很难清楚地回答,因为我不知道你要完成什么工作:

  • 你想使用自己的BIND服务器来pipe理私人DNS区域吗?
  • 你只是想让DNSparsing工作正常吗?
  • 你是否试图设置一个本地caching出于性能原因?

如果要在服务器上运行本地DNSparsing程序,则应将/etc/resolv.conf指向本地BIND服务器(127.0.0.1),并让BIND从根名称服务器开始parsing,就像任何其他名称服务器一样。 在named.conf不需要“转发器”条目。 严格地说,通过保留“转发器”条目,您将会轻微地减less根名称服务器上的负载。

如果您只是试图在您的机器上运行DNSparsing,但不需要自己运行DNS服务器,那么不用担心named.conf ,只需在ISP的DNS服务器上指向/etc/resolv.conf

编辑:

在我看来,我没有在标题中回答这个问题。

  • /etc/resolv.conf是您的计算机上的parsing程序库(libc的一部分)使用的文件,每个程序都使用该文件来请求DNS查找。 当您的网页浏览器想要进行DNS查询时,它会调用gethostbyname('www.blah.com') (或其衍生产品之一)。 该函数做了大量的工作,其中包括读取/etc/resolv.conf并使用它来确定可以请求执行查找的DNS服务器。

  • /etc/named.conf由BIND使用。 通常,当您向BIND发出请求时,会检查本地caching,如果没有,则会询问其中一个根名称服务器。 根服务器“委托”(通常)GTLD或国家级服务器。 这些服务器然后将委派给域的所有者。 通常它会停在那里,但有时还会有一到两个子子域的委派。 这加起来3-5个查询来得到答案。 然后将答案添加到本地caching中,并交给请求客户端。 如果您指定了“转发器”,BIND只会向列出的主机(通常是您的ISP的DNS服务器)发出一个请求,并让他们完成所有繁重的工作。 它得到一个答复回到其单个查询,并把答复交还给客户端。