目录
2.1层次域名空间
2.2域名服务器
2.3域名解析过程
域名系统(Domain Name System,DNS)是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名转换为便于机器处理的IP地址。
- 多台主机可以映射到同一个域名上(如负载均衡),一台主机也可以映射到多个域名上(如虚拟主机)。因此域名与IP地址、MAC地址、主机都不具有一一对应关系。
- Internet上提供客户访问的主机一定要有IP地址,而不一定要有域名。
DNS系统采用C/S模型,其协议运行在UDP之上,使用53号端口。
早在1983年,因特网就开始采用层次结构的命名树作为主机的名字(即域名),并使用分布式的域名系统DNS。
DNS使大多数域名都在本地解析,仅少量解析需要在因特网上通信,因此系统效率很高。
下面从层次域名空间、域名服务器和解析器介绍DNS。
2.1层次域名空间
因特网采用层次树状结构的命名方法
顶级域名TLD分为以下三类;我国的二级域名分为以下二类
域名空间的树状结构
2.2域名服务器
因特网的域名系统被设计成一个联机分布式的数据库系统,并采用客户/服务器模型。
域名到IP地址的解析是由运行在域名服务器上的程序完成的。每一个域名服务器不但能够进行一些域名到IP地址的解析,而且还必须具有连向其他域名服务器的信息。当自己不能进行域名到IP地址的转换时,能够知道到什么地方去找其他域名服务器。
DNS使用了大量的域名服务器,它们以层次方式组织。没有一台域名服务器具有因特网上所有主机的映射,相反,该映射分布在所有的DNS上。主要有4类域名服务器。
1)根域名服务器是最高层次的域名服务器。每个根域名服务器都知道所有的顶级域名服务器的域名及其IP地址。因特网上共有13个不同IP地址的根域名服务器。尽管我们将这13个根域名服务器中的每一个都视为单个的服务器,但“每台服务器”实际上是由许多分布在世界各地的计算机构成的服务器群集。当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离这个DNS客户最近的一个根域名服务器。这就加快了DNS的查询过程,同时也更合理地利用了因特网的资源。根域名服务器用来管辖顶级域(如.com),通常并不直接对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器的IP地址。
2)顶级域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能是下一步应该查找的权限域名服务器的IP地址)
3)权限(授权)域名服务器负责管理某个区的域名(一个服务器所负责管辖的范围称为区)。每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名(主机名)与IP地址的映射关系。另外,权限域名服务器还知道其下一级本地域名服务器的IP地址。
4)本地域名服务器不属于上述的域名服务器的等级结构。当一个主机发出DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器。本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中。每一个因特网服务提供者ISP,一个大学,甚至一个大学里的学院,都可以拥有一个本地域名服务器,它有时也称为默认域名服务器。本地域名服务器离用户比较近,一般不超过几个路由器的距离,也有可能就在同一个局域网中。需要域名解析的主机中只需配置本地域名服务器的IP地址。
2.3域名解析过程
- 为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
- 由于域名到IP地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项(例如,每个项目只存放两天)
- 用户主机也可以只在从高速缓存中找不到域名时才向域名服务器查询。
注:查询过权限域名服务器(abc.xyz.com)就已经知道了www.abc.xyz.com,这正在该权限域名服务器所管辖的区中。