关键词:递归,迭代
递归:客户端向LDNS的请求是递归;
迭代:LDNS向根域,顶级域的查询为迭代查询;
所谓 递归查询过程 就是 “查询的递交者” 更替, 而 迭代查询过程 则是 “查询的递交者”不变。
DNS解析的过程:
第一步:客户端用户在浏览器里输入www.test.com网站的地址后回车,系统首先查找本地的DNS缓存及hosts文件信息,确定是否存在www.test.com域名对应的IP解析记录,如果有就直接获取到IP地址,然后去访问这个IP地址对应的www.test.com域名的服务器,一般第一次请求时,DNS缓存是没有解析记录的,而hosts多为内部临时测试使用。
第二步:如果客户端本地DNS缓存及本地hosts文件没有www.test.com域名对应的解析记录,那么系统会把浏览器的解析请求发送给在客户端本地设置的DNS服务器地址(通常称此DNS为LDNS,即LocalDNS)解析,如果LDNS服务器的本地缓存有对应的的解析记录就会直接返回IP地址给客户端,如果没有则LDNS会负责继续请求其他的DNS服务器。
第三步:LDNS从DNS系统的(”.“)根开始请求www.test.com域名的解析,根DNS服务器在全球一共有13台,根服务器下面是没有www.test.com域名解析记录的,但是根下面有www.test.com对应的顶级域.com的解析记录,因此,根会把.com对应的DNS服务器地址(DNS类型为NS)返回给LDNS。
第四步:LDNS获取到.test对应的DNS服务器地址后,就会去.test服务器请求www.test.com的域名解析,而.com服务器下面也没有www.test.com域名对应的解析记录,但是有test.com域名的解析记录,因此,.com服务器会把test.com对应的DNS服务器地址返回给LDNS。
第五步:同理,LDNS获取到test.com对应的DNS服务器地址后,就会去test.com服务器请求对www.test.com域名的解析,test.com域名对应的DNS服务器是该域名的授权DNS服务器,这个DNS服务器正是企业购买域名是用于管理解析的服务器(也可能是自建的授权DNS服务器),这个服务器会有与www.test.com对应的IP解析记录,如果此时没有,就表示企业的域名人员没有为www.test.com域名做解析,及网站还没架设好。
第六步:test.com域名DNS服务器会把www.test.com对应的IP解析记录(例如:1.1.1.1)发给LDNS。
第七步:LDNS把来自授权DNS服务器的与www.test.com对应的IP解析记录发给客户端浏览器,并且LDNS会在本地把域名和IP的对应解析记录缓存起来。以便下次更快地返回相同解析请求的记录。至此,整个DNS的解析流程就完成了。
DNS解析流程图
DNS解析命令:
# dig +trace www.test.com