DNS域名解析

DNS 协议是什么

概念: DNS 是域名系统 (Domain Name System) 的缩写,提供的是一种主机名到 IP 地址的转换服务,就是我们常说的域名系统。它是一个由分层的 DNS 服务器组成的分布式数据库,是定义了主机如何查询这个分布式数据库的方式的应用层协议。能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

作用: 将域名解析为IP地址,客户端向DNS服务器(DNS服务器有自己的IP地址)发送域名查询请求,DNS服务器告知客户机Web服务器的 IP 地址。

域名与IP地址

IP地址记忆起来非常麻烦,通过域名我们可以更加方便的记忆,从而访问网址。

因为计算机只能识别并且用IP地址定位,所以我们就需要域名转换IP地址这个过程,也就是DNS域名解析过程

image-20220421220909211

域名结构树

image-20220421221333199

我们可以看到根是一个“.”,也就是说所有的域名都会最终由一个根管理。

这个根是由一群服务器组成的。

域名服务器

小知识:世界上有13个根域名,由12家独立机构进行运营。已经由1467个节点了。

那么也就是说,绝大部分节点的IP地址都是一样的。我们如何与最近的一个节点取得联系呢?

采用任播,当我们向根域名服务器联系时,就能找到离我们最近的根域名服务器了

image-20220421221640354

  • 根域名服务器管理顶级域名服务器(TLD)。
  • TLD分别管理各自的域名服务器。
  • 权威域名服务器也叫权限域名服务器,会管理各自的主机。

这里只是简单介绍,实际网络中的管理层次会更加复杂。

域名解析过程

  1. 首先浏览器会在自己的浏览器缓存看看有没有对应的IP记录,如果查找到直接返回,若找不到继续下一步
  2. 将请求发送给本地DNS服务器,在本地域名服务器缓存中查询,如果查找到,就直接将查找结果返回,若找不到继续下一步
  3. 本地DNS服务器向根域名服务器发送请求,根域名服务器会返回一个所查询域的顶级域名服务器地址
  4. 本地DNS服务器向顶级域名服务器发送请求,接受请求的服务器查询自己的缓存,如果有记录,就返回查询结果,如果没有就返回相关的下一级的权威域名服务器的地址
  5. 本地DNS服务器向权威域名服务器发送请求,域名服务器返回对应的结果
  6. 本地DNS服务器将返回结果保存在缓存中,便于下次使用
  7. 本地DNS服务器将返回结果返回给浏览器

如图所示:

image-20220421223814402

通过整个过程,我们可以发现,DNS解析包含迭代查询和递归查询的过程。

迭代查询

查询请求后,域名服务器返回单次查询的结果。下一级的查询由用户自己请求。使用迭代查询,用户需要发出 多次的查询请求。

递归查询

用户发出解析请求后,本地DNS服务器代为向下一级域名服务器发出请求,最后向用户返回查询结果。这样用户只需要发出一次查询请求。