域名系统DNS
1 域名系统概述
许多应用层软件经常直接使用域名系统DNS(Domain Name System),但计算机的用户只是简介而不是直接使用域名系统
互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名DNS
名字到IP地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的节点上运行,运行该程序的机器成为域名服务器
2 互联网的域名结构
互联网采用了层次树状结构的命名方法
任何一个连接在互联网上的主机或路由器,都有一个唯一的层次机构名字,即域名
域名的结构由标号序列组成,各标号之间用点隔开
...三级域名.二级域名.顶级域名
各标号分别代表不同级别的域名
2.1 顶级域名TLD(Top Level Domain)
2.1.1 国家顶级域名nTLD
.cn :表示中国
us :表示美国
uk :表示英国
…
2.1.2 通用顶级域名gTLD
最早的顶级域名是:
com :公司和企业
.net :网络服务机构
.org :非赢利性组织
edu :美国专用的教育机构
gov :美国专用的政府部门
mil :美国专用的军事部门
int :国际组织
2.1.3 基础结构域名(infrastructure domain)
这种顶级域名只有一个,即arpa
用于反向域名解析,因此又称为反向域名
2.2 互联网的域名空间
3 域名服务器
一个服务器所负责管辖的(或有权限的)范围叫做区(zone)
各单位根据具体情况来划分自己管辖的区。但在一个区中的所有节点必须是能够连通的
每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射
DNS服务器的管辖范围不是以“域”为单位,而是以“区”为单位
区的不同划分方法举例
4 域名服务器类型
4.1根域名服务器
根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都是知道所有的顶级域名服务器的域名和IP地址
不管是哪一个本地域名服务器,若要对互联网上一个域名进行解析,只要自己无法解析,就首先要求助与根域名服务器
根域名服务器并不是把域名直接转换成IP地址
在使用迭代查询时,根域名服务器把下一步应当找的顶级域名服务器的IP地址告诉本地域名服务器
4.2 顶级域名服务器
顶级域名服务器(即TLD服务器)负责管理在该顶级域名服务器注册的所有二级域名
当收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的IP地址)
4.3 权限域名服务器
负责一个区的域名服务器
当一个权限域名服务器还不能给出最后的查询回答时,就会高速发出查询请求的DNS客户,下一步当找哪一个权限域名服务器
4.4 本地域名服务器
本地域名服务器对域名系统非常重要
当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器
每一个互联网服务提供者ISP,甚至一个大学里的系,都可以拥有一个本地域名服务器
这种域名服务器有时也称为默认域名服务器
5 提高域名服务器的可靠性
DNS域名服务器都把数据复制到几个域名服务器来保存,其中一个是主域名服务器,其他的是辅助域名服务器
当主域名服务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断
主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行,这样就保证了数据的一致性
6 域名的解析过程
主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地的域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求的报文
本地域名服务器向根域名服务器的查询通常是采用迭代查询。当域名服气气收到本地域名服务器的迭代初心请求报文时,要么给出所要查询的IP地址,要么高速本地域名服务器:“你下一步应当向那一个域名服务器进行查询”。然后本地域名服务器进行后续的查询
迭代查询
本地服务器采用递归查询比较少用
7 名字的高速缓存
每个域名服务器都维护一个高速缓存,存放最近使用过的名字以及何处获得名字映射信息的记录
可以大大减轻根域名服务器的负荷,使互联网上的DNS查询请求和回答报文的数量大为减少
为保持高速缓存的内容正确,域名服务器应为每项内容设置计时器,并处理超过合理时间的项(例如,每个项目只存放两天)
当权限域名服务器回答一个查询请求时,在响应中都指明绑定存在的时间值。增加此时间可减少网络开销,而减少此时间值可提高域名转换的准确性
|