centos bind dns详解7——域名解析失败的那些事

说起域名解析失败,小编平时工作中经常遇到 。一旦失败可不得了,基本代表着对应的业务无法访问了 。不过一部分“失败”指的是请求源向递归DNS查询时候无法解析出结果的情况,并不是真正意义上的失败 。所以小编今天向大家科普下域名解析失败的几种情况 。
关于DNS-RcodeRcode值为0,对应的DNS应答状态为NOERROR,意思是成功的响应,即这个域名解析是成功Rcode值为2,对应的DNS应答状态为SERVFAIL,意思是服务器失败 , 也就是这个域名的权威服务器拒绝响应或者响应REFUSE,递归服务器返回Rcode值为2给CLIENTRcode值为3 , 对应的DNS应答状态为NXDOMAIN , 意思是不存在的记录,也就是这个具体的域名在权威服务器中并不存在Rcode值为5,对应的DNS应答状态为REFUSE,意思是拒绝,也就是这个请求源IP不在服务的范围内DNS请求失败的具体分析
【centos bind dns详解7——域名解析失败的那些事】综上 , 小编可以知道 , 常见的请求失败包括:
1、域名记录不存在,即Rcode值为3 权威向递归服务器应答REFUSE 。当权威服务器不存在主域名及对应的SOA记录时,权威会向递归服务器返回REFUSE,即不在我服务的范围内拒绝,递归服务器在收到这个REFUSE应答后 , 给请求源一个SERVFAIL的应答,并缓存1S:2.3)权威向递归服务器应答SERVFAIL 。当权威服务器存在主域名但是由于zonefile被破坏导致权威服务器上域名的NS记录异常时,权威会向递归服务器返回SERVFAIL,即解析失败 , 递归服务器在收到这个SERVFAIL应答后 , 给请求源一个SERVFAIL的应答,并缓存1S:2.4)权威向递归服务器应答其他的错误Rcode 。由于不常见本文就不展开了,递归服务器在收到其他错误应答后,给请求源一个SERVFAIL的应答 , 并缓存1S:
3、拒绝服务,即Rcode值为5(REFUSE)的情况 。除了记录不存在(NXDOMAIN)和解析失败(SERVFAIL)以外,如果请求源不在递归服务器的服务范围内 , 这种情况下递归服务器会直接给请求源一个REFUSE的应答,本地直接应答无缓存:
4、响应成功 , 但是没有解析结果,这是一种比较特殊的情况,这种情况是Rcode值为0(NOERROR)的情况 。这种情况下域名权威服务器及托管的主域名均正常,权威本身也存在这条具体的域名记录,但是没有对应的记录类型(不包含CNAME,CNAME是特殊情况,可以响应任意类型的请求),这是权威返回了NOERROR,值的注意的是这个NOERROR的报文中没有ANSWER SECTION 。但是会包含一个AUTHORITY SECTION,内容为改主域名的SOA记录,这个应答结果会在递归服务器中被缓存 , 缓存时间周期为域名的SOA记录的TTL:
5、还有最后的一种情况,就是递归服务器本身不响应了,这个比较容易理解 , 如果递归服务器不响应,那么请求段收不到任何应答,这个时候请求端终端如果有超时机制则会跑出一个dns请求 timeout的结果:
结论:
总体上小编看到,递归DNS解析失败有着多种可能的因素 。有了这张神图,老板再也不怕小编域名解析失败了 。
以上就是朝夕生活(www.30zx.com)关于“centos bind dns详解7——域名解析失败的那些事”的详细内容 , 希望对大家有所帮助!

猜你喜欢