网络应用层协议DNS详解

2023年 7月 30日 37.3k 0

域名系统(Domain Name System,DNS)是把主机域名解析成IP地址的系统,解决了IP地址难记的问题。该系统由解析器和域名服务器组成。DNS主要基于UDP协议,较少情况下使用TCP协议,端口号均为53。域名系统由三部分组成:DNS域名空间、域名服务器、DNS客户机(名字解析器)。

1、DNS域名空间

DNS系统属于分层式命名系统,即采用的命名方法是层次树状结构。连接在Internet上的主机或路由器都有一个唯一的层次结构名,即域名。域名可以由若干个部分组成,每个部分代表不同级别的域名并使用“.”分开。完整的结构为“主机…..三级域名.二级域名.顶级域名.”。域名的每个部分不超过63个字节,整个域名不超过255个字节。顶级域名后的“.”号表示根域,通常可以不用写。

Internet上域名空间的结构如下图所示:

图片[1]-网络应用层协议-DNS详解-不念博客域名

(1)根域:根域处于Internet上域名空间结构树的最高端,是树的根,提供根域名服务。根域名用“.”表示;

(2)顶级域:(Top Level Dimain,TLD):顶级域在根域之下。顶级域分为三大类:国家顶级域名、通用顶级域名和国际顶级域名。具体如下所示:

域名名称 作用
.com 商业机构
.edu 教育机构
.gov 政府部门
.int 国际组织
.mil 美国军事部门
.net 网络组织(现在任何人都可以注册)
.org 非盈利组织
.biz 商业
.info 网络信息服务组织
.pro 会计、律师和医生
,name 个人
.museum 博物馆
.coop 商业合作团体
.aero 航空工业
国家代码 国家(cn代表中国)

(3)主机:属于最低层域,处于域名树的叶子端,代表各类主机提供的服务。

2、域名服务器

域名服务器的运行模式为客户机/服务器模式(C/S模式)。

(1)按域名空间层次。服务器可以分为根域名服务器、顶级域名服务器、权限域名服务器、本地域名服务器。具体功能如下表所示:

名称 定义 作用
根域名服务器 最高层次的域名服务器,该服务器保存了全球所有顶级域名服务器的IP地址和域名。全球共100多个 本地域名无法解析域名时,直接向根域名服务器请求
顶级域名服务器 管理本级域名(如.cn)上注册的所有二级域名 可以解析本级域名下的二级域名的IP地址;提交下一步所需域名服务器地址
权限域名服务器 一个域可以分为多个区,每一个去都设置服务器,即权限服务器 该区域管理主机的域名和IP地址的映射、解析
本地域名服务器 主机发出的DNS查询报文最初送到的服务器 查询本地域名和IP地址的映射、解析。向上级域名服务器进行域名查询

(2)按域名服务器的作用,服务器可以分为主域名服务器、辅域名服务器、缓存域名服务器、转发域名服务器。具体功能如下表所示:

名称 定义 作用
主域名服务器 维护本区的所有域名信息,信息存于磁盘文件和数据库中 根据本区域名解析,是区内域名信息的权威。具有域名数据库。一个域有且只有一个主域名服务器。
辅域名服务器 主域名服务器的备份服务器提供域名解析服务,信息存于磁盘文件和数据库中 主域名服务器备份,可进行域名解析的负载均衡。具有域名数据库
缓存域名服务器 向其他域名服务器进行域名查询,将查询结果保存在缓存中的域名服务器 改善网络中DNS服务器的性能,减少反复查询相同域名的时间,提高解析速度,节约出口带宽。获取解析结果耗时最短,没有域名数据库
转发域名服务器 负责非本地和缓存中无法查到的域名。接收域名查询请求,首先查询自身缓存,如果找不到对应的,则转发到指定的域名服务器查询 负责域名转发,由于转发域名服务器同样可以有缓存,因此可以减少流量和查询次数。具有域名数据库。

3、资源记录

DNS数据库包括DNS服务器所使用的一个或多个区域文件,每个区域都拥有一组结构化的资源记录。资源记录的格式为[Domain][TTL][class] record-type record-specific-data。

  • Domain:资源记录引用的域对象名。可以是单台主机,也可以是整个域。Domain子串用“.”分隔,如果没有用“.”标识结束,就与当前域有关系。
  • TTL:生存时间记录字段。以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。通常该字段为空,表示生存周期在授权资源记录开始时指定。
  • class:指定网络的地址类。
  • record-type:记录类型。标识这是哪一类资源记录,常见的记录类型如下表所示。
  • record-specific-data:指定与这个资源记录有关的数据。这个值是必要的。数据字段的格式取决于类型字段的内容。

常见资源记录如下:

资源记录名称 作用
A 将DNS域名映射到IPv4的32位地址中
AAAA 将DNS域名映射到IPv6的128位地址中
CNAME 规范名资源记录,允许多个名称对应同一主机
MX 邮件交换器资源记录,其后的数字首选参数值(0~5535)指明与其他邮件交换服务器有关的邮件交换服务器的优先级。较低的数值被赋予较高的优先级。
NS 域名服务器记录,指明该域名由哪台服务器来解析
PTR 指针,用于将一个IP地址映射为主机名

4、域名解析

域名解析就是将域名解析为IP地址。域名解析的方法有递归查询和迭代查询。

4.1 递归查询

递归查询是最主要的域名查询方式。主机向本地域名服务器的查询一般采用递归查询。

主机有域名解析的需求时,首先查询本地域名服务器,如果成功,则由本地域名服务器反馈结果;如果失败,则查询上一级域名服务器,然后由上一级域名服务器完成查询。下图是递归查询的过程:

图片[2]-网络应用层协议-DNS详解-不念博客递归查询

4.2 迭代查询

本地域名服务器向根域名服务器的查询通常采用迭代查询。根域名服务器通常不采用递归查询的原因是:大量的递归查询会导致根服务器过载而影响域名服务。

当主机有域名解析的需求时,首先查询本地域名服务器,如果成功,则由本地域名服务器反馈结果;如果失败,本地域名服务器则直接向根域名服务器发起查询,由其给出一个顶级域名服务器的IP地址A.A.A.A。然后,本地域名服务器直接向A.A.A.A顶级域名服务器发起查询请求,由其给出一个本地域名服务器地址B.B.B.B。如此迭代下去,直到得到结果IP地址。下图是迭代查询过程:

图片[3]-网络应用层协议-DNS详解-不念博客迭代查询

5、DNS通知

DNS通知的作用是:权威域名服务器向管理区域内发出公告,辅助域名服务器及时更新信息。DNS通知是一种安全机制,只有被通知的辅助服务器才能进行区域复制,以防止未授权的服务器非法区复制。

相关文章

如何在 Linux 中使用 logname 命令?
为什么有 HTTPS?HTTPS 如何实现安全通信?
HTTPS的TSL握手流程是什么
华为无线网络射频调优及WLAN跨VLAN的三层漫游示例
502错误是什么、应该怎么排查?
HTTP3为什么抛弃了经典的TCP,而选择QUIC

发布评论