DNS记录传播需要多长时间?


68

这是关于DNS传播的规范问题

各种类型的记录传播需要多长时间?
有些传播比其他传播快吗?
为什么DNS记录传播需要花费时间,它如何工作?


1
注意:从历史上看,更新不同类型的记录所花费的时间存在显着且显着的差异(取决于保留这些记录的人员等)。今天已不再如此。
克里斯·S

4
当ppl对DNS使用单词“ propagate”时,它清楚地表明他们不知道DNS是什么以及它如何工作。让我们希望文档能够足够快地“传播”(交叉手指)。
poige

3
@tonygil请参阅Poige的评论。没有dns传播之类的东西。另外,ISP不控制根服务器。如果这些ISP的DNS服务器缓存的时间比记录的TTL长,那么它们违反了RFC。您似乎对DNS的工作方式有一些误解。但违反RFC通常会破坏其应有的工作方式。这与美国或欧洲无关。
克里斯S

1
@tonygil:“使”他们更新的“网络警察”是所有系统管理员,网络管理员等,对不良行为者施加社会压力。互联网之所以有效,是因为我们都同意这样做。用户,网络等的最大利益体现在互联网的“最大利益”上。回复:“用户不是技术专家”-这是专业系统管理员而非最终用户的网站。坦白说,我希望系统管理员成为一种“ technoguru”(使用您的术语)。系统管理员,按职业,应该关心这个东西是如何工作的。
埃文·安德森

@EvanAnderson我完全同意,压力促使变革。另一方面,事实是懒惰或不称职的系统管理员成群结队。而且您离美国和欧洲的距离越远,他们就越频繁。您的期望很好4美国,但在现实世界中大多数地方(这是未经准备的系统管理员),这是不可行的。因此,尽管您希望一切都很好,但您应该应对现实世界,而现实世界并非如此。无论如何,我说的是,你说的是你的。让我们同意不同意。
tony gil

Answers:


71

本质上,“ DNS传播”不是一个真正的现象。相反,它是DNS协议中指定的缓存功能的明显效果。说在DNS服务器之间更改“传播”是一个方便的错误,可以说,与描述DNS协议的所有详细信息相比,向非技术用户更容易解释。不过,协议的工作原理并非如此。

递归DNS服务器代表客户端进行查询。客户端计算机通常使用ISP或IT部门运行的递归DNS服务器来解析Internet资源的名称。递归DNS服务器缓存其查询结果,以提高效率。无需进行任何其他查询就可以回答对已缓存信息的查询。缓存结果的持续时间(以秒为单位)基于称为生存时间(TTL)的可配置值。此值由权威DNS服务器为查询的记录指定。

由于DNS是一种分布式协议,因此没有一个问题可以回答所有问题。DNS的行为取决于给定记录的权威DNS服务器的配置,代表客户端计算机进行查询的递归DNS服务器的配置以及客户端计算机操作系统中内置的DNS缓存功能。

优良作法是指定一个TTL值足够短,以适应DNS记录的日常必要更改,但又要足够长,以在缓存中创造一个“胜利”(即不要太短,以至于缓存过期太快而无法提供任何效率改善)。采用具有TTL值的平衡策略会为每个人带来“胜利”。它可以减少给定域的权威DNS服务器,根服务器和TLD服务器的负载和带宽利用率。它为递归DNS服务器的运营商降低了上行带宽利用率。这样可以更快地查询客户端计算机。

由于设置了DNS记录的TTL,较低的负载和权威DNS服务器上的带宽利用率将增加,因为递归DNS服务器将无法长时间缓存结果。由于记录的TTL较高,因此对记录的更改似乎不会很快“生效”,因为客户端计算机将继续接收存储在其递归DNS服务器上的缓存结果。设置最佳TTL归结为利用率与快速更改记录并查看反映在客户端上的更改之间的平衡。

值得注意的是,某些ISP滥用并且忽略了由权威DNS服务器指定的TTL值(替换为它们自己的管理替代,这违反了RFC)。从技术的角度来看,这没有什么可做的。如果可以定位滥用DNS服务器的运营商,则他们的系统管理员可能会抱怨他们会实施最佳实践(对于熟悉DNS的网络工程师来说,这可能是常识)。这种特殊类型的滥用不是技术问题。

