正常挖掘的DNS SERVFAIL错误,但+ trace

时间:2019-02-14 07:15:13

标签: dns dnssec

我已经在我的权威DNS服务器上配置了一个新区域(IDN域),但是当我尝试使用DIG命令进行麻烦时,我会收到“ SERVFAIL”消息

dig.exe @ 8.8.8.8 xn--mgba6g.xn--ngbsg9e a

; << >> DiG 9.12.3 << >> @ 8.8.8.8 xn ---- zmcaaaqc9f5a4icedb.xn--mgberp4a5d4ar ; (找到1个服务器) ;;全局选项:+ cmd ;;得到了答案: ;; ->> HEADER <<-操作码:QUERY,状态:SERVFAIL,ID:64359 ;;标志:qr rd ra;查询:1,答案:0,权限:0,附加:1

但是当我添加+ trace选项时,效果很好!

dig.exe @ 8.8.8.8 xn--mgba6g.xn--ngbsg9e +跟踪

我知道此选项从根到我的身份验证都是迭代的。 DNS,但是为什么正常分辨率无法正常工作,我没有使用解析器,而是从所有已知的DNS(例如Google(8.8.8.8))中尝试使用

1 个答案:

答案 0 :(得分:0)

xn--ngbsg9e不是有效的TLD,它没有出现在https://www.iana.org/domains/root/db的IANA根列表中。

@+trace是互斥的:使用+trace时,挖掘将从根名称服务器开始,因此@选项将被忽略。

使用和不使用+trace进行挖掘都将为此域提供NXDOMAIN,因为它的TLD不存在。如果您得到其他任何结果,则意味着网络上的某些内容正在混乱DNS数据包,并且像重写NXDOMAIN指向某个通配符主机一样。

显示您的全部答复。

我的是:

$ dig @8.8.8.8 xn--mgba6g.xn--ngbsg9e a

; <<>> DiG 9.12.0 <<>> @8.8.8.8 xn--mgba6g.xn--ngbsg9e a
; (1 server found)
;; global options: +cmd
;; Sending:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5105
;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: a6e60ed1fe2c4eef
;; QUESTION SECTION:
;xn--mgba6g.xn--ngbsg9e.    IN A

;; QUERY SIZE: 63

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 5105
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;xn--mgba6g.xn--ngbsg9e.    IN A

;; AUTHORITY SECTION:
.           23h59m59s IN SOA a.root-servers.net. nstld.verisign-grs.com. (
                2019021400 ; serial
                1800       ; refresh (30 minutes)
                900        ; retry (15 minutes)
                604800     ; expire (1 week)
                86400      ; minimum (1 day)
                )

;; Query time: 122 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Feb 14 09:33:50 EST 2019
;; MSG SIZE  rcvd: 126

现在您的示例似乎也在谈论xn----zmcaaaqc9f5a4icedb.xn--mgberp4a5d4ar,这是完全不同的。该TLD存在。 但是,正如您在http://dnsviz.net/d/xn----zmcaaaqc9f5a4icedb.xn--mgberp4a5d4ar/dnssec/上看到的那样,您遇到了DNS配置问题。域的父级(注册表)记录的名称服务器集与您的区域列表不匹配。您需要检查您的注册商并通过确保使用完全相同的名称服务器列表来解决DNS问题。

注册表具有:

$ dig @n.nic.net.sa xn----zmcaaaqc9f5a4icedb.xn--mgberp4a5d4ar NS | grep "IN NS "
xn----zmcaaaqc9f5a4icedb.xn--mgberp4a5d4ar. 1h IN NS nslab1.saudi.net.sa.
xn----zmcaaaqc9f5a4icedb.xn--mgberp4a5d4ar. 1h IN NS nslab2.saudi.net.sa.

但是请问这两个域名服务器:

  • nslab1.saudi.net.sa似乎根本没有答复
  • 另一个给出: xn----zmcaaaqc9f5a4icedb.xn--mgberp4a5d4ar. 5m IN NS nslab1.saudi.net.sa.

(只有一个NS,而不是两个)。

因此,您需要修复名称服务器及其提供的内容。

您还遇到了DNSSEC问题,在父级发布的DS密钥与您所在区域中的任何DNSKEY不对应:

$ dig @n.nic.net.sa xn----zmcaaaqc9f5a4icedb.xn--mgberp4a5d4ar DS +multi

; <<>> DiG 9.12.0 <<>> @n.nic.net.sa xn----zmcaaaqc9f5a4icedb.xn--mgberp4a5d4ar DS +multi

[..]

;; ANSWER SECTION:
xn----zmcaaaqc9f5a4icedb.xn--mgberp4a5d4ar. 1h IN DS 23364 7 1 (
                42774D487FB256B3A9DBC9B1ACDBF128F0773C22 )

但是:

$ dig @nslab2.saudi.net.sa xn----zmcaaaqc9f5a4icedb.xn--mgberp4a5d4ar DNSKEY给出NOERROR但没有数据,这意味着您的区域中没有DNSKEY记录。

您首先需要删除父级的DS记录,这只会妨碍您以可行的方式退回DNS。

PS:8.8.8.8并不是世界上唯一的公共名称服务器,也请使用1.1.1.19.9.9.9或{{1}等其他名称服务器(甚至更好的是本地名称服务器!) }或80.80.80.80