必须知道的DNS域名系统

DNS全称是Domain Name System,它用来把人们便于记忆的具有特定含义的主机名转换为便于机器处理的IP地址。DNS系统采用的是客户/服务器模型,其协议是运行在UDP上,端口为53

层次域名空间

因特网采用的是层次树状结构的命名方法,所以每台主机或路由器都有唯一的层次结构名称,即域名。一个域可被划分成多个子域,每个域名都由标号序列组成,而每个标号之间用(“.”)隔开。

每一级的域名都由英文字母和数字组成(不超过63个字符,并且不区分大小写),级别最低的域名在左边,而级别最高的顶级域名则写在右边。完整的域名不超过255.

顶级域名(Top Level Domain)分为三类:

  • 国家顶级域名,如cn、uk、us等
  • 通用顶级域名,如com,net,org等
  • 反向域arpa,用于反向域名解析,用于将IP地址反向解析为域名。

因特网的名字空间是按照机构的组织来划分的,与物理网络无关,与IP地址中的“子网”也没有关系。

域名服务器

DNS将整个名字空间划分为许多不相交的区(Zone),每个区的域名信息有一个权威域名服务器负责管理。

域和区是两个不同的概念,原则上名字空间中的每一个域都可以对应一个区。但完全按域来划分区,会导致太多很小的区,又或者一个域比较大时,一个权威域名服务器管理不下时,可划分其子域委托给其他权威域名服务器管理。

根域名服务器

根域名服务器是最高层次的域名服务器,它必须知道所有顶级域名服务器的域名及其IP地址。因特网上有13个根域名服务器。根域名服务器通常并不直接对域名进行解析,而是告诉本地域名服务器下一步应当找哪个顶级域名服务器查询

顶级域名服务器

这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能使下一级权威域名服务器的地址)

权威域名服务器(授权域名服务器)

权威域名服务器知道其管辖的域名与IP地址的转换和其下级域名服务器的地址。为了可靠性,一个主机最好至少要有两个权威域名服务器。实际上,许多域名服务器同时充当本地域名服务器和权威域名服务器。

本地域名服务器

本地域名服务器起着代理的作用。当一台主机发出DNS查询请求时,这个查询报文就发送给该主机的本地域名服务器。本地连接中的DNS地址,即是本地域名服务器的地址。

域名解析

域名解析是指把域名映射成为IP地址或把IP地址映射成域名的过程。

域名解析有两种方式:递归查询和递归与迭代相结合的查询。但前者对根域名服务器造成的负载过大,所以一般不使用。

主机向本地域名服务器的查询采用的是递归查询

递归查询就是如果本地域名服务器不知道被查询域名的IP地址时,那么本地域名服务器就以DNS客户的身份向某个根域名服务器继续发出查询请求报文(即替主机查询)

本地域名服务器向根域名服务器的查询采用迭代查询

迭代查询就是由本地域名服务器进行循环查询。当本地域名知道域名的IP地址后,把结果返回给发起查询的主机。

为了提高DNS查询效率,并减轻域名服务器的负荷和减少因特网上的DNS查询报文的数量,在域名服务器广泛使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。为了保持高速缓存内容的正确,域名服务器应为每项内容设置计时器,并处理超过合理时间的缓存。

浏览器到本地域名服务器的递归查询

在客户端输入 URL 后,会有一个递归查找的过程,从浏览器缓存(Browser cache)中查找->操作系统缓存(OS cache)->路由器缓存(Router Cache)查找->本地DNS服务器查找。

参考:《计算机网络教程》

猜你喜欢

转载自blog.csdn.net/weixin_40729735/article/details/105668956
今日推荐