跳至内容

如何对 Route 53 公共托管区中记录的 DNS 解析问题进行故障排除?

3 分钟阅读
0

我想解决我的 Amazon Route 53 托管区中域和记录的 DNS 解析问题。

简短描述

以下问题可能会阻止 Route 53 托管区中的域和记录的 DNS 解析:

  • 您的注册商与 Route 53 名称服务器不匹配。
  • Route 53 中的 DNS 记录不正确。
  • 频繁更改记录。
  • 子域委派不正确。
  • DNS 传播延迟
  • 阻止 DNS 响应的防火墙或网络访问控制列表(网络 ACL)。
  • 影响您的路由的运行状况检查。

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

对您的注册商与 Route 53 名称服务器之间的不匹配问题进行故障排除

如果您在域注册商中配置的名称服务器与 Route 53 托管区不匹配,则您的域无法正确解析。

要验证您的名称服务器是否匹配,请完成以下步骤:

  1. 运行 whois 命令来检查您的注册商级别的名称服务器:
    whois example-url | grep example-name-server
    **注意:**将 example_url 替换为您的 URL,将 example_name_server 替换为您的名称服务器。
  2. 使用 Route 53 控制台获取托管区的名称服务器
  3. whois 命令的输出与您的托管区的名称服务器进行比较。
  4. 如果名称服务器不匹配,请更新您的注册商以匹配您的托管区。
    根据以下输出示例,必须更新注册商以包括 ns-2050.awsdns-66.orgns-2051.awsdns-67.co.uk
    whois 输出:
    Name Server: ns-2048.awsdns-64.com  
    Name Server: s-2049.awsdns-65.net
    托管区中的名称服务器:
    ns-2048.awsdns-64.com  
    ns-2049.awsdns-65.net  
    ns-2050.awsdns-66.org  
    ns-2051.awsdns-67.co.uk

对 Route 53 中不正确的 DNS 记录进行故障排除

运行 dig 命令以根据您的 DNS 记录类型显示您的 DNS 记录:

dig example_type example_url +short

**注意:**将 example_type 替换为您的 DNS 记录类型,将 example_url 替换为您的 URL。

然后,根据您的 DNS 记录类型完成以下故障排除步骤。

A

输出示例:

192.0.2.44

确认输出中的 IP 地址与服务器主机的 IP 地址相匹配。

TXT

输出示例:

"v=spf1 include: _spf.example _ url ~all"

在两部分之间添加空格,不要将您的 TXT 值用双引号引起来。有关详细信息,请参阅如何解决使用 DKIM 语法创建 TXT 记录时收到的"CharacterStringTooLong (Value is too long) encountered with {Value}"错误?

MX

输出示例:

10 mail.example_URL.com

Route 53 不支持记录名称中的 @ 符号。如果您的记录名称包含 @ 符号,则将其移除。

CNAME

输出示例:

www.example_url.com

验证您的记录是否指向正确的 URL。

AAAA (IPv6)

输出示例:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

验证 IPv6 地址是否与服务器的配置相匹配。

有关 Route 53 支持的 DNS 记录类型的完整列表,请参阅支持的 DNS 记录类型

对导致意外 DNS 缓存的频繁记录更改进行故障排除

DNS 递归解析器根据您的路由策略的生存时间 (TTL) 值缓存 DNS 记录。如果您经常更改记录,则由于 DNS 缓存,您的更改不会立即传播。

运行 dig 命令来检查您的 TTL 值:

`dig example_url +ttlunits`

**注意:**将 example_url 替换为您的 URL。

在以下示例输出中,example_url TTL 值为 300 秒:

example_url 300 IN A 192.0.2.44

在更改 DNS 记录之前,请将您的 TTL 值降低到 60 秒或更短。然后,从多个位置运行 dig 命令以验证您的新 TTL 值是否有效。您还可以运行来自不同 ISP 的 nslookup 命令来检查您的 TTL 值:

nslookup -type=A -debug www.example_url.com

有关 TTL 值的最佳实践,请参阅 Amazon Route 53 DNS 最佳实践中的“选择 DNS 记录的 TTL 值”部分。

对不正确的子域委派问题进行故障排除

检查您的子域委派中是否存在导致域名解析失效的错误。

**注意:**在以下示例中,sub.example.comexample.com 的子域。

运行 digtrace 命令以识别您的域名服务器记录:

dig +trace sub.example.com

在以下输出示例中,ns-123.awsdns-45.netns-124.awsdns-46.orgsub.example.com 名称服务器:

;; Received 512 bytes from a.root-servers.net  
...  
sub.example.com. 300 IN NS ns-123.awsdns-45.net.  
sub.example.com. 300 IN NS ns-124.awsdns-46.org.

验证您的子域的名称服务器记录是否与以下区域中的 DNS 名称服务器记录相匹配:

  • 您的父区
  • Route 53 中的委派区

如果您的子域的名称服务器记录与 DNS 名称服务器记录不匹配,请更新您的 DNS 服务

有关详细信息,请参阅如何对 Route 53 中新子域的 DNS 解析问题进行故障排除?

对 DNS 传播延迟进行故障排除

要检查您的域名的全球传播情况,请使用 whatsmydns.net 网站上的 DNS Propagation Checker(DNS 传播检查器)。验证您的记录值是否已在全球每个位置更新。

如果您的记录值不一致,请确保您的 TTL 值不超过 60 秒,然后清除 DNS 缓存。如果您仍然遇到 DNS 记录传播延迟,请联系您的注册商或 DNS 提供商寻求帮助。

对阻止 DNS 响应的防火墙或网络 ACL 进行故障排除

验证服务器和虚拟私有云 (VPN) 中的防火墙和网络 ACL 是否允许端口 53 上的流量。

对影响您的路由的运行状况检查进行故障排除

如果您的域未通过运行状况检查,则 Route 53 可能会从 DNS 响应中移除您的域的 DNS 记录。

运行以下 get-health-check-status AWS CLI 命令以检查您的域的运行状况检查状态:

aws route53 get-health-check-status --health-check-id example-domain-ID

**注意:**将 example-domain-ID 替换为您的域识别号。

如果您的域 Status(状态)为 Failure(失败)或 Last failure reason(上次失败原因),请解决不正常的运行状况检查

相关信息

在不迁移父域的情况下创建使用 Amazon Route 53 作为 DNS 服务的子域

AWS 官方已更新 3 个月前