DNS 递归/迭代弄懂了没?看了就知道
客户端到本地DNS服务器之间是递归;DNS服务器到外网服务器(一级域名等)是迭代
递归查询
递归:客户端只发一次请求,要求对方给出最终结果。一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机;
迭代查询(反复查询)
迭代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求;
授权回答:向dns服务器查询一个域名,刚好这个域名是本服务器负责,返回的结果就是授权回答。
总结
从递归和迭代查询可以看出:
客户端-本地dns服务端:这部分属于递归查询。
本地dns服务端—外网:这部分属于迭代查询。
递归查询时,返回的结果只有两种:查询成功或查询失败.
迭代查询,又称作重指引,返回的是最佳的查询点或者主机地址