DNS的状态码在进行故障排查的时候起着至关重要的作用 。在DNS的维护中会经常遇到DNS解析异常问题,通过DNS的状态码可以初步判断DNS解析的异常问题 。本期云学堂通过详解DNS状态码的定义,给出常见状态码的场景举例 。enjoy:
① 写在前面本文针对Header section format的RCODE进行分析 。
此部分对应Wireshark中打开的DNS数据包Domian Name System部分Flags的RCODE
1RFC1035[4.1.1]0 NOERROR无错误条件
1 Format error,格式错误-名称服务器无法解释查询 。
2 Server failure,由于名称服务器问题,名称服务器无法处理该查询 。
3 Name Error,仅对来自权威名称服务器的响应有意义,此代码表示查询中引用的域名不存在 。
4 Not Implemented,未实现-名称服务器不支持所请求的查询类型 。
5 Refused,拒绝-名称服务器由于策略原因拒绝执行指定的操作 。例如,名称服务器可能不希望将信息提供给特定请求者,或者名称服务器可能不希望对特定数据执行特定操作(例如,区域传送) 。
6-15保留以备将来使用:
QDCOUNT一个无符号的16位整数,指定问题部分中的条目数 。
ANCOUNT一个无符号的16位整数,用于指定答案部分中的资源记录数 。
NSCOUNT一个无符号的16位整数,指定ame的数量授权记录部分中的服务器资源记录 。
ARCOUNT一个无符号的16位整数,用于指定其他记录部分中的资源记录数 。
2RFC2136 [pag5-6]rfc2136 [pag5-6]对DNS状态码的描述有所更新(1997发布):x
NOERROR 0无错误条件 。
FORMERR 1名称服务器无法解释格式错误导致的请求 。
SERVFAIL 2名称服务器在处理此请求时遇到内部故障,例如操作系统错误或转发超时 。
NXDOMAIN 3应该存在的某些名称不存在 。
NOTIMP 4名称服务器不支持指定的操作码 。
REFUSED 5名称服务器出于策略或安全原因拒绝执行指定的操作 。
YXDOMAIN 6确实存在一些不应该存在的名称 。
YXRRSET 7确实存在一些不应该存在的RRset 。
NXRRSET 8应该存在的某些RRset不存在 。
NOTAUTH 9服务器对“区域”部分中命名的区域没有权威性 。
NOTZONE 10在“前提条件”或“更新”部分中使用的名称不在“区域”部分指示的区域内 。
ZOCOUNT区域部分中的RR数 。
PRCOUNT前提条件部分中的RR数 。
UPCOUNT更新部分中的RR数 。
ADCOUNT附加数据部分中的RR数 。
②常见状态码分析RFC中描述的状态码有很多,但是在绝大多数场景下只有几种状态会被使用到,例如:
0NOERROR、2SERVFAIL、3NXDOMAIN、5REFUSED
下面针对常见的几种状态码出现的场景进行介绍:
1NOERRORResponse code 0 —— NOERROR
当服务器解析到结果时,将结果回复给客户端,此状态为 NOERROR,例:
环境说明
DNS服务器有test.com 权威区,有如下记录
test.com. 3600 NS ns.test.com.
ns.test.com. 3600 A 1.1.1.1
www.tes.tcom 3600 A 2.2.2.2
场景一:域名正常解析到记录
1)客户端向DNS服务器解析www.tes.tcom 的A记录
2)服务器应答NOERROR,并附带:www.test.com 3600 A 2.2.2.2
场景二:请求一个域名时,这个域名类型树下如果存在其中一个类型,其他类型应答都为NOERROR
1)客户端向DNS服务器解析www.tes.tcom 的 TXT记录
2)服务器应答NOERROR,并附带test.com 的SOA
2SERVFAILResponse code 2 —— SERVFAIL
递归DNS服务器至权威服务器的网络不通,或者DNS服务器发生错误,则会导致SERVFAIL
环境说明
1台递归DNS:A;1台权威DNS:B;1个客户端:C
推荐阅读
- 马云身价多少亿2017,马化腾超越马云
- 克服云安全挑战的5种方法
- 香港云服务器为什么需要及时升级配置
- 为什么台湾云服务器适合电商行业?
- 在香港云服务器上搭建虚拟机有什么优势
- 美国云服务器租用必须考虑的事
- 什么是融合云,融合云哪家的性价比高
- [整理版]史湘云性格简析 史湘云人物形象分析
- 公有云,私有云和混合云
- 云os1.7.3 root工具,阿里云系统最新root大法