计算机网络-域名系统DNS

功能

把互连网上的主机名转换为IP地址

要点

当某一个应用进程需要把主机名解析为IP地址时,该应用进程就调用解析程序,并成为DNS的一个客户

把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器

本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回,应用进程获得目的主机的IP地址。

若本地域名服务器不能回答该请求,则此域名服务器暂时成为DNS的另一个客户(递归查询),并向其他域名服务器发出查询请求(一般迭代查询),直至找到能够回答该请求的域名服务器。

域名结构

采用层次树状结构的命名方法。

:名字空间中一个可被管理的划分,域还可以划分为子域,子域还可以划分为子域,形成顶级域、二级域、三级域等等。

DNS不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。

域名是从右往左看的,越往右等级越高。

域名服务器

DNS服务器的管辖范围是以区为单位,区可能等于或小于域,但一定不能大于域,即区是域的子集。

一个服务器所负责管辖(或有权限的)的范围叫做

一个区中的所有节点必须是能够连通的。

每个区设置响应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。

根域名服务器

根域名服务器是最高层次的域名服务器。

所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。

顶级域名服务器

负责管理在该顶级域名下注册的所有二级域名。

权限域名服务器

负责一个区的域名服务器。

本地域名服务器

当一台主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。

不管哪一个本地域名服务器,若要对一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器

域名解析过程

主机向本地域名服务器查询

一般采用递归查询

如果本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器会以DNS客户的身份,向其他根域名服务器继续发出查询请求报文(即替主机继续查询)。

递归查询的结果:

  • 查到的IP地址
  • 报错,表示无法查询到所需的IP地址

本地域名服务器向根域名服务器查询

一般采用迭代查询

根域名服务器收到本地域名服务器发出的迭代查询请求报文时,本地域名服务器收到的查询结果有两种:

  • 查到的IP地址
  • 下一步向哪个域名服务器查询

顶级域名服务器在收到本机域名服务器的查询请求后,收到的结果有两种:

  • 查到的IP地址
  • 下一步向哪个权限域名服务器查询

就这样,本地域名服务器就这样进行迭代查询,最终把得到的结果返回给发起查询的主机。

高速缓存域名服务器

功能:用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

好处:提高DNS查询效率减轻根域名服务器的负荷减少互联网上的DNS查询报文数量


作者:@臭咸鱼

转载请注明出处:https://chouxianyu.github.io

欢迎讨论和交流!