pno*_*ata 17 networking dns internet domain dynamic-dns
我对 DNS 核心功能的理解是在域名(例如blah-whatever.com
)和 IP 地址(例如100.2.3.4)之间提供命名/映射服务。
此外,我对 Internet DNS 服务器如何工作的理解是,当域/IP 映射记录发生更改时(例如,更改blah-whatever.com
为现在指向105.2.3.4等),此更改需要在世界上的每个 DNS 服务器上传播之前的改动可以说是“完成”了。这种传播期有时可持续长达 24 小时。
所以首先,如果我到目前为止所说的任何内容是误导或不正确的,请首先纠正我!
假设我或多或少是正确的,我不明白像 CloudFlare 或 DynamicDNS 这样的公司如何提供“即时翻转”类型的服务,您可以通过这些服务更改您的 DNS 记录并且 -繁荣- 更改会立即生效。
我知道有一种叫做“TTL”的东西(我认为是生存时间?!?)在这种即时翻转功能中发挥作用,但由于我已经对开始的能力感到模糊,因此很难理解是什么这个 TTL 是或者它服务的目的是什么。
所以我问:动态 DNS 及其竞争对手是什么让他们能够立即更改 DNS 映射(无需像其他人一样花费 24 小时来传播 DNS 更改),以及 TTL 如何适应这个过程?提前致谢。
Ale*_*lex 20
你有一些误解,所以我会试着解释整个过程。(因为我参与了公共动态 DNS 服务的运营,所以我很了解细节)。
假设您的域是example.com,假设由某个动态 DNS 公司托管的 example.com 域,我们称之为lightfastdns.net(虚构名称)。您的域包含 DNS 记录 - somehost.example.com,当前指向1.1.1.1。
当您更改 DNS 记录时,此更改首先提交到某个由 lightfastdns.net 运营的中间服务器,例如updates.lightfastdns.net。这几乎立即发生(在几分之一秒内)。您可以通过 Web 界面或使用动态更新客户端或通过某些 API 提交更新。没关系,无论如何,此更新将到达处理 DNS 更新的某些服务器上。
此更新服务器将您更新的记录(比方说,1.2.3.4)推送到您域的“主”DNS 服务器。此 DNS 服务器也由lightfastdns.net运营。发生的速度有多快:取决于 DNS 提供商如何设计他们的软件。(可以是即时的,也可以是每 24 小时一次。例如 gandi.net 每小时推送一次 DNS 更新。)当然,我们的lightfastdns.net会立即进行。
此主DNS 服务器会将更新推送到example.com域的从属DNS 服务器。该服务器也由同一家lightfastdns.net公司运营。这发生的速度有多快:使用现代软件,master会立即向slaves发送 NOTIFY 消息,他们将立即从 master 获取更新的记录。对于较旧的软件,我们在 SOA 记录中有 REFRESH 和 RETRY 值,但今天它很少相关。当然,我们的lightfastdns.net实现了 NOTIFY 并且更新会立即传播。
我们现在拥有的是您域的所有“权威”服务器都收到了更新的记录 ( 1.2.3.4 )。对于lightfastdns.net大约需要两秒钟。
现在,我们将搬到伊万在俄罗斯的家,伊万想在他的浏览器中打开“ somehost.example.com ”。如果他以前从未打开过,他的浏览器不知道地址,所以浏览器会询问他的操作系统。但是,如果他最近访问了该站点,该地址可能仍存储在浏览器中,他将使用旧的(过时的)地址!多长时间 ?- 取决于浏览器,例如 Google Chrome 浏览器最多只能存储 60 秒的 DNS 记录。我们有长达 60 秒的延迟。为此,我想说 DNS 更改尚未传播到此浏览器。
无论如何,在 60 秒后或立即,浏览器最终会要求操作系统获取地址。操作系统可能已经知道(旧的、过时的)答案,并将其返回,在这种情况下,我会说新记录尚未传播到 Ivan 的操作系统。操作系统将存储旧值的时间 - 由TTL参数控制的现代操作系统。DNS 中的TTL定义了一条记录可以在缓存中存储多长时间。我们的lightfastdns.net允许使用相当低的 TTL - 30 秒,因此我们获得了最多 30 秒的新延迟,总体而言 -到目前为止是90 秒。
如果操作系统不知道答案,或者如果它知道的答案现在已被 TTL 过时,操作系统将询问 DNS 解析器(Ivan 的 ISP 为他分配了一个 DNS 解析器dns.moscow-telecom.ru)。在这里,旧记录可能会被缓存到 TTL 秒,或者dns.moscow-telecom.ru可能不知道地址。我们还有 30 秒,因为 dns.moscow-telecom.ru也缓存 DNS 的时间不超过 TTL 值。我们有120 秒的延迟。这就是所谓的新 DNS 记录尚未传播到莫斯科电信的DNS 服务器。
如果ISP的DNS服务器不知道答案,或者如果它知道答案是已经过时了,因为它的TTL过期- dns.moscow-telecom.ru会问的一个权威DNS服务器example.net(你还记得他们吗?)。那些在大约 118 秒前获得更改的人将返回新答案,此答案将立即通过链发送到 DNS 解析器、操作系统和 Ivan 的浏览器。
因此,传播记录需要 2 到 120 秒,具体取决于各种缓存的状态。更长的 TTL - 可能会发生更长的延迟。
为了使其完整 -一些ISP 违反标准并长期缓存记录。一些较旧的操作系统长时间保持旧记录,旧浏览器也是如此。但对于大多数用户来说,它会按预期工作。
我之前的回答包含虚假信息,因为我对 DNS 更改的传播方式有一些误解。所以这是第二次尝试。有关详细说明,我鼓励您阅读Alex 的回答。
据我了解,DNS 更改传播的速度涉及两个因素:
鉴于您需要两个不同的名称服务器来管理一个区域,您希望这些服务器能够快速获得该区域的最新版本。
这可以通过以固定时间间隔拉取该区域的最新版本或等待来自授权名称服务器的NOTIFY来实现。
鉴于该机制完全由运行名称服务器的人控制,因此该区域的任何延迟都可以完全控制。
TTL是为区域中的每个资源记录指定的超时。该值定义非权威 DNS 提供商应缓存记录的时间长度。
请记住,只有当现有记录发生更改时,该值才会发挥作用。新记录尚无法缓存。
鉴于 TTL 也完全由控制该区域的人控制,因此延迟也可以完全控制。
归档时间: |
|
查看次数: |
11301 次 |
最近记录: |