我在 Amazon EC2 上运行 BIND9/Ubuntu DNS 服务器。DNS 服务器运行良好,直到我决定将服务器上的 IP 地址更改为其他地址(使用弹性 IP 系统)。无论如何,我更改了区域的所有“A”、“NS”等记录以指向新 IP 地址。
三天后,DNS还没有更新……我真的不知道接下来该怎么办。我运行了以下命令:
dig SOA example.com @b.gtld-servers.net
并且它仍然返回名称服务器的旧 IP 地址,以及区域使用的前两个 IP 地址。解决这个问题的最佳方法是什么?我在域名注册商级别可以做些什么吗?
答案1
为了更改由 ISC BIND 服务器运行的 DNS 系统:
编辑区域文件。进行任何你想做的更改,然后不要忘记更新区域序列号。如果不更新序列号,您的更改将不会应用。通常,序列号采用以下模式
YYYYMMDD00
(如果您在一天内多次更改区域,则最后两位数字会增加)。这样,它还可以提醒您上次更改该区域的时间。发出 DNS 服务器重新加载命令 -
service bind9 reload
(适用于 Debian/Ubuntu)。这将导致应用所有配置更改和区域文件更改。收到此命令后,BIND 服务器还将通知所有辅助 DNS 服务器(如果进行了适当的配置)有关已进行更改的事实,以便它们可以转移区域以保持最新状态。
您可以使用dig
或nslookup
或host
命令来调试 DNS。发出直接的DNS 查询您的主服务器和辅助服务器以查看是否已应用更改:
dig hostname.domain @IP-ADDRESS
或者
nslookup hostname.domain IP-ADDRESS
或者
host hostname.domain IP-ADDRESS
其中hostname.domain
,更改的 DNS 记录IP-ADDRESS
是您的 DNS 服务器 (主 DNS 服务器或辅助 DNS 服务器) 的 IP 地址。
如果一切顺利,您应该能够在服务器的响应中看到新地址。
一段时间后(取决于您的区域缓存和 TTL 设置),这些更改将传播到全局 DNS 系统。您可以使用相同的工具来查询例如 Google 公共 DNS 服务器(8.8.8.8
和8.8.4.4
),并查看您的更改是否已成功传播(或尚未传播)。
关于权威DNS服务器IP地址变更:
如果您要更新域的权威服务器地址(NS 记录),则应将此更改告知您的域名注册商。通常可以在注册商提供的在线控制面板中完成此操作。您的注册商可能会决定在应用更改之前测试新服务器是否符合 DNS 标准。虽然这是自动完成的,但仍可能需要一些时间。