DNS查询主要分为两种方式:1.递归查询;2.迭代查询
1. 什么递归查询
如下所示为DNS递归查询的过程:
查询过程如下:
Step A:客户端向本地DNS服务器查询某个域名解析(这里以"example.microsoft.com"为例);
Step B:本地DNS服务器先查找缓存查询不到,然后查找本地区域文件还是找不到,则通过根提示文件向负责.com顶级域的根名称DNS服务器查询;
Step C:根DNS服务器收到请求后直接将下属的.com的权威DNS服务器IP地址返回给本地DNS服务器;
Step D:本地DNS服务器收到根域名服务器发出的DNS信息后直接向.com的权威DNS服务器查询;
Step E:.com权威域名服务器收到请求后,发现无此域名的解析直接将下属的二级名称服务器microsoft.com的权威名称DNS的ip发给本地DNS服务器;
Step F:本地DNS收到.com发出的microsoft.com权威DNS服务器后,直接向microsoft.com权威DNS发出解析请求;
Step G:microsoft.com权威DNS收到解析请求后,发现是自己负责的域名,并且存在该主机记录,然后将对应的ip信息发给本地DNS,本地DNS缓存该解析,并响应客户端查询,至此整个查询过程结束;
2. 什么迭代查询
如下所示为DNS迭代查询的过程:
查询过程如下:
Step A:客户端向本地DNS服务器查询某个域名解析(这里以"example.microsoft.com"为例)
Step B:本地DNS服务器先查找本地缓存,如果找不到,则直接将本地DNS的根名称域名(13台根域名服务器随机选择一台)信息发给客户端;
Step C:客户端根据本地DNS服务器发出的DNS报文直接查询根域名服务器;
Step D:根域名服务器查询自己的DNS区域文件,然后将负责.com域名解析的权威DNS告诉客户端,然后客户端再次查询负责.com解析的DNS服务器;
Step E:.com权威域名服务器收到请求后,发现无此域名的解析直接将下属的二级名称服务器microsoft.com的权威名称DNS的ip发给客户端,客户端直接查询microsoft.com的权威名称DNS,microsoft.com权威名称服务器收到DNS查询后发现为自己负责的域名解析,并且存在该域名的A记录,直接反馈给DNS客户端,至此整个查询过程结束;
原文地址:http://blog.51cto.com/blief/2135412