DNS查找过程

时间:2018-01-07 05:54:42

标签: dns nameservers

我对DNS如何工作的过程感到很困惑。每个环节都说不同的东西,可能会是一样的,但我无法理解。 我会尽力提出我所知道的所有内容。请添加此内容并在出现问题时进行更正。

  1. 在浏览器的地址栏中输入www.example.com。
  2. 浏览器向系统的OS发送请求以检入hosts文件。
  3. 如果存在具有example.com域IP的记录,操作系统将检查hosts文件。
  4. 如果记录存在,则将IP地址返回给浏览器。然后,浏览器将网页请求直接发送到IP地址。
  5. 如果步骤3中的记录不存在,浏览器会从OS获得未找到记录的响应。然后,浏览器从DNS服务器请求IP。 (这是正确的吗?浏览器得到否定响应,它向DNS服务器发送请求,或者是一旦知道主机文件不包含所需记录就直接向DNS服务器请求IP的操作系统。)
  6. 现在,我的主要怀疑。什么是DNS服务器?它们是我们所谓的名称服务器吗?他们住在哪里?谁为我们提供了这些名称服务器?浏览器发送请求或操作系统?
  7. This帖子说我们的系统配置了DNS服务器,操作系统向这些服务器发送请求。 现在,DNS解析器在哪里出现。他们在做什么。 This帖子称DNS解析器是由ISP进行翻译的计算机。然后是Browser -> Hosts File-> DNS resolvers -> DNS servers之类的请求序列?但谁向谁发送请求?

    请更正以上内容。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

列表中的一到五个是正确的。浏览器会询问您的DNS解析器(您的ISP或您在网络设置中放置的任何内容)。如果解析器不知道答案就会开始询问。

我将stackoverflow.com作为示例

  1. 解析器会询问root servers,他们会回复TLD servers com TLD servers的权威。

  2. 解析器会询问name servers,他们会回复stackoverflow.comdomain registrar name servers配置的A record(s)

  3. 解析器会询问A record,他们会回复TTL

  4. 解析器将TTL缓存一段时间(记录的name servers,或者它有自己的时间覆盖Browser -> Hosts File -> DNS resolver ->(rq*) Root servers -> TLD servers -> Name servers -> NS records给出的NS records并且当再次询问解析器时它会返回它在缓存中的内容(除非TTL已过期,然后它再次开始询问)

  5. 总结如下:

    www.stackoverflow.com

    • rq - 递归查询

    询问name servers是否要打开name server,它们就像sub domains(NS实际上代表FileOutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE); ObjectOutputStream os = new ObjectOutputStream(fos); os.writeObject(set); os.close(); fos.close(); ),但是FileInputStream fis = context.openFileInput(fileName); ObjectInputStream is = new ObjectInputStream(fis); Set<Set<String>> set = (Set) is.readObject(); is.close(); fis.close();

答案 1 :(得分:0)

要了解有关DNS查找的更多详细信息,请参阅以下示例:

  • 当您输入www.google.com时,我们实际上会调用 www.google.com。最后的代表互联网命名空间的根目录。
  • 浏览器检查自己的缓存,如果没有找到,则要求操作系统提供IP。
  • 操作系统然后检查IP地址是否在内存(缓存)中。
  • 如果浏览器和操作系统(缓存)都不知道IP地址,那么操作系统配置为向解析名称服务器(RNS)询问它没有的IP地址知道吗。
  • RNS是DNS查找的主要工作人员。它在您的操作系统中手动和自动配置。
  • 操作系统然后向RNS查询IP。 RNS可能有也可能没有缓存中的IP。
  • 所有RNS必须知道的唯一事情是在哪里找到根名称服务器,即。在每个网址结尾后出现。
  • 根名称服务器将回复查找com名称服务器的位置。
  • com名称服务器是顶级域名(TLD)名称服务器。
  • RNS然后从根名称服务器缓存它的信息并转到TLD服务器。
  • TLD名称服务器将通过说出google.com名称服务器的位置来回复。下一组名称服务器是权威名称服务器(ANS)
  • RNS然后从TLD名称服务器缓存它的信息并转到ANS。
  • ANS现在回复说它知道URL的IP地址。
  • RNS现在将IP地址保存在其缓存中,然后将回复提供给操作系统。
  • 然后操作系统将IP地址移交给浏览器。
  • 然后浏览器连接请求网址的IP地址。

整个周期只需几分之一秒。

浏览器 - &gt; OS - &gt; DNS查找 - &gt; RNS - &gt;根名称服务器 - &gt; TLD - &gt; ANS - &gt; RNS - &gt; OS - &gt;浏览器