当前网络通讯大部分采用的是TCP/IP协议,而TCP/IP协议的基础是IP地址,所以计算机在网络中进行通讯时只能识别由纯数字构成的IP地址。但在实际的工作生活中,我们只需在浏览器地址栏中输入一串简单易记的域名,就能访问到所对应的网站,在这个过程中发挥重要作用的就是DNS。接下来我们就针对DNS的原理和解析过程做下简单介绍。
01什么是DNS
DNS是DomainNameSystem的缩写,翻译成中文就是“域名系统”。DNS是互联网中的一项核心服务,是用于实现域名和IP地址相互映射的一个分布式数据库,它将简单明了的域名翻译成可由计算机识别的IP地址,使用户可以更快速便捷地访问互联。
互联网连通的是全球资源,单一的域名服务器不足以支撑全部的地址转换操作,因此全球有多套域名服务器相互配合使用。早在年互联网就开始采用层次树状结构的命名方法,并使用分布式的域名系统进行解析操作。这样既提升了域名解析的效率,同时也保障了域名解析的稳定性,如果系统中单个域名服务器出现故障,不会对整个DNS系统的正常运行造成太大影响。
02域名结构
互联网采用了层次树状结构的命名方法。任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
域名的结构由标号序列组成,各标号之间用点隔开。类似于这样:“….三级域名.二级域名.顶级域名”。各级域名由其上一级的域名管理机构管理,而最高级的顶级域名则由ICANN进行管理。
域名空间结构图03域名服务器
互联网上的DNS域名服务器也是按照层次划分的,每一个域名服务器都只对域名体系中的一部分进行管辖。根据域名服务器所起的作用,可以把域名服务器划分为四种不同的类型:
根域名服务器:根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。根域名服务器知道所有顶级域名服务器的域名和IP地址。如果本地域名服务器无法对域名进行解析,就首先求助于根域名服务器。
顶级域名服务器:顶级域名服务器负责管理在该服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步需要查询的域名服务器的IP地址)。
权威域名服务器:这就是前面已经讲过的负责一个区的域名服务器。当一个权限域名服务器还不能给出最后的查询回答时,就会告知发出查询请求的DNS客户,下一步应当找哪一个权威域名服务器。
本地域名服务器:本地域名服务器并不属于下图中的树状结构的DNS域名服务器,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。每一个互联网服务提供者ISP都可以拥有一个本地域名服务器。
(2)查看系统缓存
各个域的分层上都设有各自的域名服务器,各层域名服务器都了解该层以下分层中所有域名服务器的IP地址。因此它们从根域名服务器开始呈树状结构相互连接。由于所有域名服务器都了解根域名服务器的IP地址,所以若从根开始按照顺序追踪,可以访问世界上所有域名服务器的地址。
04DNS查询步骤
域名解析一般采用递归查询的方式进行。一个完整的域名解析过程如下图所示:
其完整的DNS解析过程有以下几个步骤:
(1)查看浏览器缓存
当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的IP地址(若曾经访问过该域名且没有清空缓存便存在)。
(2)查看系统缓存
当浏览器缓存中无域名对应IP则会自动检查用户计算机系统Hosts文件DNS缓存是否有该域名对应IP。
(3)查看路由器缓存
当浏览器及系统缓存中均无域名对应IP则进入路由器缓存中检查,以上三步均为客服端的DNS缓存。
(4)查看ISPDNS缓存
当在用户客服端查找不到域名对应IP地址,则将进入ISPDNS缓存中进行查询。比如你用的是电信的网络,则会进入电信的DNS缓存服务器中进行查找。
(5)询问根域名服务器
当以上均未完成,则进入根服务器进行查询。全球仅有13台根域名服务器,1个主根域名服务器,其余12为辅根域名服务器。根域名收到请求后会查看区域文件记录,若无则将其管辖范围内顶级域名(如.