我正在查询google.com
,dig
但很难理解为什么 TTL 值有时跳来跳去而不是每秒均匀减少(这是我的期望)。我在这里遗漏了什么?
dig
这是我在安装了 DiG 9.16.7(来自 BIND 9 发行版)的 Windows 机器上所做的事情。
c:\>for /l %i in (1,1,10) do @(sleep 1 & dig @1.1.1.1 +noall +answer google.com)
google.com. 163 IN A 172.217.19.110
google.com. 168 IN A 172.217.19.110
google.com. 166 IN A 172.217.19.110
google.com. 166 IN A 172.217.19.110
google.com. 157 IN A 172.217.19.110
google.com. 160 IN A 172.217.19.110
google.com. 163 IN A 172.217.19.110
google.com. 160 IN A 172.217.19.110
google.com. 163 IN A 172.217.19.110
google.com. 156 IN A 172.217.19.110
第一个响应的 TTL 为 163,第二个响应的 TTL 为 168,等等...我的预期是 TTL 不断减少直至达到零。
然后我搜索了一下,似乎dig
没有使用主机(操作系统级别或其他)DNS缓存(就像浏览器那样),这解释了为什么数字没有减少,但是,它并没有回答为什么它到处都是。
如果我没有指定 1.1.1.1 作为名称服务器而是依赖我的 IPS,那就更奇怪了。
c:\>for /l %i in (1,1,10) do @(sleep 1 & dig +noall +answer google.com)
google.com. 56 IN A 172.217.18.78
google.com. 55 IN A 172.217.18.78
google.com. 54 IN A 172.217.18.78
google.com. 52 IN A 172.217.18.78
google.com. 50 IN A 172.217.18.78
google.com. 47 IN A 172.217.18.78
google.com. 48 IN A 172.217.18.78
google.com. 45 IN A 172.217.18.78
google.com. 6 IN A 172.217.19.110
google.com. 64 IN A 172.217.19.110
我也尝试过,nslookup -debug google.com
但是我对 TTL 值的经历与 一样dig
。
我这里遗漏了什么?感谢您的意见。
答案1
1.1.1.1
任何其他类似的公共 DNS 解析器背后都有多个盒子。因此,从技术上讲,所有这些盒子都可以共享其 DNS 缓存,也可以不共享。
如果没有的话,每个缓存都会有不同的记录集,并且与它们关联的TTL也不同。
您观察到的情况可能看起来令人费解,但对 DNS 服务没有任何负面影响。