DNS查询是指发往DNS服务器的名称解析请求,主要包括递归查询和迭代查询两种类型。通常情况下,DNS客户端向配置成转发器的DNS服务器发起递归查询,DNS服务器之间的查询属于迭代查询。
(1)递归查询。递归查询是指DNS客户端发往DNS服务器的查询,并要求服务器提供该查询的答案,找到相应的域名和IP地址的映射信息,DNS服务器的响应为查询到结果或查询失败。
DNS客户端发往该客户端所配置的DNS服务器的递归查询的工作过程如下:
1、DNS客户端向本地DNS服务器发出递归查询请求;
2、本地DNS服务器检查缓存和区域,寻找资源记录;
3、如果DNS服务器找到DNS客户端所请求的资源记录,将该记录告诉给DNS客户端;
4、如果DNS服务器没有找到相应的资源记录,DNS服务器可以通过转发器地址和根提示来寻找资源记录;
5、如果DNS服务器通过任何方法都未查询到该资源记录,则查询失败。
(2)迭代查询。迭代查询是指一台DNS服务器发往另一台DNS服务器的查询。当前DNS服务器收到其他DNS服务器发送来的迭代查询请求后,如果不能在该服务器上查询到资源记录,则当前DNS服务器将告诉发起查询的DNS服务器另外—台DNS服务器的IP地址。然后再由发起查询的DNS服务器向另外一台DNS服务器发起迭代查询,以此类推,直到查询到资源记录为止。如果最后一台DNS服务器没有查询到相应的资源记录,则查询失败。
DNS服务器发往其他DNS服务器的迭代查询的工作过程如下:
1、本地DNS服务器收到DNS客户端发来的迭代查询;
2、本地DNS服务器向根服务器发出迭代查询的请求;
3、根据服务器作出响应,提供了靠近所提交域名的DNS服务器的IP地址;
4、本地DNS服务器向靠近所提交域名的DNS服务器发出迭代查询;
5、依次类推,直到本地DNS服务器收到所要查询的资源记录的信息;
6、将该资源记录信息发送给DNS客户端。