DNS服务器查询浅析
- 原创
- 2018-09-03 11:46:17
- 薛才杰
- 2823
关于DNS服务器
DNS是域名系统(Domain Name System)的缩写,是进行域名和与之相对应的IP地址转换的服务器。简而言之,DNS服务器的作用就是将我们输入的网站域名转换成其对应的IP地址。
这就像地球上任何一个点都有它的经纬度坐标,但我们平时记录地理位置不会用这种坐标,不好记有也不方便,而是用地址,比如某省某市某县区某小区几栋几单元几室。所以,作为用户,我们在访问网站时不会去用IP访问,而是用便于记忆的域名。而计算机在网络上是使用IP地址来通信的,怎么知道该域名所对应的IP地址,这就是DNS服务器的工作了。
域名层级
因为DNS服务器是分级查询的,所以首先我们先来了解下一个域名的层级。一个域名被分为多个层级,这里以www. chanzhi.org为例,其实更为严谨的写法应该是www.chanzhi.org.(注意末尾的点)。如下图:
因为根域名对于所有域名而言都是一样的,所以平时都是忽略的,.com/.cn/.org这种事顶级域名,二级域名即用户注册时自定义的名称,三级域名即主机名,用户也可自主分配。
查询模式
DNS服务器查询模式分为递归查询和迭代查询,且二者是交互存在的。从客户端到本地服务器属于递归查询,而DNS服务器之间的交互属于迭代查询。
当客户端收到你输入的域名地址后,它首先去找本地的hosts文件,检查在该文件中是否有相应的域名、IP对应关系,如果有,则向其IP地址发送请求,如果没有,再去找DNS服务器。一般用户很少去编辑修改hosts文件。
本地DNS就把请求发至根DNS,根DNS服务器收到请求后会判断这个域名(.org)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.org域的这台服务器。这台负责.org域的服务器收到请求后,如果自己无法解析,它就会找一个管理.org域的下一级DNS服务器地址(chanzhi.org)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找chanzhi.org域服务器,重复上面的动作,进行查询,直至找到www.chanzhi.org主机。
正常情况下,本地DNS服务器的缓存中已有comDNS服务器的地址,因此请求根域名服务器这一步不是必需的。上图中其实算是精简的操作步骤了,因为其中涉及的缓存环节并未体现出来。
小结
DNS服务器是目的是查找域名所对应的IP地址,这个过程包括递归查询和迭代查询,并根据域名的不同层次,逐层分级查询,知道找到目标IP。