DNS

更新时间: 2024-04-07 10:30:48

DNS是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

DNS解析过程

DNS查询的结果通常会在本地域名服务器中进行缓存,如果本地域名服务器中有缓存的情况下,则会跳过如下DNS查询步骤,很快返回解析结果。下面的示例则概述了本地域名服务器没有缓存的情况下,DNS查询所需的8个步骤:

  1. 用户在Web浏览器中输入“example.com”, 则由本地域名服务器开始进行递归查询。

  2. 本地域名服务器采用迭代查询的方法,向根域名服务器进行查询。

  3. 根域名服务器告诉本地域名服务器,下一步应该查询的顶级域名服务器.com TLD的IP地址。

  4. 本地域名服务器向顶级域名服务器.com TLD进行查询。

  5. .com TLD服务器告诉本地域名服务器,下一步查询example.com权威域名服务器的IP地址。

  6. 本地域名服务器向example.com权威域名服务器发送查询。

  7. example.com权威域名服务器告诉本地域名服务器所查询的主机IP地址。

  8. 本地域名服务器最后把查询的IP地址响应给Web浏览器。

    一旦DNS查询的8个步骤返回了example.com的IP地址,浏览器就能够发出对网页的请求:

  9. 浏览器向IP地址发出HTTP请求。

  10. 该IP处的Web服务器返回要在浏览器中呈现的网页。

image

DNS术语

  • 递归查询

    是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户。

  • 迭代查询

    是指DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。

  • DNS缓存

    DNS缓存是将解析数据存储在靠近发起请求的客户端的位置,也可以说DNS数据是可以缓存在任意位置,最终目的是以此减少递归查询过程,可以更快的让用户获得请求结果。

  • TTL

    英文全称Time To Live ,这个值是告诉本地域名服务器,域名解析结果可缓存的最长时间,缓存时间到期后本地域名服务器则会删除该解析记录的数据,删除之后,如有用户请求域名,则会重新进行递归查询/迭代查询的过程。

  • TLD Server

    英文全称Top-level domains Server,指顶级域名服务器。

  • DNS Resolver

    指本地域名服务器,它是DNS查找中的第一站,是负责处理发出初始请求的DNS服务器。运营商ISP分配的DNS、谷歌8.8.8.8等都属于DNS Resolver。

  • Root Server

    指根域名服务器,当本地域名服务器在本地查询不到解析结果时,则第一步会向它进行查询,并获取顶级域名服务器的IP地址。