DNS TTL 权威与非权威

DNS TTL 权威与非权威

我对使用权威与非权威进行 DNS 查询时得到的响应感到困惑,非常感谢您能帮助澄清。

当我使用权威服务器查询 www.google.com 时:

nslookup -debug www.google.com ns1.google.com

ANSWERS:
    ->  www.google.com
        internet address = 172.217.195.147
        ttl = 300 (5 mins)

当我使用非权威服务器查询 www.google.com 时:

nslookup -debug www.google.com 8.8.8.8

ANSWERS:
    ->  www.google.com
        internet address = 216.58.192.132
        ttl = 235 (3 mins 55 secs)

如您所见,权威服务器的 TTL 是原始值 300,但非权威服务器的 TTL 是显示在过期之前还剩多少时间的值(正在倒计时)。

  1. 对于非权威的情况,TTL 是否真的来自非权威服务器,或者是否以某种方式显示我的系统上的缓存?

  2. 如果有人使用非权威服务器作为其 DNS 解析器,那么是否意味着他们必须遵守返回的内容,因此在 TTL 返回 1 的情况下,他们必须在 1 秒后再次刷新?

答案1

  1. 如果查询的值不在非权威服务器的缓存中,它将从权威服务器获取该值。此服务器将指定 TTL,在本例中为 300。然后,非权威服务器将返回 TTL 为 300 的答案。如果 100 秒后再次查询相同的值,非权威服务器将在缓存中找到它,但由于已过去 100 秒,它将返回 TTL 为 200(300-100)的答案。

  2. 是的,如果剩余 TTL 为 1,则该条目将在 1 秒后过期,必须刷新。由于该值在非权威服务器的缓存中也已过期,因此非权威服务器将再次查询权威服务器,并返回 TTL 为 300 的答案。

    当原始 TTL 为 300 时,TTL 为 1,意味着权威服务器在 299 秒前被查询(300-1),并且最初授予的 TTL 只剩下一秒。

基本上,权威服务器在任何时候给出的每个答案都会在 300 秒后过期,无论它被缓存在何处,在非权威服务器中,在查询非权威服务器的解析器中等等。

相关内容