DNS云学堂 | 行车不规范亲人两行泪,NS不规范运维两行泪

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记录的创建,建议先充分理解后再往下观看。

模拟解析

模拟客户端向递归服务器发起如下解析,制造解析错误现象:

1)dig 指向递归服务器:10.1.112.252请求www.test.com,正常应答

图片

2)dig 指向递归服务器:10.1.112.252请求ns.test.com,应答NXDOMAIN

图片

3)dig 指向递归服务器:10.1.112.252请求new1.test.com,应答SERVFAIL

图片

问题分析

下面根据图解详细分析每次请求的详细逻辑:

1)请求的正常应答:

图片

由上图可知,递归服务器按照正常的逻辑递归查询,并拿到最终结果应答给客户端。

2)请求ns.test.com,应答NXDOMAIN

缓存是顶级域应答的NS及NS_glue值,而非权威服务器应答的结果,当递归服务器收到ns.test.com.的请求时,递归服务器会认为顶级域应答的NS_gule值不能作为权威结果应答给客户端,递归服务器会再次请求向test.com权威服务器请求ns.test.com.域名

图片

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原因分析:

请求逻辑:

图片

具体原因为:

1、第二次请求的第三小步中的ns.test.com域名请求的结果为NXDOMAIN,而test.com权威服务器应答的结果优先级比顶级域权威服务器应答的"可信度"更高,此次请求导致了递归服务器上test.com的NS_gule被置为NXDOMIAN状态。

2、递归服务器在NS_gule被置为NXDOMIAN状态这一段时间内(一般情况,这段时间按照test.com权威区中SOA记录中的最小TTL进行缓存),再也无法向test.com发起新的域名请求!(一旦出现这种问题,需要有在全网快速清除错误缓存的能力,方能使业务快速回复正常)

NS配置建议及规范

如上是一次NS不规范导致的案例分享,那么针对NS配置有如下的配置规范建议:

1)建议父域与子域协商配置NS配置,NS记录保持一致,规范建议配置:

例:在test.com权威DNS服务器上,需要将bjdc.test.com授权给第三方DNS服务器进行权威解析,那么建议如下配置:

在test.com权威DNS服务器上创建如下记录:

bjdc.test.com    NS ns.bjdc.test.com

ns.bjdc.test.com A  <第三方DNS服务器>

在ns.bjdc.test.com第三方权威服务器上创建如下记录:

bjdc.test.com    NS   ns.bjdc.test.com  

ns.bjdc.test.com A <第三方DNS服务器>

(即保证:NS对应的域名能够在第三方权威服务器上找到A记录)

2)因特殊情况,父子域NS无法保持一致的情况,规范建议配置:

例:在test.com权威DNS服务器上,需要将bjdc.test.com授权给第三方DNS服务器进行权威解析,那么建议如下配置:

在test.com权威DNS服务器上创建如下记录:

bjdc.test.com   NS  bjdcns.test.com

bjdcns.test.com  A <第三方DNS服务器>

(即保证:NS对应的域名能够在父域服务器上找到A记录)

3)作为互联网权威时,NS记录对应的gule值填写公网地址

图片

猜你喜欢

转载自blog.csdn.net/weixin_38354951/article/details/113122128