如果某人获得您的 DNS 控制权并在您的域名上设置 100 年的 TTL,同时将其 IP 指向某个鲜为人知的网站,会发生什么?
(当然你发现得太晚了)
答案1
Ryan 对你的问题的一个解释给出了极好的答案。但是考虑到我们的目标受众以及最有可能遇到这个问题的人的情况,我将回答另一个问题。
当错误的 TTL 流传开来时,公司会做什么?
您在这里有几个选择。但首先,您需要确定问题向量并消除它。当您无法控制问题重复发生时,试图控制损害是毫无意义的。
- 等待。如果这不是一个关键记录,您可能可以等待。正如 Ryan 所说,“最大损害”不是 68 年,但实际上最有可能是 7 天。这是正缓存条目(BIND、JunOS 等)最大寿命的最常见默认值。即使在不准确的情况下,人们也希望服务器正在接收强制重新启动进程的常规安全更新。作为几个大型集群的运营商,我认为 MSO 不太可能故意将其设置为更大的值:它只会生成更多的外部查询(我们讨厌它)。对于使用不太流行的软件的公司或讨厌自己的运营商,您可能必须继续执行下一步。
- 惹恼 DNS 缓存操作员。如果您需要尽快从缓存中清除记录,您唯一真正的选择就是开始联系您能想到的最大的递归 DNS 提供商,然后逐步减少。其中一些公司可能会忽略您:要么他们认为您的公司太小,客户不关心,要么他们制定了自己的缓存清除政策,以尽量减少他们必须处理的支持电话数量。在后一种情况下,他们可能会耸耸肩,让问题在预定的时间内自行解决。毕竟,您的公司确实为自己造成了这个问题。
- 让 ISP 客户为您骚扰他们的 ISP。如果已经过了几天,大型 ISP 仍然忽略缓存记录,请尝试让他们的一位客户投诉并在该公司内部生成一张票据。这对他们来说更难忽视,但这不会为他们的操作团队带来任何好处,因为从他们的角度来看,这是你自找的。如果这种情况重复发生,他们可能会开始取消这些票据只是为了激怒你。
- 建议您的合作伙伴绕过 DNS 记录。如果这是您的合作伙伴使用的关键任务 DNS 记录,并且上述任何选项都不可接受(即您的收入每分钟都在减少),您的公司别无选择,只能与合作伙伴合作来解决这个问题。如果他们不控制本地缓存,这通常是通过在受影响系统的主机表中插入条目来实现的,因为它避免了修改使用 DNS 记录的程序的需要。这是仅有的如果收入损失与少数几家使用数据的公司有关,那么这是可行的。在所有其他情况下,您只能选择前三个选项。
答案2
首先,我看的 Bind 配置手册指出,TTL 是一个有符号的 32 位整数,以秒为单位,理论上最大值为 2^31。它说
有效 TTL 范围为 0-2147483647 秒。
或者大约 68 年。所以你可能一开始就不能把它设置为 100 年。
因此,假设您将其设置为 68 年。会发生什么情况就很清楚了。尊重 DNS 记录上极长的 TTL 的 DNS 解析器会尽可能长时间地缓存它们。有些 DNS 解析器根本不尊重 TTL,只是随心所欲地实施自己的缓存策略。
我们不能为最大值设定一个硬性数字,因为许多不同的供应商创建了许多不同的 DNS 实现,并且它们都使用略有不同的变量。例如,在 Juniper JunOS 上运行的 DNS 服务器的 TTL 最多只能达到 604800 秒,即 7 天。