DNS是Domain Name System的缩写,翻译成中文就是“域名系统”。DNS是互联网中的一项核心服务,是用于实现域名和IP地址相互映射的一个分布式数据库,它可以将域名翻译成由计算机识别的IP地址串,让用户可以通过域名达到站点所在服务器,而不用去记住繁琐复杂的IP地址。
由于互联网上的用户数量较大,所以在命名的时候采用的是树状层次结构。任何一个连接互联网的主机或路由器,都有一个唯一的层次结构名字,也就是域名。域名的结构由标号序列组成,各标号之间用点隔开。类似于这样:“….三级域名.二级域名.顶级域名” 。
“.”最右边的部分称作“顶级域名”。“顶级域名”又叫“一级域名”,例如:.com、.org、.NET、.cn 等。“二级域名”就是在“一级域名”前再加一级,如 baidu.com。“二级域名”以上级别的域名,统称为“子域名”,不在“注册域名”的范畴中。
各级域名由其上一级的域名管理机构管理,而最高级的顶级域名则由ICANN进行管理。
与域名相对应,DNS服务器也有对应的层级结构。根据DNS服务器所起的作用,可以将DNS服务器分为四种类:
根DNS服务器
Root nameserver。它是最高层次的DNS服务器,当本地域名服务器没有解析记录时,首先会向根域名服务器发起请求,并获取下一级顶级域名服务器的IP地址。
顶级域名服务器
Tld nameserver。顶级域名服务器负责管理在该服务器注册的所有二级域名。本地域名服务器根据根域名服务器给出的IP地址,对顶级域名服务器发起请求,并获取域名所在权威服务器地址。
权威域名服务器
authoritative nameserver。在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系,例如中科三方云解析DNS。
本地域名服务器
DNS resolver或Local DNS。本地域名服务器并不属树状结构的DNS域名服务器,但是它对域名系统非常重要。当客户端发起DNS请求时,首先会将请求发给本地域名服务器。用户本机自动分配的DNS、运营商ISP分配的DNS、谷歌/114公共DNS等,都属于本地域名服务器范畴。
每一层的域名都有自己的域名服务器,上一级的域名服务器都知道下一级域名服务器的IP地址,以便于一级一级向下查询。
DNS解析通常会先查询本地域名服务器中的缓存,如果缓存中有结果直接返回,解析到此结束。如果本地服务器没有缓存,就会进行全球递归查询,步骤如下:
1.用户在浏览器输入一个域名,首先会请求本地域名服务器,本地服务器没有结果,开始进行递归查询;
2.本地域名服务器首先向根域名服务器进行查询;
3.根域名服务器告诉本地域名服务器下一级顶级域名服务器的地址;
4.本地域名服务器向顶级域名服务器发起解析请求;
5.顶级域名服务器告知下一级权威域名服务器的IP地址;
6.本地域名服务器向权威域名服务器发起查询请求;
7.权威域名服务器告知域名对应的IP地址;
8.本地域名服务器将查询到的结果响应给浏览器并在自身缓存一段时间。
9.浏览器向得到的IP地址发起访问请求;
10.该IP处的web服务器返回要在浏览器中呈现的网页。