DNS:为区域设置的 NS 名称是否必须与上游 TLD 服务器报告的 NS 名称匹配?

Kri*_*n B 5 dns configuration nameservers

我注意到有几个服务提供商正在为其客户的域运行 DNS 服务,为该区域设置了 NS 名称并由权威名称服务器(在授权部分/NS 和 SOA 记录中)返回,这些名称与返回的 NS 名称不匹配由上游服务器(例如 TLD 服务器)和用于查找的。

例子:

$ dig the-domain-name-here.com NS

; <<>> DiG 9.4.2-P1 <<>> the-domain-name-here.com NS
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7844
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2

;; QUESTION SECTION:
;the-domain-name-here.com.          IN      NS

;; ANSWER SECTION:
the-domain-name-here.com.   172370  IN      NS      ns1.service-provider-here.net.
the-domain-name-here.com.   172370  IN      NS      ns2.service-provider-here.net.

;; ADDITIONAL SECTION:
ns1.service-provider-here.net.      7200    IN      A       192.168.100.1
ns2.service-provider-here.net.      7200    IN      A       192.168.100.2

;; Query time: 65 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Wed Mar 11 19:44:00 2009
;; MSG SIZE  rcvd: 118
Run Code Online (Sandbox Code Playgroud)

$ dig @ns1.service-provider-here.net。the-domain-name-here.com

; <<>> DiG 9.4.2-P1 <<>> @ns1.service-provider-here.net  the-domain-name-here.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48010
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;the-domain-name-here.com.          IN      A

;; ANSWER SECTION:
the-domain-name-here.com.   86400   IN      A       192.168.100.3

;; AUTHORITY SECTION:
the-domain-name-here.com.   86400   IN      NS      ns1.different-trade-name.net.
the-domain-name-here.com.   86400   IN      NS      ns2.different-trade-name.net.

;; Query time: 68 msec
;; SERVER: 192.168.100.1#53(192.168.100.1)
;; WHEN: Wed Mar 11 19:46:00 2009
;; MSG SIZE  rcvd: 100
Run Code Online (Sandbox Code Playgroud)

gTLD 服务器说名称服务器是 ns1.service-provider-here.net,当我们在该服务器上查找名称时,它给出了权威答案,但在授权部分泄漏了不同的 NS 名称(ns1.different-trade-name 。网)。

以这种方式配置了数千个域。它似乎没有引起任何问题,但它似乎大错特错。

这真的重要吗?是否会出现解析器/客户端会因此进行额外查找甚至无法解析名称的情况?

bor*_*yer 5

嗯,答案取决于观点。

从技术上讲,毫无疑问,父级和区域之间的任何差异都是错误的。它永远不应该发生(一些注册管理机构使用自动工具来检查,例如Zonecheck in .fr)。

实际上,这种情况经常发生。最常见的原因是人们更改了其区域中的 NS 记录,却忘记告知注册管理机构(或注册商,如果注册管理机构强制您通过中间人)有关更改的信息。

真的有关系吗?好吧,正如你所说,只要两个集合之间存在非空交集,它就应该起作用。但依赖它是危险的,因为再进行一次更改,两组可能会完全分开。因此,接受差异并不是一个好主意。

从法律上讲,子区域永远是正确的,父区域中的NS记录不具有权威性。解析器必须用他们在子区域中找到的列表替换委托。


Zor*_*che 2

如果父级具有引用该区域权威 DNS 服务器的有效记录,则解析应该大部分有效。

我可以想到至少一种情况,如果您有不同的记录和其他一些错误配置,它们可能会成为问题。

该问题与区域更新时名称服务器如何发出通知有关。例如,当您在主 DNS 服务器上使用绑定时,您更新区域然后重新加载,绑定将向区域中列出的所有服务器发送更新通知。如果他们是另一个权威服务器,在主区域中没有 NS 记录,那么它不会收到通知,并且会拥有较旧的数据。如果父级指向该服务器未获取更新,那么您可能会遇到问题,因为该服务器将提供数据结果不足。

另外,请记住,存在“水平分割”DNS 之类的东西。有时,您需要向网络内的内部主机提供与向公众显示的区域不同的视图。当您比较名称服务器记录时,请确保从相同的角度查看该区域。