DNS云学堂 | 摊上事儿了!DNS解析应答状态码为NXDOMAIN7637
发表时间:2021-08-06 19:47 01 关于DNS-Rcode 02 NXDOMAIN的定义 关于NXDOMAIN,我们来看看RFC中相关定义: 译文:本文档明确指出,当DNS解析程序收到响应代码为NXDOMAIN的响应时,意味着被拒绝的域名及其下的所有名称都不存在。 译文:DNS迭代解析算法以这种方式精确地解释NXDOMAIN信号。如果它遇到来自权威服务器的NXDOMAIN响应代码,它会立即停止迭代并将NXDOMAIN响应返回给查询器。 这里有个关键点,就是“立即停止迭代并将NXDOMAIN响应返回给查询器”。 03 NXDOMAIN影响 3.1 NXDOMAIN对LDNS的影响 我们来分析,作为LDNS收到NXDOMAIN的行为自然就是不再继续查询,并且将结果应答给查询器,同时还会有个行为就是将LDNS缓存中已有的关于该域名的记录都会标记为NXDOMAIN,并缓存NXDOMAIN的TTL。 因此在人为不干预的情况下,关于该域名的记录结果在TTL时间内都会被解析成为NXDOMAIN。 (*TTL值全称是“生存时间Time To Live”,简单的说它表示DNS记录在DNS服务器上的缓存时间) 3.2 谁产生的NXDOMAIN 在正常情况下,LDNS上的缓存均由权威服务器的应答产生。 因此互联网权威服务器不应该产生NXDOMAIN的应答,如果产生,则会影响该域名的正常解析。 04 实验测试 1.1 场景:
LDNS将本地根指向自建根(172.16.150.102),自建根将test.com授权给172.16.150.103 通过在权威DNS上模拟出aaa.test.com会应答NXDOMAIN,www.test.com配置正确应答NOERROR。 1.2 客户端解析 客户端将LDNS配置成为172.16.150.101 首先在客户端上对www.test.com进行A和AAAA解析,测试权威配置正确的解析结果 A记录解析正常 AAAA解析结果为无结果的NOERROR,这样的结果对LDNS无影响。 测试结果显示,对于配置正确的域名,应答结果都应该是NOERROR。 在客户端上对aaa.test.com进行A和AAAA解析,测试域名在权威已经配置,但配置不标准的解析结果。 第一次对A记录进行解析,解析应答码为NOERROR,此时是正常的。 第一次对AAAA记录进行解析,解析结果为NXDOMAIN,此时就开始有问题。 此时,LDNS上关于aaa.test.com的全纪录类型缓存就会被污染。 下面来做下验证: 当之前访问的A记录的TTL超时后再对A记录进行解析,解析结果为NXDOMIAN,此时第一次解析正常的A记录缓存就会被污染,解析结果从NOERROR被污染成NXDOMAIN。 1.3 LDNS进行缓存文件查看确认 此时我们来查看LDNS中的缓存内容 从缓存中可以看出aaa.test.com的全类型(ANY)记录都被污染(解析结果为NXDOMAIN)。 为了验证是aaa.test.com的全记录类型都被污染,我们做一个很少解析的spf记录。 如下:spf记录也被污染 由此可见正常对外提供服务的域名是不能产生NXDOMAIN的应答结果,否则会将LDNS上关于该域名的全纪录类型结果都污染,污染后只能等待NXDOMAIN的TTL过期后才会重新到权威请求新的结果(此时需要保证权威侧的配置正确)。 声明:此篇为ZDNS-国家工程研究中心原创文章,转载请标明出处链接:https://www.zdns.cn/news/141.html
|