我已经在我的权威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 a ;(找到 1 台服务器) ;;全局选项:+cmd ;;得到答案: ;;->>标头<<- 操作码:查询,状态:SERVFAIL,ID:64359 ;;旗帜: QR RD RA;查询: 1,答案: 0, 权限: 0, 附加: 1
但是当我添加+跟踪选项时,它工作正常!
dig.exe @8.8.8.8 xn--mgba6g.xn--ngbsg9e a +trace
我知道这个选项是从根到我的身份验证迭代的。 DNS,但是为什么正常分辨率不起作用,我没有使用我的解析器,我正在尝试从所有已知的 DNS,例如谷歌 (8.8.8.8)
xn--ngbsg9e
不是有效的顶级域名,它不会出现在 IANA 根 https://www.iana.org/domains/root/db 列表中。
@
和+trace
是互斥的:有了+trace
dig将从根名称服务器开始,因此@
选项将被忽略。
无论有没有+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
,这是完全不同的。此顶级域名存在。 但正如您在 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 密钥与您所在区域中的任何 DNS 密钥都不对应:
$ 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.1
或9.9.9.9
或80.80.80.80
或64.6.64.6