新闻详情

DNS云学堂 | 摊上事儿了!DNS解析应答状态码为NXDOMAIN

762
发表时间:2021-08-06 19:47


01 关于DNS-Rcode


DNS作为标准协议,对于解析应答状态码规范了相关字段,这里先介绍一下常见应答码:

Rcode值为0:对应的DNS应答状态为NOERROR,意思是成功的响应,即这个域名解析是成功;
Rcode值为2:对应的DNS应答状态为SERVFAIL,意思是服务器失败,也就是这个域名的权威服务器拒绝响应或者响应REFUSE,递归服务器返回Rcode值为2给CLIENT;
Rcode值为3:对应的DNS应答状态为NXDOMAIN,意思是不存在的记录,也就是这个具体的域名在权威服务器中并不存在;
Rcode值为5:对应的DNS应答状态为REFUSE,意思是拒绝,也就是这个请求源IP不在服务的范围内,常见的场景为联通客户端到电信运营商LDNS解析会被REFUSE。
(* SERVFAIL:解析失败,在解析系统中没有找到任何应答,DNS请求超时;REFUSE:请求被拒绝,请求客户端只是这一次请求失败,不会影响后续的解析)

那么在这4中常见的应答码中正常来说只有NOERROR是正确应答,其他三种都是不能获取正常结果的应答码。

实时上在所有应答码中NXDOMAIN的应答问题是比较严重的,那么NXDOMAIN代表什么意思,它会对整个解析过程带来什么影响?下面来揭开这层面纱,enjoy:



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 场景:



角色
服务IP
LDNS
172.16.150.101
172.16.150.102
权威DNS
172.16.150.103



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


22.png

首先在客户端上对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过期后才会重新到权威请求新的结果(此时需要保证权威侧的配置正确)。


那么此时就会有个问题:NXDOMAIN应答码是如何产生的?如何避免产生?

只有在保证权威DNS配置按照标准规范配置才能保证解析业务不会出现各种问题,我们对DNS配置有完整的标准配置建议,具体标准下次我们再聊。

_______________
_______________
_______________
_______________
友情互联:
________________________________________________________________________________________________________
邮箱:web@zdns.cn
7*24小时客户服务
咨询电话:400-6688-876
标签:
请输入要描述的内容进行内容补充 请输入要描述的内容
01
03
请输入要描述的内容进行内容补充 请输入要描述的内容
_______________________________________________________________________________________________________
京ICP备15027496号-3 | 京公网安备11010802021115号 | All rights reserved
官方微信
DNS 云解析
新顶级域直通车