DNS 服务器上的 NS 记录不匹配

Mismatched NS records at DNS server

我在 DNS 名称服务器配置和 DNS NS 记录不一致方面遇到一些问题。

例如域名zzpeter.nl:
执行 whois zzpeter.nl 时的名称服务器是 dns1.movenext.nl 和 dns2.movenext.net.
但是当做 dig ns zzpeter.nl 它 returns ns1.undeveloped.com 和 ns2.undeveloped.com.

你真的可以在做 dig +trace ns zzpeter.nl:

时看到发生了什么
; <<>> DiG 9.8.3-P1 <<>> +trace ns zzpeter.nl
;; global options: +cmd
.           9078    IN  NS  e.root-servers.net.
.           9078    IN  NS  g.root-servers.net.
.           9078    IN  NS  d.root-servers.net.
.           9078    IN  NS  m.root-servers.net.
.           9078    IN  NS  k.root-servers.net.
.           9078    IN  NS  j.root-servers.net.
.           9078    IN  NS  c.root-servers.net.
.           9078    IN  NS  l.root-servers.net.
.           9078    IN  NS  b.root-servers.net.
.           9078    IN  NS  f.root-servers.net.
.           9078    IN  NS  i.root-servers.net.
.           9078    IN  NS  a.root-servers.net.
.           9078    IN  NS  h.root-servers.net.
;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 10 ms

nl.         172800  IN  NS  ns5.dns.nl.
nl.         172800  IN  NS  ns-nl.nic.fr.
nl.         172800  IN  NS  nl1.dnsnode.net.
nl.         172800  IN  NS  sns-pb.isc.org.
nl.         172800  IN  NS  ns4.dns.nl.
nl.         172800  IN  NS  ns2.dns.nl.
nl.         172800  IN  NS  ns3.dns.nl.
nl.         172800  IN  NS  ns1.dns.nl.
;; Received 485 bytes from 192.36.148.17#53(192.36.148.17) in 17 ms

zzpeter.nl.     7200    IN  NS  dns1.movenext.nl.
zzpeter.nl.     7200    IN  NS  dns2.movenext.net.
;; Received 103 bytes from 193.176.144.5#53(193.176.144.5) in 5 ms

zzpeter.nl.     3600    IN  NS  ns1.undeveloped.com.
zzpeter.nl.     3600    IN  NS  ns2.undeveloped.com.
;; Received 79 bytes from 80.247.175.10#53(80.247.175.10) in 2 ms

我可以从挖掘跟踪调用中获取配置的名称服务器并像人一样处理它们,但是是否还有一种方法可以以我可以编程方式处理的方式检索在注册商处配置的名称服务器?

dig ns zzpeter.nlnslookup -type=ns zzpeter.nlhost -t ns zzpeter.nl 都是 return 不正确的 undeveloped.com 名称服务器...

registrar/registry 保存在其数据库中的内容在 DNS 之外,没有标准的方法来获取它。但你真正想的不是那个,而是父区域中配置的名称服务器。那些您可以通过询问父区域的名称服务器来简单地获得。这正是 dig +trace 输出的倒数第二步中发生的情况。

查找任意域名的父区域并不像人们最初想象的那么简单。如果您不介意 Perl,您可以在 Zonemaster 模块中找到用于挑选父端和子端名称服务器的代码。您可以从 CPAN or Github 获取这些信息。或者你可以像这样使用它:

perl -MZonemaster -E 'say for @{Zonemaster->zone("zzpeter.nl")->glue}'