我试图去理解一些我以为自己已经理解的东西,但显然还缺少了一些部分。
我们目前使用 Zerigo 作为主 DNS,从属 DNS 在 linode 上运行。这效果很好。然而,最近对 zerigo 的 DDOS 攻击意味着虽然 DNS 查询仍可解析,但我们无法进行任何 DNS 更改。由于我们依赖于我们自己的基础设施上的 DNS 更改,因此我希望以某种方式改进这一点。
我宁愿不完全放弃 zerigo,并意识到这种或类似的问题可能发生在任何主要 DNS 托管提供商身上。这可能不是 DDOS,而是他们服务器上的一个错误,或者某物这意味着我们无法再发布更新。
为此,我希望有一些后备选项:一个完全独立的(主要)DNS提供商(可能是AWS),我们将手动保持同步。当出现问题时,我们将切换到它。这让我想到了我的问题:
我如何确保我们能够足够快地切换这些提供商?具体来说,在我们的注册商上,有一个名称服务器列表,但没有 TTL 等设置。DNS 客户端如何知道使用新更新的名称服务器记录?这是在 SOA 中配置的吗?但是,SOA 本身由 DNS 提供商托管,我们可能无法更新它...
这不是一个可以进行计划、安排和测试的一次性举措的问题,而是在事情半途而废时能够这样做的问题。
答案1
是的,NS 记录(表明 yourdomain.example 由 ns1.zerigo.net 或 my-ec2.amazon.com 托管)的持续时间由这些 NS 记录的 TTL 值决定。如果您的托管商不允许您更改这些 TTL,那么您就完蛋了。
即使您的 DNS 托管商允许您更改它们,父区域中也存在 NS 记录的 TTL,并且这些由注册表固定。
因此,从一个 DNS 托管商切换到另一个 DNS 托管商实际上无法实时完成。垃圾邮件发送者和其他机器人牧民这样做(这称为“快速通量”)是为了逃避检测,但他们托管自己的域,他们可以随意设置 TTL。(他们仍然在注册表中设置 TTL 限制。)
答案2
切换您所在区域的权威名称服务器并不是您真正想要在“紧急情况下”做的事情,因为这种更改需要至少 48 小时才能在整个互联网上传播。
您将无法对此做任何事情,因为顶级域名服务器并不觉得经常回复有关您选择使用哪个名称服务器的查询很有趣,所以他们控制 TTL,您必须忍受它。
据我了解,通常的情况是这样的:
- 有一个隐藏的主机。该主机负责区域编辑。它甚至可以由您自己在办公室托管,不需要一直处于活动状态。
- 至少打开两个从服务器。这些从服务器被定义为您所在区域的权威服务器。
这需要您自己处理 DNS 服务器,但依赖服务总是容易受到潜在攻击,如果它们没有足够的冗余,您仍然会很倒霉。除非您能找到设置从属区域的提供商。我不太清楚您是否将 Zenigo 用作普通 VPS 并运行自己的 DNS,或者他们是否有 DNS 服务。
不过,我禁不住要问,如果你每天都需要更改 DNS 记录,那你从事的是什么行业?我有大约 50 个客户,有多个网站,但我可能每个月只更改一次 DNS……?
答案3
听起来你已经拥有一个良好的基础设施,由 Zerigo 担任主机并托管你自己的从属设备。
假设您正在使用 BIND(其他 DNS 软件也应该如此),您可以将从属区域更改为主区域。作为主区域,您可以更改区域。
这实际上只是一个简单的配置更改,但这是一个自动化过程的示例: http://www.mikeperry.org/tech_tips/bind_switch_slave_to_master.html
如果你这样做,一旦 Zerigo 回来,你可以:
- 复制所做的更改,然后将托管区域转换回从属区域,或者
- 从 Zerigo 中删除区域并重新创建,并导入区域记录。
但还要注意,去年 Zerigo 遭遇 DDOS 攻击时,管理界面不可用,但 DNS 主机继续处理请求。因此,如果您对服务器上托管的区域进行了更改,即使大多数服务器都处于宕机状态,Zerigo 仍会提供错误的记录。