什么是“递归DNS查询”?[关闭]


15

有人可以简短地解释一下“递归DNS查询”的含义以及如何将其视为错误的吗?


我只知道标题是谁写的。我不知道您为什么继续在此处发布DNS内容,但这完全不是Unix / Linux专用的。我个人认为这是一个体面的问题,但是这里并没有成为话题,并且我认为网络中没有我们想要的另一个站点
Michael Mrozek

真的是题外话吗?考虑到世界上90%的DNS服务器都在unix / linux上运行?也许可以将问题改写为:“如何配置我的DNS服务器以回答递归查询,为什么我应该避免这种情况?” 但这真的是“题外话”吗?只是好奇。
gabe。

可以说它可以被认为是对security.stackexchange.com的更合适的选择,但是我看不出有任何真正的理由完全拒绝它……
Shadur 2011年

Answers:


25

TL; DR:递归查询是Internet和DNS工作方式的一部分,但并非所有DNS服务器都应接收递归查询,当不响应的服务器响应时,您会遇到问题。

较长版本:

递归,n:请参见递归下。

当您要求提供unix.stackexchange.com的地址的DNS服务器本身不知道答案时,就会发生递归DNS查询,因此必须与另一台服务器进行检查。

通常,这实际上就是DNS的工作方式-ISP的DNS服务器由于明显的原因并没有永久记住整个Internet的域记录,因此以下交换是在后台进行的:

  1. 您:嘿,浏览器,请告诉我http://unix.stackexchange.com

  2. 浏览器:当然可以!嗯 我实际上不知道这是什么IP地址。

    嘿,操作系统,您能告诉我在哪里可以找到unix.stackexchange.com吗?

  3. 操作系统:当然可以。

    嗯 它不在我自己的主机文件中。我只是检查我的解析器配置...

    嘿,ISP的DNS服务器,您能告诉我在哪里可以找到unix.stackexchange.com吗?

  4. ISP的DNS服务器:当然可以!

    嗯 那不在我的权威领域列表中,而现在我还没有缓存该答案。

    嘿,互联网根服务器,您能告诉我谁对stackexchange.com权威吗?

  5. Internet根服务器:当然可以!根据我们的记录,您需要ns1.serverfault.com,ns2.serverfault.com或ns3.serverfault.com。

  6. ISP的DNS服务器:谢谢,Internet根服务器!

    嗨,ns2.serverfault.com,您能告诉我在哪里可以找到unix.stackexchange.com吗?

  7. ns2.serverfault.com:好的!那是地址64.34.119.12

  8. ISP的DNS服务器:太好了,谢谢!

    操作系统,您要查找的数字是64.34.119.12。

  9. 操作系统:太好了,谢谢!

    浏览器,您需要地址64.34.119.12

  10. 浏览器:太好了,谢谢!

    好的,现在调出页面。

  11. 您:是的,谢谢浏览器!

现在请记住,这里实际上查询了两种类型的名称服务器- 权威 DNS服务器(所谓的“根”服务器,告诉您ISP的DNS服务器在哪里可以找到SE.com的DNS服务器,以及SE.com的权威DNS服务器。 )并递归转发 DNS服务器(您的ISP的DNS服务器)。

通常,前一种类型不应响应递归查询,尤其是不能从其自己的域之外响应。较小的ISP有时会通过将其主要权威名称服务器与其主要转发名称服务器置于同一服务器来节省成本,但这是不安全的策略-尤其是如果您未将服务器配置为拒绝来自您自己IP范围之外的递归查询。

在Wikipedia上进一步阅读。


据我所知,根服务器应将您定向到这些.com服务器,然后ISP的递归服务器将从那里指向SE.com的服务器。
Hanan N.

是的,但我认为我至少要使其保持某种程度/简化但易于理解。
沙杜尔2011年

我认为您忘记了第12步。:Michael Mrozek:“嘿,LanceBaynes,我知道是谁写的只是标题而已...”
Alois Mahdal

优秀!答案已被接受1
Valentin Bajrami

5

如果有2个DNS服务器,则DNS-A是域a的权限,DNS-B是域b的权限,并且有人向DNS-A发送DNS查询以查找域b。然后,DNS-A将通过向DNS-B发送请求以查找域b来进行递归。本质上,递归查询是指DNS服务器代表发送查询的客户端跟踪DNS路径以完成请求。

如果您要为办公室(如办公室)托管DNS服务器,这很好,并且该办公室中的所有计算机都将使用DNS服务器进行所有查找。如果您允许任何人进行DNS递归查询,那么这是很糟糕的。如果托管的DNS服务器仅应满足特定域的请求,这也很不利。如果有人请求查找另一个域,则DNS服务器应返回错误而不是进行递归。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.