如果每个人都“按规则行事”,对DNS记录的更改很快就会 “生效”。例如,在更改分配给“ A”记录的IP地址的情况下,将执行TTL值的指数补偿,从而导致进行更改的时间。例如,TTL可能从1天开始,然后在24小时内减少到12小时,然后在12小时内减少6小时,在6小时内减少3小时,等等,直到某个适当的小间隔。一旦取消了TTL,就可以更改记录,并且可以将TTL恢复到日常操作所需的值。(不必使用指数退避,但是此策略可最大程度地减少记录的TTL较低的时间,并减少权威DNS服务器上的负载。)

进行DNS记录更改后,应监视日志以查找由于旧DNS记录而导致的访问尝试。在将“ A”记录更改为引用新IP地址的示例中,服务器应保留在旧IP地址处,以处理由于客户端计算机仍在使用旧“ A”记录而导致的访问尝试。一旦基于旧记录的访问尝试达到了可以接受的低水平,则可以废弃旧IP地址。如果与旧记录相关的请求没有迅速减少,则递归DNS服务器可能会忽略权威TTL(如上所述)。但是,知道访问尝试的源IP地址不会提供有关负责提供旧记录的递归DNS服务器的直接信息。

就个人而言,几天后,我看到变化立即“生效”,并且在某些情况下使用特定的大脑受损ISP。减少TTL并注意该过程如何工作将增加成功的更改,但是您永远无法确定某些好意的白痴可能会对它们的递归DNS服务器做什么。


9
这不是有关“ OpenDNS”的答案,而是有关DNS的答案。任何递归DNS提供商都可以实现他们想要允许缓存清除等的任何接口。我们在谈论DNS,而不是供应商API。就您的编辑而言:我支持“大脑受损”一词,这是在黑客文化中长期使用的短语,并且在这种情况下使用它(请参阅术语表文件,史蒂文·利维的“黑客”等) 。就“愚蠢”而言,我认为可以合理地确定,在法律法规之外,这是不称职行为的通俗术语。我也支持它。
埃文·安德森

11
@tonygil-OpenDNS不是DNS。这只是某人提供的服务。如果FooDNS明天开放并且具有一些令人兴奋的新缓存清除API怎么办?我的答案也应该包括吗?它在哪里停下来?这简直是​​疯狂。关于:公民权利-我不是拒绝保护类成员享有公民权利的雇主或政府实体。当然-继续前进,看看您是否可以找到某人要起诉我。他们可以通过邮政信箱852(俄亥俄州特洛伊)与我联系。(866)569-9799,x801转发到我的手机24x7。(看看我的个人资料,那是一些出色的侦探工作,顺便说一句。)
Evan Anderson

1
你知道,你说同伴的压力带来了改变。那就是我所做的。引起我们注意,我不同意您对“白痴”和“脑残”的使用,因为它们令人反感和贬损。某人(例如黑客)大量使用它的事实并不正确。kkk大量使用了n字。请尊重我们那些照顾智障人士的人。我了解您以五颜六色的方式隐喻地包含了这些术语,但请相信我:它们令人反感且不必要。
Tony gil

关于TTL均匀化:TTL是将事物保留在缓存中的最大值,缓存解析器可以随意丢弃数据。因此,他们可以根据需要降低它。但是,确实不应该增加它,这违反了协议。但是对于在TTL中放置大约1秒的人来说,某些缓存通过不尊重它并在大约5分钟内钳位来捍卫自己。
Patrick Mevzek '18年

递归DNS服务器通常由ISP或IT部门运行,如今它们是由开放递归名称服务器(如1.1.1.1or 8.8.8.89.9.9.9or )组成的庞大团队(Anycast云)80.80.80.80。重要的是要了解它们是任意广播的:答复可能会根据源IP进行更改,因为它可能会命中一个完全不同的物理实例,并且它们拥有的缓存可能对所有实例都是全局的。
Patrick Mevzek '18年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.