我正在迁移一个拥有几千个小站点并拥有自己的 DNS 的 Web 服务器。每个站点都有一个“customer.ourcompany.com”形式的主机名,有些还有“www.customersdomainname.com”。
当我们进行迁移时,IP 将发生变化,因此我们需要更新所有域的所有 DNS 条目。因为这台机器也是ourcompany.com的权限,所以ns1.ourcompany.com的IP也要改。
这就是问题。对于所有客户端域,我们需要确保任何粘合记录都包含正确的 IP。
注册商是否总是使用粘合记录,即使它们在技术上不是域所需要的?我们曾经迁移过另一个网络服务器,我需要登录到注册商的站点 (GoDaddy) 并通过简单地将 ns1 交换为 ns2 来更新每个 namerserver 条目,反之亦然。这迫使 GoDaddy 查找名称服务器的新 IP,并将它们存储为粘合记录。我害怕不得不再次这样做,但有 2000 个域,并非都在同一个注册商处。
想法?
我想你可能对胶水记录的定义有点困惑。作为对该过程的一个非常简短的总结:当您向域注册商注册域 (example.com) 时,您需要为对该域具有权威性的名称服务器提供主机名。
如果域名服务器与您正在注册的域名 (ns0.example.com) 存在于同一个域中,那么您还需要为它们提供 IP 地址。这些将形成您的胶水记录。如果没有这些粘合记录,DNS 查找将陷入困境 22 的情况,即他们不知道如何解析域的地址,因为他们无法首先解析名称服务器。
但是,如果名称服务器存在于不同的域中,则不需要粘合记录。您只需为名称服务器提供主机名(无 IP 地址),DNS 查找将首先解析这些,然后再解析请求的域。
考虑到这一点,您尝试做的事情有两种可能的情况。根据您的描述,我怀疑第一个适用于您:
如果所有客户端域
ns1.ourcompany.com
在 zonefile 和 WHOIS 记录中都有一个名称服务器,那么您只需更改存储在 zonefile 中的 IP 地址并为域粘合记录ourcompany.com
。因为这是在查找过程中需要引导的唯一自引用主机名。如果每个客户端域都使用
ns1.customersdomainname.com
并有一个指向您的 IP 地址的粘合记录,那么您还有更多工作要做。您将需要更新每个域。一些注册商提供 API,您可以使用这些 API 来自动进行更改。不过,当您这样做时,我建议您合并到我上面描述的设置,以防止将来重复此类工作。如果您不管理自己的 DNS(或者由 DNS 管理公司而不是在 DNS 中提供专业附加服务的注册商为您管理它,我认为不会有一种简单的方法可以一步到位)管理选项),不幸的是。
如果相关注册商的接口有“批量更改”选项(有些做,有些做)并且该选项涵盖更新名称服务器粘合记录,您可能能够加快速度。
如果您必须更改面向公众的 DNS 的 IP 地址,那么我强烈建议您将这两个设置重叠,以便它们同时处于活动状态。这将允许您在互联网的其余部分更新到新地址时继续从旧地址提供服务。最终,一旦对旧地址的请求逐渐减少,您就可以将其离线。修改 TTL 有助于加快此过程。
如果这是一个 Bind 服务器,编写对区域文件的更改的脚本并不是那么困难,尤其是在您使用的 IP 地址数量很少的情况下。通常,我会将整个目录复制到一个临时位置并通过 sed 运行它们。这使您有机会在将所有更改放回原位之前验证所有更改。