考点二:DNS系统
1.DNS的概念
我们平时浏览网页,基于的是客户机-服务器模型的通信模式。我们在网络层学习过,在互联网上,网络设备只能依靠IP地址进行定位服务器所在的主机,但是IP地址不好记(大家知道百度服务器的IP和淘宝服务器的IP吗?),我们平时上网都是使用网址信息来访问服务器的。计算机并不能通过域名直接找到网站的服务器在哪里。那么就需要一个系统或服务器实现域名到IP地址的映射。
域名系统(Domain Name System,DNS)是描述名字-地址映射的分布式计算机系统的实现。DNS的本质是一种层次结构的、基于域的命名方案和实现这种命名方案的分布式数据库,其作用是提供主机名和IP地址间的映射关系。
2.层次域名空间
我们敲出最熟悉的网址信息:www.baidu.com。事实上,因特网采用的是层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有唯一的层次结构的名称,即域名。域名的结构由标号序列组成,各标号分别代表不同级别的域名,各标号之间用点隔开:….三级域名.二级域名.顶级域名。
因特网被划分成几百个顶级域名,每个顶级域名又分成一系列二级域名,二级域名如果需要还可以再进一步划分,所有这些域名被组织在一个树状结构中,所有顶级域名连接到一个根节点上。如图6-1所示。大家要数域名的层级,只需要看有几个“.”,域名级别等于点的数量加1。
图6-1 域名的结构
顶级域名有3种类型:通用域名、国家域名和arpa域名。7个3字节标记的域名称为通用域名(如com、edu、gov、int、mil、net、org),有时也称为组织域名,一般由国际性组织使用;所有2字节标记的域名称为国家域名,每个域名由一个国家使用,如cn、ca、jp、de等。
注意:arpa域名是一个特殊的域名,用来完成从IP地址到域名的映射。
3.域名服务器
域名系统的作用是提供主机名和IP地址间的映射关系。具体在映射时,依赖于域名服务器来进行解析。域名服务器负责域名到IP地址的解析。域名服务器程序在专设的节点上运行,使用53号端口,运行该程序的机器称为域名服务器。
一个服务器所管辖的(或有权限的)范围称为区。各单位根据具体情况来划分自己管辖范围内的区,但在一个区中的所有节点必须是能够连通的。每个区设置相应的权限域名服务器,用来保存该区的所有主机的域名到IP地址的映射。
DNS服务器的管辖范围不是以“域”为单位,而是以“区”为单位,如图6-2所示。图6-2(a)中区的范围等于域,图6-2(b)中区的范围小于域。
图6-2 DNS服务器管辖范围示意图
(a)区等于域;(b)区小于域
域名采用的是层次结构,对应不同的层级设置域名服务器,域名服务器有以下4种类型。如图6-3所示。
图6-3 树状结构的DNS域名服务器
(1)根域名服务器是最高层次的域名服务器,也是最重要的域名服务器(IPv4的根域名服务器一共有13个,其中12个在美国,我辈当自强)。所有的根域名服务器知道所有的顶级域名服务器的域名和IP地址。不管是哪个本地域名服务器,要对因特网上任何一个域名进行解析,只要自己无法解析,就可以首先求助于根域名服务器。
(2)顶级域名服务器即TLD服务器,这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答,可能是最后的结果,也可能是下一步应当找的域名服务器的IP地址。
(3)权限域名服务器是负责一个区域的域名服务器。当一个权限域名服务器还不能给出最后的查询时,就会告诉发出查询请求的DNS客户,下一步应当找哪个权限域名服务器?权限域名服务器相当于域名的“派出所”,具有一个区的域名到IP地址映射的最终解释权。我们要想让一个网址能够被别人访问,首先是买一个IP地址和选择一个域名(这个域名一定是别人没有用过的),然后是向互联网管理中心做信息备案(不备案是不能使用的),备案时就是将<域名:IP>这样的键值对信息写入到域名服务器中,备案信息写入的域名服务器就是权限域名服务器。这就类似你在派出所上了户口,无论去哪个派出所都能查到关于你的所有信息。
(4)本地域名服务器。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。每个因特网服务提供者(ISP)或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,这种域名服务器有时也称为默认域名服务器。
需要注意的是,这些域名服务器之间是相互知道的,它们之间构成一个分布式的系统,可以传递信息。
为了减少网络开销,提高查询速度,每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。
4.域名的解析过程
(1)递归查询:主机向本地域名服务器的查询一般都采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,如图6-4(a)所示。
(2)递归+迭代查询:本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器下一步应当向哪个域名服务器进行查询,然后让本地域名服务器进行后续的查询,如图6-4(b)所示。
图6-4 域名的解析过程
(a)递归查询;(b)递归+迭代查询
这里有两个重要的知识点,在不同的方式和配置缓存的情况下,主机和本地域名服务器的请求(查询)次数如表6-1所示。
表6-1 主机和本地域名服务器的请求(查询)次数
续表
有以下几点需要注意:
①不管是哪一个本地域名服务器,如果要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。
②权限域名服务器是负责一个区域的域名服务器,最终结果都可以在对应的权限域名服务器中查到。
③DNS把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。
【政哥点拨】
1.DNS的正向解析是( )。
A.将域名转换为物理地址 B.将域名转换为IP地址
C.将IP地址转换为物理地址 D.将IP地址转换为域名
解析 B DNS的正向解析是将域名解析成IP地址,反向解析则是将IP地址解析成域名。将IP地址转换成物理地址用的是ARP协议,将物理地址转换成IP地址用的是RARP协议。但是没有直接把域名解析成物理地址这一种说法。
2.一台主机希望解析域名www.bit.edu.cn,如果这台服务器配置的域名服务器为202.120.66.88,因特网根域名服务器为10.1.2.3。而存储www.bit.edu.cn与其IP地址对应关系的域名服务器为202.110.6.8,那么这台主机解析该域名时首先查询( )。
A.地址为202.120.66.88的域名服务器 B.地址为10.1.2.3的域名服务器
C.地址为202.110.6.8的域名服务器 D.不能确定
解析 A 本地域名服务器是默认域名服务器,当一个主机发出DNS查询报文时,这个报文首先被送到本地域名服务器进行解析。故而,选择A项。
3.假设所有域名服务器均采用迭代查询方式进行域名解析,当H4访问规范域名为www.abe.xyz.com的网站时,域名服务器201.1.1.1在完成该域名解析过程中,可能发出DNS查询的最少和最多次数分别是( )。
A.0,3 B.1,3 C.0,4 D.1,4
解析 C 在最少情况下,当本机DNS高速缓存中存有该域名的DNS信息时,则不需要查询任何域名服务器,这样最少发出0次DNS查询。在最多情况下,因为均采用迭代查询的方式,在最坏的情况下,需要依次迭代地向本地域名服务器、根域名服务器(.com)、顶级域名服务器(xyz.com)、权限域名服务器(abc.xyz.com)发出DNS查询请求,因此最多发出4次DNS查询。
政哥应试提醒:在考试中,主要考查的是DNS的概念以及DNS的解析方式。
难度系数:★★
牛刀小试
1.关于DNS,下列叙述中错误的是( )。
A.DNS系统运行在TCP协议之上
B.DNS采用客户机-服务器模式
C.域名的命名原则是采用层次结构的命名树
D.域名不能反映计算机所在的物理地址
2.DNS的作用是( )。
A.为客户机分配IP地址 B.访问HTTP的应用程序
C.将域名翻译为IP地址 D.将MAC地址翻译为IP地址
3.域名解析可以有两种方式,分别是( )。
A.直接解析和间接解析 B.直接解析和递归解析
C.间接解析和反复解析 D.迭代解析和递归解析
4.下列关于DNS的叙述中错误的是( )。
A.DNS的中文名称是域名服务
B.DNS是一种层次结构的基于域的命名方案
C.DNS提供主机名和网卡物理地址的映射关系
D.DNS管理是分布式的树形结构
5.域名www.126.com中的com属于( )。
A.顶级域名 B.二级域名 C.三级域名 D.四级域名
6.当一个主机向本地域名服务器发出DNS报文查询请求时,若该本地域名服务器不能立即回答主机的查询,则该域名服务器向( )进行查询。
A.本地域名服务器 B.根域名服务器 C.极限域名服务器 D.代理域名服务器
7.试说明wang2.bjtu.edu.cn采用迭代查询方式,通过本地域名服务器、根域名服务器、顶级域名服务器、权限域名服务器,找到zhang3.mit.edu的域名工作过程。
牛刀小试解析
1.A 解析 DNS协议采用客户机-服务器模式,运行在UDP之上,采用的端口号是53。
2.C 解析 本题考查DNS的作用。DNS的作用是将域名转换成IP地址。A、B、D 3个选项都不是DNS的作用。为主机分配IP地址是由DHCP(Dynamic Host Configuration Protocol)协议实现的。将MAC地址转换成IP地址使用的是RARP协议。
3.D 解析 本题考查域名解析的两种方式。域名解析是指把域名映射成IP地址的过程,反向域名解析则是把IP地址映射成域名的过程。域名解析有递归查询和迭代查询两种解析 方式。
4.C 解析 本题考查DNS协议的相关概念和特点。显然,主机名和网卡物理地址的映射关系采用的不是DNS协议,而是ARP协议和RARP协议。前者用于将IP地址转换成物理地址,后者则将物理地址转换成IP地址。
5.A 解析 域名由左到右范围依次变大,www.126.com是3个级别的域名。其中,“com” 是顶级域名,“126”是二级域名,“www”是三级域名。
6.B 解析 本地域名服务器是默认域名服务器,当一个主机发出DNS查询报文时,这个报文首先被送到本地域名服务器进行解析。
若本地域名服务器不能立即回答该查询,则该本地域名服务器以DNS用户的身份直接向某个根域名服务器发出查询请求。但是,根域名服务器并不直接把域名转换成IP地址。例如,在迭代查询时,根域名服务器把下一步应当找的顶级域名服务器的IP地址告诉本地域名服务器,本地域名服务器再访问该顶级域名服务器。
7.解析 迭代查询过程如下。
①站点wang2.bjtu.edu.cn向本地域名服务器发出请求,查询是否有zhang3.mit.edu的IP地址。
②本地域名服务器收到请求后,查看本地缓存。若查到,则给站点返回zhang3.mit.edu的IP地址;否则转入③。
③本地域名服务器以DNS客户的身份,向根域名服务器发出查询请求报文。
④根域名服务器收到本地域名服务器发出的迭代查询报文,判断该域名属于.edu域,将对应的顶级域名服务器dns.edu的IP地址返回给本地域名服务器。
⑤本地域名服务器向顶级域名服务器dns.edu发出DNS解析请求报文。
⑥顶级域名服务器收到DNS请求查询报文之后,判断域名zhang3.mit.edu属于mit.edu域,故将对应的极限域名服务器dns.mit.edu的IP地址返回给本地域名服务器。
⑦本地域名服务器向极限域名服务器dns.mit.edu发出解析请求报文。
⑧极限域名服务器dns.mit.edu收到请求之后,将查询结果返回给本地域名服务器。
⑨本地域名服务器将查询结果保存到本地缓存,同时返回站点wang2.bjtu.edu.cn,完成域名解析过程。