6.2.1 网络基本服务—域名解析系统DNS
因特网是需要提供一些最基本的服务的,今天我们就来讨论一下这些基本的服务。
- 域名系统(DNS)
- 远程登录(Telnet)
- 文件传输协议(FTP)
- 动态主机配置协议(DHCP)
- 电子邮件系统(E-mail)
- 万维网(www)
一、域名系统(DNS)
因特网中IP单播地址标识主机的网络连接,组播地址则是标识一组主机,主机间的通信必定会使用IP地址,但是我们也知道IPv4地址使用点分十进制表示,相对比较难于记忆,因此对于服务器主机,除了分配IP地址还会为其指定域名,这样一来访问服务器时就不用给出他的IP地址了,而只需要给出服务器的域名,但客户机与服务器通信过程中仍然使用IP地址,此时需要解决的问题就是域名和IP地址之间如何关联,又是谁来维护?这里就是我们所说的域名系统。
域名系统是因特网使用的命名系统,完成域名解析,将域名解析到特定的IP地址。
域名系统可以看做是因特网的电话簿,维护名址映射,也就是域名与IP地址之间的映射,并且提供域名解析,将方便记忆的计算机主机域名转化为IP地址。
DNS采用客户/服务器应用模式,其核心是分级的、基于域的命名机制以及实现该命名机制的分布式数据库系统。
域名解析是由若干个域名服务器程序完成的。域名服务器程序在专设的节点上运行,运行该程序的节点称为域名服务器。
(一)因特网的域名结构
-
因特网采用了层次树状结构的命名方法。
-
任何一个连接在因特网上的主机或路由器,都有一个惟一的层次结构的名字,即域名。
-
域名的结构由若干个分量组成,各分量之间用点隔开,从右至左依次是顶级域名、二级域名、三级域名
.... .三级域名.二级域名.顶级域名
-
顶级域名(Top Level Domain,TLD),有两个域名管理相关机构,一个是iana,互联网编号分配机构,它监督全球IP地址分配,自治系统分配,域名系统中根区的管理、媒体类型和其他Internet协议相关的符号和号码。另一个是成立较晚1998年10月才成立的承担域名系统管理,IP地址分配,协议参数配置等职能的非营利性机构ICANN,到2015年IANA和ICANN确定的顶级域名有
-
技术设施顶级域名(infrastructure top-level domain):.arpa(Address and Routing Parameter Area),以前是int,2000年5月规定改为arpa,.int表示国际组织
-
通用顶级域名(generic top-level domains,gTLD):有三个或更多的字符,最早的通用顶级域名是:
.com表示公司企业 .net 表示网络服务机构 .org 表示非营利性组织 .edu 表示教育机构(美国专用) .gov 表示政府部门专用(美国专用) .mil 表示军事部门(美国专用) -
国家代码顶级域名(country-code top-level domains,ccTLD):两个字母的域表示国家或地区,.cn表示中国,.us表示美国,.uk表示英国等。
-
ICANN在2000年11月宣布了7个新的通用顶级域名
.aero 用于航空运输企业 .biz 用于公司和企业 .coop 用于合作团体 .Info 适用于各种情况 .museum 用于博物馆 .name 用于个人 .pro 用于会计、律师和医师等自由职业者
-
-
因特网的名字空间
因特网的名字空间是分层的,像一棵倒置的树,树叶是高级别的域名,与树根相连的是顶级域名,比如清华大学的邮件服务器域名是mail.qinghua.edu.cn,而CCTV的邮件服务器域名是mail.cctv.com
-
-
各分量分别代表不同级别的域名
二、域名服务器部署
域名服务器分为根域名服务器和授权域名服务器,作为主机默认域名服务器的本地授权服务器也称为本地域名服务器,因特网域名系统分层命名空间中顶级域名管辖区是DNS根区,DNS根区有13个根服务器组成的群来提供服务,其中十个根服务器在美国,两个在欧洲,一个在亚洲,根服务器负责对因特网顶级域名的查询。因此每次的域名解析要么起始于向根域名服务器的查询,要么使用曾经从根域名服务器获得的信息。DNS根区也称为DNS根域,DNS根域没有名字,在DNS分层体系中它的标签是一个空串,根域包含因特网所有顶级域名,截止2015年7月,根域包含1058个顶级域名,其中包括730个通用顶级域名,301个国家代码顶级域名,根服务器使用根区文件回答对顶级域名的查询,返回顶级域名授权服务器的IP地址,或返回顶级域名不存在的指示。2004年12月1058个顶级域名由773个不同的DNS授权服务器,每个管辖区都有一个或多个授权域名服务器,。
三、域名解析过程
因特网允许各单位根据具体情况将本单位的域名划分为若干个域名服务器管辖区(zone),并在各管辖区中设置相应的授权域名服务器。
当一个主机需要解析域名时使用域名解析器软件,DNS客户执行查找,该解析器将名字分解为从右至左的标签,向根服务器查询第一个标签,以及顶级域名,获得相应负责的授权服务器的IP地址,对从右到左的标签,分别进行查询,依次返回更具体的域名服务器的IP地址,直到一个域名服务器返回原始查询的答案,用户应用程序中的DNS解析器,而专门的DNS应用服务器通常实现递归解析器,也就是说有两种解析器,事实上大多数信息在一段时间内不会经常进行改变,因此相关信息会被中间域名服务器缓存或被用户应用程序内置的名字缓存区缓存,因此到根域名服务器的DNS查找相对较少。如图
图中有顶级域名com的授权域名服务器,二级域名的abc.com授权服务器,三级域名y.abc.com授权服务器,这里没有列出根域名服务器,这里我们通过这个示例了解一下域名解析过程,这里给出的是递归查询。
如图
图中有顶级域名服务器,.com授权域名服务器,二级域名的abc.com授权服务器,三级域名y.abc.com授权服务器,xyz.com管辖区的授权服务器,假设各个本地域名服务器已经保存了从根服务器返回的顶级域名授权服务器的IP地址,现在m.xyz.com主机要解析t.y.abc.com的IP地址是什么
- 首先主机要向本地域名服务器发送询问,该服务器无法解析其他管辖区的域名
- 向.com顶级域名服务器发送询问,.com域名服务器也无法解析域名,但他知道问谁更合适
- .com顶级域名服务器将询问转发给abc.com管辖区的授权服务器
- 由abc.com授权服务器转发给y.abc.com的授权服务器,该服务器会返回答案,最终答案也就是t.y.abc.com的IP地址。
- 把答案逐级转到m.xyz.com主机的本地域名服务器,由其返回给m.xyz.com主机。
除了递归查询还有迭代查询,迭代查询方法中,客户将询问一系列的DNS服务器,每个服务器将引导客户到该系列DNS服务器中的下一个直到有一个服务器能够完全解决请求,如对www.example.com可能得解析过程是先询问根服务器,然后询问.com授权域名服务器,最后询问.example.com授权域名服务器。如图是一个迭代域递归相结合的查询。问题也是m.xyz.com主机要解析t.y.abc.com的IP地址是什么。
- 主机向本地域名服务器发送询问
- xyz.com区的授权服务器中的DNS解析器采用迭代查询方式,查询根域名服务器
- 根域名服务器返回.com服务器的IP地址
- xyz.com区的服务器中的DNS解析器采用递归查询方式,询问.com服务器
- .com服务器询问.abc.com服务器
- abc.com服务器再询问y.abc.com服务器
- 而y.abc.com服务器知道m.xyz.com的IP地址,于是将解析结果返回给abc.com服务器
- abc.com服务器将解析结果返回给.com服务器。
- .com服务器再将解析结果返回给xyz.com服务器
- xyz.com服务器将域名t.y.abc.com的IP地址返回给发起询问的主机。