目录

递归DNS是如何解析域名的

我们拿解析www.360.cn域名为例说明.

1. 递归DNS从它本地配置的13台根权威DNS的一个IP发起查询请求www.360.cn.

2. 根权威DNS返回CN权威DNS的域名和IP地址, 并把它们缓存下来.

3. 递归DNS根据某种算法向CN权威DNS的某一个IP地址请求www.360.cn.

4. CN权威DNS返回360.cn权威DNS的域名, 有如下6个域名:

1
2
3
4
5
6
dns2.360safe.com.
dns1.360safe.com.
dns7.360safe.com.
dns8.360safe.com.
dns9.360safe.com.
dns3.360safe.com.

但没有对应的IP地址, 因为这些域名是com域的, CN权威DNS没法对其他顶级域的域名配置A记录解析, 只能配置NS记录解析. CN权威DNS配置的相关记录举例:

1
2
3
zone 360.cn
360.cn NS dns1.360safe.com
360.cn NS dns2.360safe.com

这个配置一般是要求域名托管商帮忙提交的(一般都有自助web页面), 域名托管商有对顶级域权威DNS的部分写入权限.

然后递归DNS将这些NS记录缓存下来.

5. 递归DNS按照dns1/2/3/7/8/9的顺序向根IP查询这些NS域名A记录, 比如选择了查询dns2.360safe.com, 过程如下:

根权威IP返回com的权威NS和A记录, 递归DNS随机向com的一个权威IP发起查询dns2.360safe.com, com权威IP返回360safe.com权威NS和A记录(此处成对出现的NS记录和A记录就是所谓的胶水记录, 因为360safe.com的NS域名是360safe.com自身的子域名, 所以还需要配置这些NS域名的A记录, 否则会发生查询死循环. com权威DNS上配置的相关胶水记录举例:

1
2
3
zone 360safe.com
360safe.com NS dns2.360safe.com
dns2.360safe.com A 36.110.213.6

递归DNS随机向360safe.com的一个权威IP发送查询dns2.360safe.com的A记录.

在递归DNS随机向360safe.com的一个权威IP发送完查询dns1/2/3/7/8/9的UDP包后, 在没有全部得到响应的情况下, 同时又随机向360safe.com的一个权威IP发送查询www.360.cn的UDP包.

360safe.com权威IP几乎在同时收到了dns1/2/3/7/8/9.360safe.com的A记录结果和www.360.cn的A记录结果.