概念
DNS域名系统是因特网使用的命名系统,用来把便于人们记忆的含有特有含义的主机名转化为便于机器处理的IP地址。DNS系统采用客户/服务器模型,其协议运行在UDP之上的,使用53号端口。
层次域名空间
因特网采用层次树状结构的命名方法,任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。“域”是名字空间中一个可被管理的划分。域还可以划分为子域。而子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等。每个域名都是由标号序列组成。而各标号之间用点“.”隔开,例如:www.jianshu.com,它由三个标号组成,其中标号com是顶级域名,标号jianshu是二级域名,标号www是三级域名。
关于域名中的标号有以下几点需要注意:
1)标号中的英文不区分大小写
2)标号中除连字符(-)外不能使用其他的标点符号
3)每个标号不能超过63个字符,多标号组成的完整域名最长不超过255个字符。
4)级别最低的域名写在最左边,而级别最高的顶级域名写在最右边。
顶级域名有以下三大类
1)国家顶级域名。国家和某些地区的域名,如,“.cn"表示中国,".us”表示美国,“.uk”表示英国。
2)通用顶级域名。常见的有“.com”(公司企业)、“.net”(网络服务机构)、".org”(非营利性组织)和“.gov”(美国政府部门)等。
3)基础结构域名。这种顶级域名只有一个,即arpa,用于反向域名解析,因此又称为反向域名。
域名服务器
域名服务器负责将域名到IP地址的解析,一个服务器所负责管辖的范围称为区,各个单位根据具体情况来划分自己管辖范围的区,但在一个区中的所有节点必须是能够连通的,每个区设置相应的权限域名服务器,用来保存该区中所有主机的域名到IP地址的映射。目前,主要存在四种类型的域名服务器。
1.根域名服务器
根域名服务器是最高层次的域名服务器,所有根域名服务器都知道所有的顶级域名服务器的IP地址。根域名服务器也是最重要的域名服务器,不管是哪个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器,根域名服务器如果不能把待查询的域名直接转化为IP地址,而是告诉本地域名服务器下一步应当找到那个顶级域名服务器进行查询。
2.顶级域名服务器
这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的应答(不一定是最终结果)。
3.授权域名服务器(权限域名服务器)
每个主机必须在授权域名服务器处登记。为了更加可靠地工作,一个主机最好至少有两个授权域名服务器。实际上,许多域名服务器都同时充当本地服务器和授权域名服务器。授权域名服务器总是能够将其管辖的主机名转化为主机的IP地址
4.本地域名服务器
本地域名服务器对域名系统非常重要。每个因特网服务提供者ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器。当主机发送DNS请求时,这个查询请求报文就发送给该主机的本地域名服务器。事实上,我们在Windows系统中配置“本地连接”时,就需要填写DNS服务器的地址。
域名解析过程
域名解析有两种方式:递归查询和递归与迭代相结合的查询,递归查询会给根域名服务器造成负载过大,所以实际中几乎不用。
某个客户机想知道y.abc.com主机的IP地址,域名解析过程如下:
1.客户机向其本地域名服务器发出DNS请求报文。
2.本地域名服务器收到请求后,查询本地缓存,假设没有该记录,则以DNS客户的身份向根域名服务器发出解析请求。
3.根域名服务器收到请求后,判断该域名属于.com域,将对应的顶级域名服务器dns.com的IP地址返回给本地域名服务器。
4.本地域名服务器向顶级域名服务器dns.com发出解析请求报文。
5.顶级域名服务器dns.com收到请求后,判断该域名属于abc.com,故将对应的授权域名服务器dns.abc.com的IP地址返回给本地域名服务器。
6.本地域名服务器向授权域名服务器dns.abc.com发起解析请求报文
7.授权域名服务器dns.abc.com收到请求后,将查询结果返回给本地域名服务器。
8.本地域名服务器将查询结果保存到本地缓存,同时返回给客户机。