胶水记录不一致

胶水记录不一致

我们在 mxtoolbox 和其他各种在线 DNS 工具上发现了很多问题,这些问题导致我们的粘合记录不一致。具体来说,似乎 TLD(本例中为 .host)上设置的粘合记录为我们的 4 个名称服务器设置了粘合记录,但其中 2 个 NIC 服务器没有分配 IP 地址。

具体来说,.host 有 4 个 NIC 服务器(a.nic.host - d.nic.host),并且似乎只有 a.nic.host 和 b.nic.host 有分配给我们的 4 个名称服务器的 IP 地址,而 c.nic.host 和 d.nic.host 没有。

当我们使用 pingdom dns 检查工具对我们的域名进行查询时,我们遇到了许多错误:

 Nameserver ns1.intelli.host is listed for zone intelli.host without address information.
 Nameserver ns3.intelli.host is listed for zone intelli.host without address information.
 Nameserver ns4.intelli.host is listed for zone intelli.host without address information.

这些错误是随机出现的(我根据哪个 NIC 服务器返回的结果进行预测)。

Ultradns 在跟踪的底部更加精确,表明在线 a.nic.host 和 b.nic.host 已分配 IP 地址。

然而当我这样做时:

 dig +norec @c.nic.host intelli.host NS

我获得了 4 个名称服务器的 IP 地址 - 这让我相信,要么是我没有执行正确的 dig 命令,要么是 pingdom 和 ultratools 等各种在线工具报告不正确(我对此表示怀疑)

有人能确认我对我们所遇到的问题的理解是否正确吗?

更新(第二天)

感谢大家迄今为止的帮助!从目前的答案来看,似乎 pingdom 可能让我们陷入了困境,但我发现另外 2 个 DNS 工具网站也给出了随机结果。

在所有这些情况下,很明显的是,我们会随机遇到某种 DNS 问题,而且据我所知,这是当 c.nic.host 或 d.nic.host 报告粘合记录时发生的:

查看DNS: http://viewdns.info/dnsreport/?domain=intelli.host

请注意,这个查询会给出不同的结果。它的变化主要取决于哪个服务器给出结果(在本例中是 d.nic.host):

Nameserver records returned by the parent servers are:
ns2.intelli.host. [NO GLUE] [TTL=3600]
ns3.intelli.host. [NO GLUE] [TTL=3600]
ns1.intelli.host. [NO GLUE] [TTL=3600]
ns4.intelli.host. [NO GLUE] [TTL=3600]

This information was kindly provided by d.nic.host.

VIEWDNS 也出现错误: 糟糕!您的名​​称服务器返回的 IP 地址 (GLUE) 不匹配!您应该仔细观察上面的名称服务器详细信息并找出差异所在。

超级DNS https://www.ultratools.com/tools/dnsLookupResult(可能需要在这里搜索 intelli.host,因为没有直接链接)

当进行跟踪时,它会在底部显示返回的 HOST 记录,如下所示:

host.
b.nic.host.66 ms
intelli.host.   ns2.intelli.host.   129.232.201.205
intelli.host.   ns1.intelli.host.   129.232.201.203
intelli.host.   ns3.intelli.host.   13.80.126.179
intelli.host.   ns4.intelli.host.   40.121.91.245

d.nic.host.3 ms
intelli.HOST.   ns2.intelli.host.   
intelli.HOST.   ns1.intelli.host.   
intelli.HOST.   ns3.intelli.host.   
intelli.HOST.   ns4.intelli.host.   

c.nic.host.38 ms
intelli.HOST.   ns1.intelli.host.   
intelli.HOST.   ns4.intelli.host.   
intelli.HOST.   ns3.intelli.host.   
intelli.HOST.   ns2.intelli.host.   

a.nic.host.65 ms
intelli.host.   ns4.intelli.host.   40.121.91.245
intelli.host.   ns1.intelli.host.   129.232.201.203
intelli.host.   ns2.intelli.host.   129.232.201.205  
intelli.host.   ns3.intelli.host.   13.80.126.179

答案1

您需要为所有四个名称服务器设置名称和 IP 地址注册员。他们可能有一些用于此目的的 Web 界面。然后,您的名称服务器必须具有完全相同的四个NS记录(及其A记录),所有名称服务器必须具有相同的区域数据等。

