关于DNS forward三个ip地址的查询顺序及CNAME对forward的影响

 

关于DNS forward三个ip地址的查询顺序及过程说明:缓存

每次域名请求会轮循环三个ip地址,逻辑是:取三个ip地址,随机使用一个开始请求,若是失败则随机取剩下的两个中的一个,若是再失败就取最剩下的那个,若是也失败了,则根据forward的规则判断下一步怎么作,若是forward的规则是forward的only模式,那么就直接返回给用户解析失败结果;若是是forward的first模式,则递归去查询请求,而后返回给用户结果。
 服务器

测试若是其中一个或者两个IP地址不通的状况
方法:禁用三个IP地址其中的一个进行测试,
测试结果:在结果中只能抓到请求两个好的IP地址的结果,禁用的那个未抓到任何结果,结论:若是三个IP地址中用不通的IP地址,DNS服务器压根不会尝试这个不通的IP地址(推测多是内部有探测机制)
 ide

一个域名作了CNAME,将不能同时再作A纪录, 若是同时在bind中配置CNAME 和A纪录后加载时会报错。在某些低版本设备上即便能强制并存, A纪录也不会生效,仍以CNAME生效.测试

BIND的查询机制是:当一个域名的NS纪录在DNS服务器上的缓存里存在时,若是这个域名的权威DNS为其作了CNAME,则该域名将不会以原始域名进行请求解析,而是以CNAME作为解析请求(若是作了forward,将以CNAME进行forward),而后把CNAME获得A纪录作为该域名的解析结果spa

说白一点,就是拿着 cname的域名进行forward请求,而不是拿着原始域名进行forward请求了
相关文章
相关标签/搜索