NS记录在ZONE委派的时候起到了至关重要的作用, 在项目中经常会遇到父域或者子域的NS记录配置错误,导致了各种各样的问题。本期云学堂通过场景模拟,分析问题原因,给出NS配置具体建议及规范。enjoy:
一个真实发生的案例
某日,用户向ZDNS专家团队求助,自己集团的部分域名在全国部分运营商LDNS无法解析。经过分析,发现是该域名的NS不规范导致的最终问题。用户按照NS配置建议进行DNS配置后,彻底解决了相关问题。在分析这一案例的过程中,我们认识到:1)NS规范配置影响到一个DNS权威区是否合法,在日常运维工作中应当重视NS配置合规性;2)在各种场景下如何规范配置NS记录是普遍存在的问题。
场景模拟
概述
现网配置如下(模拟环境),使用三台服务器模拟DNS系统中的各种角色:
1)根+顶级域服务器:10.1.112.98
2)二级权威服务器:10.1.112.54
3)递归服务器:10.1.112.252(根配置指向10.1.112.98)
在递归服务器上:将根服务器指向10.1.112.98(这样的目的就是使其不使用默认的13个根),这样递归服务器便从我们的"测试根+顶级域"开始请求。
详细配置
各角色DNS基础配置如下:
1)根+顶级域服务器:10.1.112.98有如下记录:
@区(根区):
com区:
2)二级权威服务器:10.1.112.54有如下记录:
test.com权威区:
3)递归服务器:10.1.112.252有如下记录:
根配置(指向根+顶级域服务器):
注
温馨提示:基础配置涉及到NS及A记录的创建,建议先充分理解后再往下观看。
模拟解析
模拟客户端向递归服务器发起如下解析,制造解析错误现象:
3)dig 指向递归服务器:10.1.112.252请求new1.test.com,应答SERVFAIL
问题分析
下面根据图解详细分析每次请求的详细逻辑:
1)请求的正常应答:
由上图可知,递归服务器按照正常的逻辑递归查询,并拿到最终结果应答给客户端。
3)请求new1.test.com,得到SERVFAIL的应答
先了解SERVFAIL的定义:"ServFail"在[ RFC 1035 ]有所解释:
RCODE响应码为2 :Server failure
The name server was unable to process this query due to a problem with the name server. (由于名称服务器出现问题,名称服务器无法处理此查询)
在数据包中的response中的Rcode字段:
最常见到:DNS服务器解析超时应答SERVFAIL,但是此次SERVFAIL的原因不是因为解析超时。SERVFAIL原因分析:
请求逻辑:
具体原因为:
2、递归服务器在NS_gule被置为NXDOMIAN状态这一段时间内(一般情况,这段时间按照test.com权威区中SOA记录中的最小TTL进行缓存),再也无法向test.com发起新的域名请求!(一旦出现这种问题,需要有在全网快速清除错误缓存的能力,方能使业务快速回复正常)
NS配置建议及规范
如上是一次NS不规范导致的案例分享,那么针对NS配置有如下的配置规范建议:
1)建议父域与子域协商配置NS配置,NS记录保持一致,规范建议配置:
在test.com权威DNS服务器上创建如下记录:
(即保证:NS对应的域名能够在第三方权威服务器上找到A记录)
2)因特殊情况,父子域NS无法保持一致的情况,规范建议配置:
在test.com权威DNS服务器上创建如下记录:
(即保证:NS对应的域名能够在父域服务器上找到A记录)
3)作为互联网权威时,NS记录对应的gule值填写公网地址
本期云学堂就分享到这里,如果您有NS配置方面的其他问题,欢迎在文章下方留言,我们将安排专业的工程师为您答疑解惑。咱们下期再见~
领取专属 10元无门槛券
私享最新 技术干货