参见 IANA权威名称服务器的技术要求

胶水与权威数据的一致性

对于将 IP 地址列为粘合 IP 地址的名称服务器,IP 地址必须与该主机的权威 A 和 AAAA 记录相匹配。

委派和区域之间的一致性

权威名称服务器提供的 NS 记录集必须与父区域中为委派建议的记录集相匹配。

答案2

我怀疑您偶然发现了 Pingdom 代码中与大小写混合相关的错误。这是我在这里能找到的最多信息。您的下一步应该是将此问题提交给 Pingdom 的技术支持。

步骤 1:确认胶水记录存在

所有胶水记录均存在于委派点:

$ dig +norec @c.nic.host intelli.host NS

; <<>> DiG 9.9.5-9+deb8u10-Debian <<>> +norec @c.nic.host intelli.host NS
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51608
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;intelli.host.                  IN      NS

;; AUTHORITY SECTION:
intelli.HOST.           3600    IN      NS      ns1.intelli.host.
intelli.HOST.           3600    IN      NS      ns3.intelli.host.
intelli.HOST.           3600    IN      NS      ns4.intelli.host.
intelli.HOST.           3600    IN      NS      ns2.intelli.host.

;; ADDITIONAL SECTION:
ns1.intelli.HOST.       3600    IN      A       129.232.201.203
ns2.intelli.HOST.       3600    IN      A       129.232.201.205
ns3.intelli.HOST.       3600    IN      A       13.80.126.179
ns4.intelli.HOST.       3600    IN      A       40.121.91.245

;; Query time: 32 msec
;; SERVER: 2a02:e180:3::2#53(2a02:e180:3::2)
;; WHEN: Tue Jun 20 23:32:59 UTC 2017
;; MSG SIZE  rcvd: 205

第 2 步:确认粘合记录与子名称服务器上的数据一致:

$ for ip in 129.232.201.203 129.232.201.205 13.80.126.179 40.121.91.245; do echo ==@$ip==; dig @$ip +noall +question +answer ns{1..4}.intelli.host; done
[email protected]==
;ns1.intelli.host.              IN      A
ns1.intelli.host.       14400   IN      A       129.232.201.203
;ns2.intelli.host.              IN      A
ns2.intelli.host.       14400   IN      A       129.232.201.205
;ns3.intelli.host.              IN      A
ns3.intelli.host.       14400   IN      A       13.80.126.179
;ns4.intelli.host.              IN      A
ns4.intelli.host.       14400   IN      A       40.121.91.245
[email protected]==
;ns1.intelli.host.              IN      A
ns1.intelli.host.       14400   IN      A       129.232.201.203
;ns2.intelli.host.              IN      A
ns2.intelli.host.       14400   IN      A       129.232.201.205
;ns3.intelli.host.              IN      A
ns3.intelli.host.       14400   IN      A       13.80.126.179
;ns4.intelli.host.              IN      A
ns4.intelli.host.       14400   IN      A       40.121.91.245
[email protected]==
;ns1.intelli.host.              IN      A
ns1.intelli.host.       14400   IN      A       129.232.201.203
;ns2.intelli.host.              IN      A
ns2.intelli.host.       14400   IN      A       129.232.201.205
;ns3.intelli.host.              IN      A
ns3.intelli.host.       14400   IN      A       13.80.126.179
;ns4.intelli.host.              IN      A
ns4.intelli.host.       14400   IN      A       40.121.91.245
[email protected]==
;ns1.intelli.host.              IN      A
ns1.intelli.host.       14400   IN      A       129.232.201.203
;ns2.intelli.host.              IN      A
ns2.intelli.host.       14400   IN      A       129.232.201.205
;ns3.intelli.host.              IN      A
ns3.intelli.host.       14400   IN      A       13.80.126.179
;ns4.intelli.host.              IN      A
ns4.intelli.host.       14400   IN      A       40.121.91.245

步骤 3:确认没有 NS 记录不匹配

