注册商指向我们的名称服务器,我们的名称服务器指向它们自己。如果您查询注册商或我们自己的名称服务器,您会得到相同的响应。但它们有不同的 TTL。客户会尊重哪个 TTL?
$ dig dotser.ie ns @b.iedr.ie
; <<>> DiG 9.8.1-P1 <<>> dotser.ie ns @b.iedr.ie
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1393
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 3, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;dotser.ie. IN NS
;; AUTHORITY SECTION:
dotser.ie. 172800 IN NS ns0.reg365.net.
dotser.ie. 172800 IN NS ns2.reg365.net.
dotser.ie. 172800 IN NS ns1.reg365.net.
;; Query time: 27 msec
;; SERVER: 77.72.72.34#53(77.72.72.34)
;; WHEN: Thu Sep 11 13:46:12 2014
;; MSG SIZE rcvd: 91
$ dig dotser.ie ns @ns0.reg365.net
; <<>> DiG 9.8.1-P1 <<>> dotser.ie ns @ns0.reg365.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64285
;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;dotser.ie. IN NS
;; ANSWER SECTION:
dotser.ie. 86400 IN NS ns2.reg365.net.
dotser.ie. 86400 IN NS ns1.reg365.net.
dotser.ie. 86400 IN NS ns0.reg365.net.
;; Query time: 41 msec
;; SERVER: 85.233.160.79#53(85.233.160.79)
;; WHEN: Thu Sep 11 13:46:28 2014
;; MSG SIZE rcvd: 91
已经提出了一个非常相似的问题,但它接受的(也是唯一的)答案建议了针对特定问题的解决方法,而不是实际回答理论问题。
另一个类似的问题实际上并不完全相同:它询问名称服务器是否将被缓存比 A 记录更长的时间。(无论如何,那里的答案似乎都没有回答我的问题。)
客户端不会向您的名称服务器询问 NS 记录;它当时已经知道那些(否则它无法询问您的名称服务器......)。
因此,客户将查看注册商的 TTL。
简短的答案是最后一个权威的答案。这应该来自您的服务器。
如果 DNS 服务器没有名称服务器的值,则必须遍历树。注册商应发送非权威名称服务器列表。
注册商为您的名称服务器提供的 TTL 将被您的名称服务器覆盖。来自您的名称服务器的请求的授权部分将包括您的名称服务器列表和服务器持有的 TTL 值。不同的名称服务器可能具有不同的区域信息和不同的 TTL 值,但它们应该相对较快地收敛。
缓存 DNS 服务器应基于此更新其 TTL。来自缓存的 DNS 响应的非权威响应应显示剩余的 TTL,直到记录过期。
在根级别,DNS 服务器
.ie
具有指向以下内容的NS
记录:dotser.ie
所以只有这三台服务器会被客户端查询(除非客户端使用一些非默认的 DNS 解析)。根据我的查找,这三台服务器都具有相同的 TTL 21599。