注册商指向我们的名称服务器,而我们的名称服务器指向它们自己。如果您查询注册商或我们自己的名称服务器,您会得到相同的响应。但它们具有不同的 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 记录更长。(无论如何,那里的答案似乎都没有回答我的问题。)
答案1
客户端不会向您的名称服务器询问 NS 记录;它已经知道这些了(否则它就无法询问您的名称服务器......)。
因此客户将查看来自注册商的 TTL。
答案2
简短的回答是最后一个权威答案。这应该来自您的服务器。
如果 DNS 服务器没有该名称服务器的值,则必须遍历树。注册商应发送非权威的名称服务器列表。
注册商为您的名称服务器提供的 TTL 将被您的名称服务器覆盖。来自您的名称服务器的请求的授权部分将包括您的名称服务器列表和该服务器持有的 TTL 值。不同的名称服务器可能具有不同的区域信息和不同的 TTL 值,但它们应该会相对较快地收敛。
缓存 DNS 服务器应根据此更新其 TTL。缓存 DNS 响应的非权威响应应显示剩余的 TTL,直到记录过期。
答案3
在根级别,DNS 服务器.ie
具有指向以下内容的NS
记录dotser.ie
:
dotser.ie. 21210 IN NS ns2.reg365.net.
dotser.ie. 21210 IN NS ns1.reg365.net.
dotser.ie. 21210 IN NS ns0.reg365.net.
因此,只有这三台服务器才会被客户端查询(除非客户端使用一些非默认 DNS 解析)。根据我的查询,这三台服务器都具有相同的 TTL 21599。