$ for ip in 129.232.201.203 129.232.201.205 13.80.126.179 40.121.91.245; do echo ==@$ip==; dig @$ip +short intelli.host NS ; done
[email protected]==
ns1.intelli.host.
ns2.intelli.host.
ns3.intelli.host.
ns4.intelli.host.
[email protected]==
ns2.intelli.host.
ns3.intelli.host.
ns4.intelli.host.
ns1.intelli.host.
[email protected]==
ns2.intelli.host.
ns4.intelli.host.
ns1.intelli.host.
ns3.intelli.host.
[email protected]==
ns1.intelli.host.
ns2.intelli.host.
ns4.intelli.host.
ns3.intelli.host.

步骤 4:咨询万能的 dnsviz,了解 DNSSEC 不一致问题

看起来不错。

第五步:重新评估问题

您最初的问题表明 Pingdom 报告了 ns1、ns3 和 ns4 的问题。当我通过 Pingdom 运行相同的检查时,我收到了另一组名称服务器的错误:

代表团

名称服务器 ns2.intelli.host 列在区域 intelli.host 中,但没有地址信息。

名称服务器 ns4.intelli.host 在区域 intelli.host 中列出,但没有地址信息。

  • ns4 的错误仍然存​​在。
  • ns1 和 ns3 的错误已消失。
  • ns2 的错误是新的。

此时,我评估了不一致现象出现在父名称服务器的可能性:

$ for ns in {a..d}; do echo ==@$ns.nic.host==; dig @$ns.nic.host +noall +question +authority +additional intelli.host; done
[email protected]==
;intelli.host.                  IN      A
intelli.host.           3600    IN      NS      ns1.intelli.host.
intelli.host.           3600    IN      NS      ns2.intelli.host.
intelli.host.           3600    IN      NS      ns3.intelli.host.
intelli.host.           3600    IN      NS      ns4.intelli.host.
ns1.intelli.host.       3600    IN      A       129.232.201.203
ns2.intelli.host.       3600    IN      A       129.232.201.205
ns3.intelli.host.       3600    IN      A       13.80.126.179
ns4.intelli.host.       3600    IN      A       40.121.91.245
[email protected]==
;intelli.host.                  IN      A
intelli.host.           3600    IN      NS      ns1.intelli.host.
intelli.host.           3600    IN      NS      ns3.intelli.host.
intelli.host.           3600    IN      NS      ns2.intelli.host.
intelli.host.           3600    IN      NS      ns4.intelli.host.
ns1.intelli.host.       3600    IN      A       129.232.201.203
ns2.intelli.host.       3600    IN      A       129.232.201.205
ns3.intelli.host.       3600    IN      A       13.80.126.179
ns4.intelli.host.       3600    IN      A       40.121.91.245
[email protected]==
;intelli.host.                  IN      A
intelli.HOST.           3600    IN      NS      ns3.intelli.host.
intelli.HOST.           3600    IN      NS      ns2.intelli.host.
intelli.HOST.           3600    IN      NS      ns1.intelli.host.
intelli.HOST.           3600    IN      NS      ns4.intelli.host.
ns1.intelli.HOST.       3600    IN      A       129.232.201.203
ns2.intelli.HOST.       3600    IN      A       129.232.201.205
ns3.intelli.HOST.       3600    IN      A       13.80.126.179
ns4.intelli.HOST.       3600    IN      A       40.121.91.245
[email protected]==
;intelli.host.                  IN      A
intelli.HOST.           3600    IN      NS      ns2.intelli.host.
intelli.HOST.           3600    IN      NS      ns4.intelli.host.
intelli.HOST.           3600    IN      NS      ns1.intelli.host.
intelli.HOST.           3600    IN      NS      ns3.intelli.host.
ns1.intelli.HOST.       3600    IN      A       129.232.201.203
ns2.intelli.HOST.       3600    IN      A       129.232.201.205
ns3.intelli.HOST.       3600    IN      A       13.80.126.179
ns4.intelli.HOST.       3600    IN      A       40.121.91.245

请注意,C 和 D 的响应中 .HOST 的大小写发生了变化。此时,我怀疑最可能的情况是,当尝试对混合大小写的 DNS 实体进行比较时,Pingdom 出现问题,根据 DNS 标准,这将是一个错误。

相关内容