DNS查询常用的四种方式,DNS查询解析的顺序,通俗易懂!
DNS查询解析的顺序是怎样的?如何DNS查询?
一、主机解析域名的顺序
1、找缓存
2、找本机的hosts文件
3、找DNS服务器
注意:配置IP和主机名时,要记得修改/etc/hosts文件,因为有些应用程序在主机内的进程之间通信的时候,会本机的主机名,如果主机名不能正确解析到一个正常的IP地址,那么就会导致进程通信有问题。
DNS查询的四种方式
DNS通过层次结构的分布式数据库建立一致性的名字空间,用来定位网络资源。DNS查询过程可以分为本地查询、直接查询、递归查询和迭代查询。
以qq.com的DNS查询为例。
一、本地查询
主机保存有近期的DNS查询记录,这里面主要包含两块内容。一是hosts文件,文件保存在客户机系统盘中,文件路径是Windows/system32/drivers/etc/。另外一个是客户机的高速缓存,可以用ipconfig/displaydns查看。
如果主机发起DNS查询,首先查询hosts文件,然后在查询DNS缓存。如果hosts文件被恶意程序篡改,那么上网将异常,甚至还会打开不良网页。
很明显,本地缓存不会有qq.com的DNS记录。因此,主机向本地DNS服务器发起查询。
二、直接查询
本地DNS服务器是192.168.16.1,这是一个家庭路由器,本地DNS缓存里也不会有相应的DNS记录,因为它并不负责解析qq.com。因此,本地DNS服务器必须将查询请求转发至转发器。这个转发器即家庭路由器WAN口内设置的DNS地址,一般会有主备两个。
三、迭代查询
转发器按照域名级别高低,先后查询根服务器、.com域服务器、qq.com域服务器,最终得到授权应答。这个查询过程即迭代查询。
四、递归查询
转发器将相应的查询结果返回至本地DNS服务器192.168.16.1,本地DNS服务器将查询结果返回至主机,最终得出qq.com的ns记录。
因为本地DNS服务器不是qq.com的授权解析服务器,所以查询得出的结果是非权威应答。
递归的意思是:只需要发出一次请求,就能得到相应的结果。比如主机-本地DNS、本地DNS-转发器,都是递归查询。
迭代的意思是:需要经过多次挨个查询,才能得到相应的结果。比如转发器-根服务器、转发器-.com域服务器等,都是迭代查询。
具体流程可以参考下图:
下面来看【2015年】试题:
下列DNS查询过程中,采用迭代查询的是(D),采用递归查询的是(B)。
(35)A.客户端向本地DNS服务器发出查询请求
B.客户端在本地缓存中找到目标主机的地址
C.本地域名服务器缓存中找到目标主机的地址
D.由根域名服务器找到授权域名服务器的地址
(36)A.转发查询非授权域名服务请求
B.客户端向本地域名服务器发出查询请求
C.由上级域名服务器给出下级服务器的地址
D.由根域名服务器找到授权域名服务器的地址
解答:
35题A是递归查询,B是本地查询,C是直接查询,只有D才是迭代查询。
36题A、C、D均是迭代查询。