跳至内容

如何解决 Route 53 中的 DNS 传播延迟和不一致问题?

2 分钟阅读
0

我更新了在 Amazon Route 53 公共托管区中设置的 DNS 记录,但更改的传播时间比预期的要长。或者,传播中存在不一致之处。

解决方法

当您更新托管区中的记录集时,更改将在 60 秒内传播到所有 Route 53 边缘站点。某些位置可能会显示您的新 DNS 记录值,而另一些位置则显示旧值。如果 DNS 记录显示各个地点的旧值,则传播未完成。必须等待公有 DNS 解析器缓存清除后,更改才会生效。

**注意:**在以下命令中,将 DOMAIN NAMEexample.com 替换为您的域名,将 NAME_SERVER 替换为名称服务器。

检查 DNS 传播

运行以下命令来检查客户端是否收到了正确的响应:

dig DOMAIN NAME @NAME_SERVER>

最佳做法是监控 DNS 记录在不同互联网服务提供商 (ISP) 和 AWS 区域之间的传播状态。有关详细信息,请参阅 whatsmydns.net 网站上的 DNS Propagation Checker(DNS 传播检查器)

检查和修改 TTL 值

运行以下 dig 命令以检查您的名称服务器记录的生存时间 (TTL) 值是否过高:

[ec2-user@ip-172-31-93-169 ~]$ dig example.com @a.iana-servers.net

; <<>> DiG 9.18.33 <<>> example.com @a.iana-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16169
;; flags: qr aa rd; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com. IN A

;; ANSWER SECTION:
example.com. 300 IN A 23.192.228.80
example.com. 300 IN A 23.192.228.84
example.com. 300 IN A 23.215.0.136
example.com. 300 IN A 23.215.0.138
example.com. 300 IN A 96.7.128.175
example.com. 300 IN A 96.7.128.198

;; Query time: 0 msec
;; SERVER: 2001:500:8f::53#53(a.iana-servers.net) (UDP)
;; WHEN: Wed Jun 18 19:04:03 UTC 2025
;; MSG SIZE rcvd: 136

在命令输出的 ANSWER SECTION 中,域旁边的数字是记录的 TTL(以秒为单位)。例如,example.comA 记录的 TTL 为 300 秒。

如果该数字很高,请降低 TTL 值

**注意:**较低的 TTL 值会缩短传播停机时间,因为解析器刷新记录的频率更高。但是,较低的 TTL 值会增加 Route 53 名称服务器的负载。有关详细信息,请参阅 Amazon Route 53 如何为您的域路由流量

确认您的域使用托管区的名称服务器

如果您的域使用来自其他托管区的名称服务器,则 Route 53 对 DNS 查询的响应并不能反映您的 DNS 更改。检查您的域是否使用托管区的名称服务器。

要获取名称服务器列表,请运行以下 whois 命令:

whois DOMAIN NAME | grep "NAME SERVER"

将名称服务器与 Route 53 托管区中的名称服务器进行比较。如果名称服务器不匹配,请更新您的域注册商账户中的名称服务器。

配置 IPv4 和 IPv6 记录以正确路由流量

**重要事项:**支持 IPv4 和 IPv6 的资源需要 Route 53 托管区中的 A 记录和 AAAA 记录。如果您只创建一种记录类型,则只有 IPv4 或 IPv6 网络上的客户端无法连接。

完成以下步骤:

  1. 打开 Route 53 控制台
  2. 选择 Hosted zones(托管区),然后选择您的托管区。
  3. 选择 Create record(创建记录)。
  4. Routing policy(路由策略)下拉列表中,选择 Simple routing(简单路由)。
  5. Value(值)文本框中,输入资源的 A 记录的 IPv4 地址或资源的 AAAA 记录的 IPv6 地址。
  6. 选择 Create records(创建记录)。

**注意:**如果您在 Route 53 记录名称中使用 at (@) 符号,则会出现 DNS 传播问题。为根域创建记录时,不要向 Record name(记录名称)字段添加值。

相关信息

我更改了 DNS 设置,但没有生效

Amazon Route 53 为公共托管区创建的名称服务器 (NS) 记录和起始授权机构 (SOA) 记录

AWS 官方已更新 7 个月前