指向我的 CloudFront 分配的别名记录为什么不会解析?

上次更新日期:2021 年 5 月 20 日

我在 Amazon Route 53 公有托管区域中配置了一条指向我的 Amazon CloudFront 分配的别名记录。然而,我无法通过 Internet 解析该记录。如何解决此问题?

简短描述

在以下情况中,客户端可能无法解析指向 CloudFront 分配的别名记录:

  • 与 CloudFront 分配对应的别名记录配置错误
  • 别名记录不是在域的权威托管区域中创建
  • 域的状态为 inactiveserverHoldclientHold
  • 与别名记录关联的运行状况检查不正常
  • 记录尚未在全球传播
  • 为域启用了 DNSSEC 时的 DS 记录错误

解决方法

检查别名记录类型

如果别名记录配置错误,则 DNS 记录将不会按预期方式解析。CloudFront 别名记录类型必须配置为 Type A (类型 A)(而不是 CNAME)。

要确认 Route 53 别名记录类型:

1.    打开 Route 53 控制台

2.    在导航窗格中,选择 Hosted Zones (托管区域)

3.    选择您的域的托管区域。

4.    选择您的域的 Route 53 别名记录。

5.    在 Edit Record Set (编辑记录集) 窗格中,确认是否将 Alias record (别名记录)Record type (记录类型) 设置为 A。如果不是,请更新记录。

6.    选择 Save Record Set (保存记录集)

检查在注册商处配置的域名服务器

当您为您的域创建托管区域时,Route 53 会将一组四个名称服务器分配给托管区域。只有在域的注册商处指定了托管区域的名称服务器时,托管区域才会用于您的域解析。

确认您的注册商返回的四个权威名称服务器是否与分配给您创建别名记录的托管区域的四个权威名称服务器相同。要检查在注册商处配置的名称服务器,请使用以下命令对您的域执行 whois 查找:

$ whois domain-name |grep 'Name Server'

审查分配给您的托管区域的名称服务器。如果名称服务器与 whois 查找结果不匹配,则您的托管区域未被用于域解析。您必须更新域注册商处的名称服务器。如果域是通过 Route 53 注册的,请参阅添加或更改域的名称服务器和 Glue 记录。如果域是通过第三方注册的,请参阅他们提供的文档,以了解更新名称服务器的步骤。

检查域状态

如果域状态为 inactiveServerHoldclientHold,则域不会解析。您可以使用 whois 查找命令来检查域的状态:

$ whois domain-name |grep 'Domain Status'

检查与别名记录关联的运行状况检查

如果存在与别名记录关联的运行状况检查,请检查运行状况检查的状态。DNS 查找期间返回的值取决于记录的路由策略和运行状况检查配置。

检查记录传播

正常情况下,Route 53 会在 60 秒内将您对您的 DNS 记录所做的更新传播到其权威 DNS 服务器的全球网络。然而,缓存 DNS 解析器超出了 Route 53 服务的范围,因此它会根据资源记录集的 TTL 值来缓存资源记录集。

本地解析器会在配置的 TTL 的持续时间内缓存以前的记录值。在某些情况下,可能会存在逆向缓存,即解析器缓存来自权威名称服务器的 NXDOMAIN 结果。要确定这种类型的逆向缓存在您的场景中是否造成问题,请直接向分配给域托管区域的名称服务器发送查询,查看是否收到响应。例如:

$ dig domain-name @ns-2041.awsdns-63.co.uk

(如果启用了 DNSSEC)检查 DS 记录

启用了 DNSSEC 时,委派签名者 (DS) 记录会在父托管区域与子托管区域之间建立信任链。此记录包含用于对 DNS 区域的区域签名密钥 (ZSK) 进行签名的公钥签名密钥 (KSK) 的摘要以及签名算法类型。必须将 DS 记录添加到委派的父区域。DS 记录是父区域中的权威数据。

例如,“example.com”的 DS 记录存储在“.com”区域(父区域)中,而不是存储在“example.com”区域(子区域)中。您可以通过向您的域注册商提供公共 KSK 和签名算法类型来创建 DS 记录。域注册商会将公共 KSK 和算法类型转发给顶级域的注册机构。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?