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

3
我在DNS名字服务器配置和DNS NS记录不一致方面遇到了一些问题。
例如,对于zzpeter.nl域名: 当执行whois zzpeter.nl时,其名称服务器为dns1.movenext.nl和dns2.movenext.net。 但是,当执行dig ns zzpeter.nl时,它返回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跟踪调用获取配置的名称服务器,并以人类方式处理它们,但是否还有一种以编程方式处理已在注册机上配置的名称服务器的方法?

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

1个回答

1
注册机构/注册表在其数据库中保存的内容属于DNS之外,没有标准方法可以获取它。但你考虑的不是那个,而是在父域中配置的名称服务器。你只需要询问父域的名称服务器即可获得这些信息。这正是dig +trace输出中倒数第二步发生的情况。
对于任意域名找到父域并不是一件简单的事情。如果您不介意使用Perl,您可以在Zonemaster模块中找到选择父级和子级名称服务器的代码。您可以从CPANGithub获取这些信息。或者你可以像这样使用它:
perl -MZonemaster -E 'say for @{Zonemaster->zone("zzpeter.nl")->glue}'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接