我们的 ISP 是康卡斯特,我们从他们那里获得了 5 个静态公共 IP,用于各种服务,包括连接到我们的网络、VPN、Web、DNS 等的客户......
我们需要康卡斯特提供更多 IP 地址。不幸的是,康卡斯特告诉我们,他们不能简单地再给我们 5 个地址。他们只提供 1、5 或 13 个地址块的静态 IP 地址。
为了让我们获得更多的静态 IP,他们必须取消我们当前的 5 个静态 IP,并给我们 13 个新的 IP。
我们如何才能在不引起各种 DNS 混乱的情况下实现这一转变?我们运行公共 DNS 服务器,因此我们可以自行进行 DNS 更改,但这些 DNS 更改显然需要一些时间才能在整个互联网上传播。
有没有简单的方法可以实现这种转变?比如创建某种类型的备用 DNS 条目之类的?肯定有某种程序可以解决这种事情。康卡斯特的支持人员毫无用处。
答案1
DNS 记录不会传播,它们会被缓存以保留相关记录的 TTL(有效期)。我假设您的名称服务器保持不变(基于您发布的内容),因此您需要查看即将更改的记录的 TTL,并可能将 TTL 降低到您满意的水平。任何尝试基于 DNS 访问您的“公共”资源的实体,如果其缓存中有您的旧信息(在 TTL 的有效期内),则将使用其缓存中的旧信息,直到 TTL 到期,然后他们对这些记录执行新的查找。任何尝试访问您的“公共”服务但未缓存任何记录的实体都将立即获得新信息。因此,如果您当前的 TTL 为 3600 秒(1 小时),则任何缓存中有该信息的实体都将尝试使用旧信息一小时,然后 TTL 到期并执行新的查找,此时将检索和缓存新信息(在 TTL 的有效期内)。
答案2
您能保留两个 IP 范围吗?如果是这种情况,请将您的服务器移至新 IP,并将旧 IP 重定向(使用路由器 NAT)到新 IP。将您的 DNS 更改为新范围并等待传播。完成后,您可以删除 NAT,并释放旧 IP。
检查你的协议:有些协议不能跨越 NAT 防火墙(比如 IPSec)。
答案3
遇到类似的情况,我创建了一个免费帐户editdns.net并为我的域名配置了一个辅助区域。区域传输工作正常后,我更新了域名注册商的名称服务器,使其指向 EditDNS.NET 名称服务器(free01.editdns.net 和 free02.editdns.net),而不是我的 DNS 服务器。
一旦我确定该域名从 editdns.net 正确解析,我就会让 ISP 切换我的 IP 地址。接下来,我用新地址更新我的所有 DNS 服务器记录。最后,我重新配置 editdns 辅助区域以从我的新 dns 服务器 IP 地址提取数据。
现在我可以将我的域名注册商名称服务器切换回我的 DNS 服务器,但我认为让 editdns.net 名称服务器处理 dns 查找请求会更好。因此,我让域名注册商名称服务器指向 editdns.net 名称服务器,并通过来自我的 dns 服务器的辅助区域传输使它们保持更新。
如果做得正确,对互联网世界的影响就会很小……