我在创建接口 VPC 终端节点时收到了冲突 DNS 域错误。如何解决此问题?

1 分钟阅读
0

我正在为我的 VPC 中的 AWS 服务、终端节点服务或批准的 AWS Marketplace 服务创建新的接口 Amazon Virtual Private Cloud(Amazon VPC)终端节点(AWS PrivateLink)。我收到了以下错误消息: “private-dns-enabled cannot be set because there is already a conflicting DNS domain.(无法设置 private-dns-enabled,因为已经存在冲突的 DNS 域。)” 该如何解决此问题?

简短描述

以下是在创建接口 VPC 终端节点时收到冲突 DNS 域错误的常见原因:

  • 您的 VPC 中已有用于同一服务的接口 VPC 终端节点。
  • 您的 VPC 已与包含预期服务名称的私有托管区域关联。

解决方法

您的 VPC 中已有用于同一服务的接口 VPC 终端节点

如果您在创建接口终端节点时开启 PrivateDNS,则会自动创建私有托管区域并将其与您的 VPC 关联。默认情况下,AWS 服务和 AWS Marketplace 合作伙伴服务已开启 PrivateDNS。因此,在开启 PrivateDNS 的情况下为同一服务创建第二个接口 VPC 终端节点会导致冲突的 DNS 域错误。要解决此问题,请在创建接口终端节点时关闭 PrivateDNS 选项。为该服务的第二个 VPC 接口终端节点使用特定于终端节点的 DNS 主机名。

**注意:**对于终端节点服务,在创建终端节点后,在终端节点上开启 PrivateDNS 功能时,您会看到此错误。

您的 VPC 已与包含预期服务名称的私有托管区域关联

您无法为已附上现有私有托管区域的 VPC 创建具有相同命名空间的新私有托管区域。当您在开启 PrivateDNS 的情况下创建终端节点时,接口终端节点的创建将失败。这是因为终端节点无法创建服务名称的私有托管区域。要检查您的 VPC 是否与现有私有托管区域关联,请执行以下任意一项操作:

  • 导航到您的 Amazon Route 53 控制台,然后检查您是否已有一个私有托管区域,该区域将预期的服务名称附加到您的 VPC。如果您的 VPC 与现有私有托管区域关联,则在创建接口终端节点时关闭 PrivateDNS 选项。使用接口终端节点特定于终端节点的 DNS 主机名进行访问。
  • 对于中央枢纽架构,组织中的账户可能会为服务名称创建一个私有托管区域,并将其附加到您的 VPC。在这种情况下,您在 Route 53 控制台中看不到该私有托管区域,因为拥有者是不同的账户。使用 list-hosted-zones-by-vpc API 调用列出您的 VPC 所属的所有托管区域,包括来自其他账户的托管区域。如果您的 VPC 与其他账户中的私有托管区域关联,请执行以下操作:
    确认 A、别名或别名记录指向活动的 VPC 接口终端节点。
    然后,如果路由已到位,请使用服务的接口终端节点。如果您无法使用它,请关闭 PrivateDNS 选项并创建一个新的接口终端节点。

**注意:**从 VPC 运行 nslookupdig 以对服务名称执行 DNS 解析。确定服务名称是解析为私有 IP 还是公有 IP。如果要解析为私有 IP,则会有一个私有托管区域用于附加到您的 VPC 的服务名称。


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