![更改 DNS 服务器的名称,其中主记录和父记录不能同时更改](https://linux22.com/image/681897/%E6%9B%B4%E6%94%B9%20DNS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E5%90%8D%E7%A7%B0%EF%BC%8C%E5%85%B6%E4%B8%AD%E4%B8%BB%E8%AE%B0%E5%BD%95%E5%92%8C%E7%88%B6%E8%AE%B0%E5%BD%95%E4%B8%8D%E8%83%BD%E5%90%8C%E6%97%B6%E6%9B%B4%E6%94%B9.png)
我有几个名称服务器 (BIND9),我想更改其完全限定名称。假设示例如下:
- dns1.olddomain.com
- dns2.olddomain.com
- dns3.olddomain.com
是旧的名称服务器,我想改用以下服务器。
- dns1.newdomain.com
- dns2.newdomain.com
- dns3.newdomain.com
目前,所有上述记录都指向相同的 DNS 服务器,但新记录的 IP 与旧记录不同(它们路由到相同的机器)。
我的问题是,如果我更新服务器上的所有区域以使用 SOA 和 NS 的新名称,如果使用这些服务器的人没有立即更新注册记录,我会遇到任何问题吗?或者他们会遇到问题,因为他们抢先更新注册,然后才进行更改?
我已经使用这两种方案对记录解析进行了多次测试,到目前为止,我没有发现解析存在问题。但是我不确定我是否遗漏了什么。
答案1
据我理解你的问题,
1. You are using same dns server
2. You already have name-servers dns1.olddomain.com dns2.olddomain.com dns3.olddomain.com configured on your dns server.
3. You want to add new name-servers dns1.newdomain.com dns2.newdomain.com dns3.newdomain.com on the same DNS server where your old name-servers are configured.
4. IP address for new name-servers are different than used for previous ones.
5. You want to update all your running zone records to new SOA and NS records.
如果以上所有情况都是真的,那么如果使用旧名称服务器记录的人不更新注册记录,您肯定会遇到问题。网站或应用程序将瘫痪。
如果您在将注册记录更新到您的区域后将其更改为新的名称服务器记录,则 DNS 传播将需要最多 2-24 小时的时间才能传播到全球。(会有停机时间)
如果您在将注册记录更新到您的区域之前将其更改为新的名称服务器记录,那么在区域未更新之前,它们也不会解析到任何主机。DNS 传播将需要最多 2-24 小时的时间才能传播到全球。当您更新区域时,它们将相应地解析(会有停机时间)
您可以为所有区域记录添加旧的和新的名称服务器记录,在新的名称服务器也传播到全世界之后,您可以删除旧的名称服务器。这样您就可以避免停机并更新您的名称服务器。
答案2
如果我理解正确的话,以下是假设:
- 切换期间,新旧 IP 地址均可用。
- 您想要在注册商帐户中进行更改之前更改区域文件中的 NS 记录。
- 对旧 IP 的查询将始终返回与新 IP 相同的答案。(因为 IP 地址是共享的)这在您更改 NS 记录之前和更改 NS 记录之后都适用。
- 完成此更改后,注册商帐户将会更新以反映新的名称服务器。
这应该没问题。在线验证工具会向您发出一些警告,提示您存在 NS 记录不匹配和粘合记录不匹配,但这不会造成问题,因为从所有 IP 地址收到的答案都是一致的。
更新 NS 记录后,您需要继续在注册商帐户上执行更改。一旦互联网上的所有设备都有足够的时间来获取新的 NS 记录,glue/NS 不匹配警告就会消失。您可以通过查看 TLD 名称服务器上定义的 NS 记录来了解此间隔有多长。下面以 Example.com 为例进行说明,TTL 为 172800 秒。(48 小时)
$ dig +trace example.com
<snip>
example.com. 172800 IN NS a.iana-servers.net.
example.com. 172800 IN NS b.iana-servers.net.
;; Received 165 bytes from 192.41.162.30#53(l.gtld-servers.net) in 16 ms
<snip>