-1

我在我的权威 DNS 服务器上配置了一个新区域(IDN 域),但它不起作用,当我尝试使用 DIG 命令进行故障排除时,我收到“SERVFAIL”

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

; <<>> DiG 9.12.3 <<>> @8.8.8.8 xn----zmcaaaqc9f5a4icedb.xn--mgberp4a5d4ar a ; (找到 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 a +trace

我知道这个选项会从根目录迭代到我的身份验证。DNS,但为什么正常解析不起作用,我没有使用我正在尝试从所有已知的 DNS (如谷歌(8.8.8.8))的解析器

4

1 回答 1

0

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

@并且+trace是互斥的:with +tracedig 将从根名称服务器开始,因此@忽略选项。

因为它的 TLD 不存在,所以有和没有+tracedig 都会给你这个域。NXDOMAIN如果您得到任何其他类型的结果,则意味着您的网络上的某些东西正在弄乱 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.1or 9.9.9.9or 80.80.80.80or64.6.64.6

于 2019-02-14T14:44:08.167 回答