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

2 分钟阅读
0

我在 Amazon Route 53 公有托管区中配置了一条指向我的 Amazon CloudFront 分配的别名记录。但是,我无法通过互联网解析该记录。

简短描述

以下原因可能导致您无法解析指向 CloudFront 分配的别名记录:

  • 您错误配置了与 CloudFront 分配对应的别名记录。
  • 在 Route 53 控制台的别名记录下拉菜单中,未列出 CloudFront 分配。
  • 您没有在域的权威托管区中创建别名记录。
  • 域的状态为 inactiveserverHoldclientHold
  • 有一项与别名记录相关的运行状况检查异常。
  • 该记录并未在全球范围内传播。
  • 当为该域启用 DNSSEC 时,委派签名者(DS)记录出现错误。

解决方法

检查别名记录类型

如果您配置了错误的别名记录,则 DNS 记录无法解析。您必须将 CloudFront 别名记录类型配置为**类型 A ** 而不是 CNAME

要确认 Route 53 别名记录类型,请完成以下步骤:

1.    打开 Route 53 控制台

2.    在导航窗格中,选择托管区

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

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

5.    在编辑记录集中,确认别名记录记录类型设置为 A。如果记录类型未设置为 A,请更新记录。

6.    选择保存记录集

如果 CloudFront 分配未在别名记录的下拉菜单中列出,请创建该记录。

要创建指向您的 CloudFront 分配的别名记录,您的分配必须包括与记录名称匹配的备用域名。例如,如果记录的名称是 abc.example.com,则 CloudFront 分配必须包含 abc.example.com 作为其中一个备用域名。

1.    登录 CloudFront 控制台

2.    导航到您的 CloudFront 分配。

3.    选择常规设置编辑

4.    在设置页面中,添加 abc.example.com 到备用域名(CNAME)

**注意:**如果您要添加的 CNAME 记录已存在,则会收到以下错误提示:

“您提供的一个或多个 CNAME 已经与其他资源关联”

要解决上述错误,请在 Route 53 托管区中添加记录。然后,选择别名到 CloudFront 分配,为 abc.example.com 创建别名记录。CloudFront 分配域名列在下拉菜单中。

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

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

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

$ whois domain-name |grep 'Name Server'

查看分配给您的托管区的名称服务器。如果名称服务器与 whois 查找结果不匹配,那么您的托管区不用于域名解析。您必须在域注册商处更新名称服务器。

如果域是通过 Route 53 注册的,请参阅添加或更改域的名称服务器和粘附记录。如果域是通过第三方注册的,请参阅第三方文档,以了解有关如何更新名称服务器的步骤。

如果 AWS 注册商的名称服务器配置不正确,请完成以下步骤:

1.    打开 Route 53 控制台

2.    选择已注册的域

3.    选择您的域。

4.    选择添加/编辑名称服务器

5.    将当前的名称服务器替换为以下名称服务器。在以下示例中,请将 xxx 占位符替换为您的名称服务器的正确值。
ns-xxx.awsdns-xx.org。
ns-xxx.awsdns-xx.com。
ns-xxx.awsdns-xx.net。
ns-xxx.awsdns-xx.co.uk。

6.    选择保存

检查域状态

如果域状态为 inactiveServerHoldclientHold,则域无法解析。您可以运行 whois 查找命令来检查域的状态:

$ whois domain-name |grep 'Domain Status'

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

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

检查记录传播

通常,Route 53 会在 60 秒内将 DNS 记录更新传播到由权威 DNS 服务器组成的 Route 53 全球网络。但是,缓存 DNS 解析器超出了 Route 53 的范围。因此,Amazon 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 和算法类型转发给顶级域的注册机构。

AWS 官方
AWS 官方已更新 1 年前