如何理解 dig 命令输出中的 TTL 值?

如何理解 dig 命令输出中的 TTL 值?

我正在阅读有关如何域名系统工作一般。来自TTL 的 wiki 条目, 我明白TTL(生存时间)发生在域名系统中(域名系统),它们由权威名称服务器为特定资源记录设置。当缓存(递归)名称服务器向权威名称服务器查询资源记录时,它将将该记录缓存 TTL 指定的时间(以秒为单位)。

现在,我需要使用 Linux CLI 工具 ( dig) 来找出权威名称服务器中设置的实际 TTL,因此使用了如下命令。

dig +trace +nocmd +noall +answer +ttlid a www.stackoverflow.com

#I have omitted the root name server output for better readability. 

www.stackoverflow.com.  300 IN  CNAME   stackoverflow.com.
stackoverflow.com.  300 IN  A   198.252.206.140
;; Received 80 bytes from 173.245.59.4#53(cf-dns02.stackoverflow.com) in 9 ms

正如我从A的记录stackoverflow.com., 的TTL权威名称服务器中的值为 300。

那么,这是否意味着,如果我搜索stackoverflow.com300 秒或 5 分钟后, 的 IP 地址stackoverflow.com就会从域中一路解析出来.com

答案1

不;并非一直来自.com域(实际上我认为您的意思是来自根域?)。

NS 记录的 TTL 为 172800,因此它们的缓存时间比CNAME 记录和A 记录stackoverflow.com的 300 秒长很多。因此,在这些 CNAME 和 A 记录过期后,NS 记录可能仍会被缓存,因此可以询问这些名称服务器(然后)。www.stackoverflow.comstackoverflow.comwww.stackoverflow.comstackoverflow.com

顺便说一句,我不会同时给出两者,www.stackoverflow.com而且stackoverflow.comTTL 仅为 300,这意味着 DNS 请求数量增加了一倍,但恕我直言,没有任何立即明显的优势。

相关内容