gpt4 book ai didi

dns - DNS 传播是否依赖于 TTL?

转载 作者:行者123 更新时间:2023-12-04 14:31:06 40 4
gpt4 key购买 nike

我对 TTL 和传播时间的概念有点困惑,我想澄清一些我没有设法在网上找到具体答案的事情。

AFAIK,TTL(生存时间)表示世界各地的服务器更新特定 DNS 的缓存值所需的(最高)时间。

所以...

  • 如果我更改 DNS 记录,此更改是否会立即发生,需要 TTL 时间在全局范围内更新?还是只有在 TTL 时间过后,这些更改才会更新,然后开始在世界范围内传播?
  • 每个服务器都会以TTL间隔定期检查DNS,对吗?因此,如果服务器检查 TTL 为 14400 的 DNS 记录,然后我立即更改它,服务器将在略低于 14400 之后更新其缓存。如果我碰巧在检查之前更改它,它将更新几乎立即。
  • DNS 记录(例如 MX)的 TTL 值是否取决于其他 TTL 值或更新时间,例如覆盖/扩展其实际生存时间(例如,SOA 刷新时间)的更一般元素的更新时间?换句话说,如果我只关心更新 MX 记录并且我需要每 4 小时更新一次,我是否需要为这些 MX 记录设置除 TTL 之外的任何其他内容?
  • TTL 是特定 DNS 记录将在世界范围内更新的(理论)限制吗?尽管实际更新时间差异很大,但据我所知,由于服务器保留自己的缓存时间。
  • 最佳答案

  • 没有“传播”,只有缓存。因此,当您在权威服务器上更新记录时,它会立即在那里更改。一旦缓存过期,缓存服务器将更新它们的数据。

  • 例如,我将从我的个人域中查询我公司的本地 DNS 服务器以获取一个主机名。我的域的权威名称服务器在AWS,记录ata3ias.test.bajic.nl配置了TTL 120和IP地址127.0.0.5:

    首先我将查询权威的 AWS 名称服务器:
    [root@foo ~]# dig ata3ias.test.bajic.nl @ns-1695.awsdns-19.co.uk
    ...
    ;; ANSWER SECTION:
    ata3ias.test.bajic.nl. 120 IN A 127.0.0.5
    ;; WHEN: Thu Dec 29 12:43:13 2016

    然后我将IP地址改为127.0.0.6并再次查询:
    [root@foo ~]# dig ata3ias.test.bajic.nl @ns-1695.awsdns-19.co.uk
    ...
    ;; ANSWER SECTION:
    ata3ias.test.bajic.nl. 120 IN A 127.0.0.6
    ;; WHEN: Thu Dec 29 12:43:22 2016

    接下来,我将查询我公司的内部 DNS 服务器(我可以放心地假设之前没有人尝试解析此地址并且 DNS 服务器的缓存中没有条目):
    [root@foo ~]# dig ata3ias.test.bajic.nl @10.0.0.5
    ...
    ;; ANSWER SECTION:
    ata3ias.test.bajic.nl. 119 IN A 127.0.0.6
    ;; Query time: 26 msec
    ;; WHEN: Thu Dec 29 12:46:20 2016

    注意 TTL,还要注意 Query 时间:缓存服务器查询权威 DNS 服务器,得到带有 TTL 的响应并记住该信息。

    现在,如果我再做一次:
    [root@foo ~]# dig ata3ias.test.bajic.nl @10.0.0.5
    ...
    ;; ANSWER SECTION:
    ata3ias.test.bajic.nl. 107 IN A 127.0.0.6
    ;; Query time: 0 msec
    ;; WHEN: Thu Dec 29 12:46:32 2016

    这个答案是从缓存中提供的,您可以通过 TTL 看到(因此,缓存服务器不仅会将数据保留在缓存中 TTL 时间,还会将有关剩余 TTL 的信息传递给客户端),并且您也可以看到它解析查询花费了 0 毫秒(因为不需要联系权威名称服务器)。

    然后我将再次转到 AWS 控制台编辑 IP 地址并将其更改为 127.0.0.7。为了确认更改,我将再次直接查询权威服务器:
    [root@foo ~]# dig ata3ias.test.bajic.nl @ns-1695.awsdns-19.co.uk
    ;; ANSWER SECTION:
    ata3ias.test.bajic.nl. 120 IN A 127.0.0.7
    ;; WHEN: Thu Dec 29 12:47:10 2016

    现在我将再次查询内部 DNS 服务器:
    [root@foo ~]# dig ata3ias.test.bajic.nl @10.0.0.5
    ;; ANSWER SECTION:
    ata3ias.test.bajic.nl. 63 IN A 127.0.0.6
    ;; WHEN: Thu Dec 29 12:47:16 2016

    它仍在提供旧数据,并将再提供 63 秒。一分钟后:
    [root@foo ~]# dig ata3ias.test.bajic.nl @10.0.0.5
    ;; ANSWER SECTION:
    ata3ias.test.bajic.nl. 3 IN A 127.0.0.6
    ;; WHEN: Thu Dec 29 12:48:16 2016

    最后,几秒钟后,内部 DNS 服务器将提供新信息:
    [root@foo ~]# dig ata3ias.test.bajic.nl @10.0.0.5
    ;; ANSWER SECTION:
    ata3ias.test.bajic.nl. 119 IN A 127.0.0.7
    ;; WHEN: Thu Dec 29 12:48:21 2016
  • 确切地。
  • 通常,SOA TTL 值仅与主和辅助(从)名称服务器之间的同步有关,因此不,您不需要为 MX 记录设置除 TTL 以外的任何内容。您可以找到所有 SOA TTL 记录的详细说明 here
  • 对于表现良好的服务器,是的。对于其他人,您无能为力。
  • 关于dns - DNS 传播是否依赖于 TTL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41358331/

    40 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com