《网络实用技术基础》第四章 4.4 域名服务DNS
4.4 域名服务DNS
一、DNS的应用
北京信息科技大学从国际互联网中心申请了IP地址222.249.130.140 ~ 222.249.130.144,并在中国教育科研网中注册了域名bistu.edu.cn。在注册域名时,拟将IP地址为222.249.130.140的这台服务器作为该学校的主域名服务器。
该大学现有主机名为dns.bistu.edu.cn、IP地址为222.249.130.140的域名服务器,主机名为web.bistu.edu.cn、IP地址为222.249.130.141的Web服务器,主机名为ftp.bistu.edu.cn、IP地址为222.190.68.142的FTP服务器,主机名为mail.bistu.edu.cn、IP地址为222.249.130.143的电子邮件服务器,以及主机名为vpn.bistu.edu.cn、IP地址为222.249.130.144的VPN服务器。图4-4为该校园网服务器的拓扑结构。
图4-4北京信息科技大学服务器的拓扑结构
北京信息科技大学设有教务处、财务处、学生处和图书馆等教学管理机构,它们都要求有自己的子域,例如,图书馆的子域为lib.bistu.edu.cn。现在,学校需要通过DNS服务将各教学管理机构的子域映射到相应的IP地址。
网络中用IP地址来标识计算机身份,确定计算机位置。
在广域网发展的初期,主要通过在网络中统一发布的Hosts文件来完成对计算机IP地址的查询。Hosts文件用于存储域名到IP地址的映射,计算机在与其他计算机通信前,需根据域名在Hosts文件中查询目的计算机的IP地址。随着Internet上的用户数的增加,会产生以下问题:
计算机名称重复。Hosts文件采用平面结构,在计算机数目过多时,容易产生重名。
计算机维护困难。由于要在一个平面结构的文件中维护所有的计算机记录,当增加、删除或更新计算机记录时,难以维护Hosts文件。
为了解决上述问题,可以将域名IP映射信息按层次结构划分成多个部分,存储在不同的计算机上,形成层次性、分布式的结构。这样,一方面保证了信息的统一性;另一方面由于信息数据分布面广,也有利于提高访问效率。域名系统(DNS,Domain Name System)应运而生。
域名空间:
DNS维护一个分布式数据库,其命名系统采用层次的逻辑结构,称为域名空间。如图4-5所示,由于DNS划分了域名空间,所以各机构可以使用自己的域名空间创建DNS信息。另外,DNS域名空间层次结构的基本单位为域,任何域至多属于一个上级域,但其可以有零个或多个下级域。
图4-5 DNS域名空间结构
1.根域
DNS域名空间的最顶层是根域(RD,Root Domain),由位于美国的InterNIC负责管理和授权。根域名服务器只保存顶级域的DNS服务器名称与IP地址的映射关系,不负责保存全世界的所有DNS。
2.顶级域
顶级域(TLD,Top-Level Domain)位于根域之下,由Internet域名注册授权机构管理。顶级域位于完全合格域名的尾部,如“www.baidu.com”中的“com”。目前,顶级域主要分为三类:①[机构域];②[地址域];③[反向域]。
3.子域
根域和顶级域之外的域均称为子域,一个域可有多个子域,通常把顶级域的下级域称为二级域。二级域以下可以包含主机或者子域,如“microsoft.com”可以包含名为“www.microsoft.com”的主机,也可以包含名为“sale.microsoft.com”的子域,而该子域还可以包含名为“printer.sale.microsoft.com”的主机。
4.主机名
主机名是域名空间的最低层,其位于完全合格域名的首部。例如,“mail.bistu.edu.cn”中,“mail”是主机名,“bistu.edu.cn”称为DNS后缀。用户在互联网上访问Web、FTP和E-mail等服务时,通常使用完全合格域名,如“ftp1.bistu .edu.cn”等。
二、DNS的工作原理
DNS服务器是运行DNS服务器程序,存储DNS数据库信息的计算机。DNS服务器负责解析客户端的查询请求,若DNS服务器能提供所请求的信息,则其将直接返回解析结果;若该DNS服务器上没有相应的域名信息,则其会向客户端返回一个能帮助解析查询的DNS服务器地址;若上述两种方法均失败,则其回应客户端所请求的信息不存在。
DNS服务器的主要功能就是维护一个域名与IP地址对应关系的数据库,并向用户提供两种解析服务:正向解析和反向解析。
正向解析是指将域名解析到对应的IP地址,如DNS客户端可以查询域名为www.baidu.com的IP地址。要实现正向解析,必须在DNS服务器中创建正向解析区域。反向解析是指将IP地址解析到对应的域名。域名的反向解析并不常用,却是DNS服务中不可缺少的功能。要实现反向解析,必须在DNS服务器中创建反向解析区域。反向域名的顶级域名为in-addr.arpa。
1.域名解析
域名解析(DNR,Domain Name Resolution)是将域名转换为IP地址的过程。将域名映射为IP地址或将IP地址映射为域名,需要调用DNS客户端中的解析程序。解析程序通过发送映射请求,寻找最近的DNS服务器。若该服务器存储了请求的映射信息,则完成解析;否则,解析程序将通过查询其他服务器来获取映射信息。
域名解析包括泛域名解析、智能域名解析和动态域名解析。
泛域名解析是指将同一区域的不同域名解析到同一个IP地址。例如,域名“b.a.com”和“c.a.com”在泛域名解析模式下,可被解析到同一个IP地址。
智能域名解析是指域名解析服务器根据来访者的IP地址类型,对同一域名给出不同的解析结果。
动态域名解析是指将固定的域名实时解析到动态IP地址,它可以保证通过一个固定的域名就能访问到IP地址动态变化的计算机。
2.DNS查询方法
用户在访问网络中的一台计算机之前,必须先获取这台计算机的域名所对应的IP地址。用户首先在本机的Hosts文件中进行查询,若Hosts文件不能解析该计算机的域名,则通过客户端向DNS服务器发起查询请求。DNS服务器主要使用递归查询和迭代查询两种查询方法。
1)递归查询
递归查询是指客户端发出域名查询请求后,若接收请求的DNS服务器中没有所需的数据,则会代替客户端向其他DNS服务器查询。在这种模式下,DNS服务器必须向客户端做出应答。如图4-6所示,由DNS客户端提出的查询请求通常属于递归查询。
图4-6递归查询
2)迭代查询
迭代查询是指DNS服务器可向客户端提供其他有助于当前查询任务的DNS服务器地址。当客户端发送查询请求时,DNS服务器并不直接回复查询结果,而是返回另一台DNS服务器的地址。客户端再向这台DNS服务器提交请求,依次循环,直到返回查询的结果为止。如果在最后一台DNS服务器上也没有查询到数据,则通知DNS客户端此次查询失败。通常DNS服务器之间的查询属于迭代查询。
如图4-7所示为解析域名“bistu.edu.cn”的DNS查询过程。其中,DNS客户端与本地域名服务器之间的查询为递归查询,而发生在服务器之间的查询则为迭代查询。具体的查询过程如下:
(1)客户端向本地域名服务器提交域名“bistu.edu.cn”的查询请求。
(2)本地域名服务器在接收到请求后,查询本地缓存。若查询到相应的DNS信息记录,则直接返回查询结果;否则,将域名查询请求发给根域名服务器。
(3)根域名服务器在接收到请求后,将顶级域名服务器“dns.cn”的IP地址返回给本地域名服务器。
(4)本地域名服务器再向域名服务器“dns.cn”发送查询请求。
(5)“dns.cn”域名服务器在接收到查询请求后,查询其缓存。若相关信息存在,则返回查询结果;否则,返回下级域名服务器“dns.edu.cn”的地址。
(6)本地域名服务器再向域名服务器“dns.edu.cn”发送查询请求。
(7)若查询到相应数据,则把查询结果返回给本地域名服务器;否则,返回查询失败的信息。
(8)本地域名服务器缓存查询结果,并返回给DNS客户端。
图4-7 DNS 查询过程