我有一个 DNS 服务器,我在其中放置了 TTL 设置为 0 的 A 记录:
example.host.com <some.ip.addr.one>
那我就做
dig example.host.com
并获取指定的ip地址。后来我改了更新记录
example.host.com <some.ip.addr.two>
dig
并再次执行
但是解析的ip仍然是<some.ip.addr.one>
在参考 DNS 服务器管理 UI 时,我看到该记录已更改,但仍解析为旧记录。
什么可以缓存DNS?我有一个 dnsmasq 服务,但它的缓存大小设置为 0。
有什么方法可以检测 DNS 记录的解析方式以及导致此行为的原因吗?有任何想法吗?提前致谢。
答案1
DNS 是按设计缓存的。当你更新一条记录时,你需要设置一个新的序列号,一旦旧的 TTL 过期,旧序列号的服务器就会注意到。
您的问题表明您不熟悉这些概念,但这些概念非常基础。在深入研究之前,您可能需要进一步熟悉 DNS 世界。
dig
产生相当多的输出,说明它从哪里获取结果以及它到底意味着什么,但同样,您可能需要在实践之前阅读它。