注意:我知道胶水logging,并且DNS服务器仅在ns服务器域与您发送查询的域相同的情况下才使用它们。
现在我的问题是:假设你的example.com有ns1.example.org (与example.com不同的域名)作为其NSlogging。 在某些时候,parsing器还需要parsing并findns1.example.org的IP地址。 我的问题是,它如何做(没有胶水logging)?
我的猜测是它再次启动过程,首先进入根DNS,然后到.org DNS,然后到达example.org的名称服务器…但是等等,名称服务器有名称服务器吗? 如果是的话,那么这将最终陷入一个无限循环,因为现在你需要findexample.org的NSlogging并去那里等。
我的意思是,这些名称服务器的IP地址必须存储在某个地方。 我听到有人说,胶水logging只用于说如果你有example.com和NS服务器ns1.example.com ,相同的域名。 如果它是一个不同的域名,那么我已经读过这个域名的parsing以便findIP …但是这意味着像ns1.example.org这样的域名服务器有自己的域名服务器,这实际上是没有意义的。
向不同域中的名称服务器的授权实际上并没有太大的改变,只是让parsing器做更多的工作。
在您提供的示例中, example.org域必须对example.com名称有效才能成功parsing – 为什么它没有自己的名称服务器或粘合logging?
如果您创build了一个不可能的代理循环,就像您尝试将ns1.example.org委托给example.com下的名称服务器一样,那么您似乎想象中的无限循环故障情况只会发挥作用。
- parsing器需要www.example.com的IP(查询“www.example.com”)。
- 它没有被caching,因此它需要请求一个对example.com有权威性的DNS服务器
- 没有任何更好的想法,它要求预先configuration的根服务器之一
- 而不是最后的回复,我们被告知com的autoritative服务器,比如a.gtld-servers.net; 即使这些不在com下,根服务器也会添加胶水logging; 因此我们知道a.gtld-servers.net的ip
- 所以我们问我们的问题“a http://www.example.com”a.gtld-servers.net
- 同样,a.gtld-servers也知道答案,但告诉我们ns.example.org是负责任的; 通常,在这一点上会有胶水logging,但是让我们假设我不是这种情况
- 我们开始一个子查询“A ns.example.org”
- 如上所述,根服务器将我们导向组织的DNS服务器,例如a0.org.afilieas-nst.info; 在一个糟糕的世界里,我们不得不开始游戏来find这个人,但是在这个层面上,我们确实获得了胶水logging
- 所以我们可以问一下a0.org.afilieas-nst.info ns.example.org
- 我们知道,我们应该问a.iana-servers.net关于example.org,但不幸的是没有胶水
- 所以我们问根服务器(因为我们同时学习了COM和组织,但还没有关于networking)。
- 答复告诉我们,egagtld-servers-net负责networking。 而且我们也获得了胶水,但是我们已经知道a.gtld-servers.net的ip了
- 我们问a.gtld-servers.net“a.inana-servers.net”,并学习iana-servers.net的NSlogging; 其中三个在iana-servers.net(和胶水)和第四个服务器是ns.icann.org
- 对于一些愚蠢的问题,我们忽略了胶水logging(或者这个名字服务器无法访问),因此需要parsingns.icann.org; 好吧,我们已经知道,我们应该查询a0.org.afilieas-nst.info“A ns.icann.org”
- 有趣的是,返回的名称服务器与上面相同:三个来自icann-servers.net和ns.icann.org本身; 这次ns.icann.org自带胶水
- 所以现在我们知道ns.icann.org的IP地址,并且可以询问它“A a.iana-servers.net”并获得它的地址
- 所以现在我们终于可以问a.iana-servers.net“ns.example.org”并获得一个ip(好吧,不是现实中的,当然也不是)
- 我们可以在该ip下为“www.example.com”询问ns.example.org,最终解决了我们原来的问题
在这个过程中,我们了解了很多重要的区域,比如com,net和org。 通过caching这个信息,我们接下来的查询将less走很多弯路。
你是对的,名称服务器的IP地址存储在某个地方 – 你不能解决任何没有DNS的FQDN。 这就是为什么你的networkingconfiguration中有IP地址,而不是他们的名字。
根DNS服务器通过在每个DNS服务器中configuration的IP地址来引用。 所以,当一个DNS服务器得到一个域名的查询,它不知道,它
- 查询其configuration的DNS
- 查询根DNS,它不会回答相应的IP,但是哪个名称服务器处理根域名(比如.com),然后这个名字服务器可以回答哪个名字服务器处理特定的域名(比如nasa.com )
你可以做一些探索做跟踪请求:
dig +trace www.google.com