跳至内容

如何解决 Route 53 中不同 AWS 账户的托管区拥有相同域名这一问题?

4 分钟阅读
0

我想解决跨不同 AWS 账户的多个托管区在 Amazon Route 53 中共享相同域名的问题。

简短描述

要解决多个托管区共享相同域名的问题,请针对每个账户验证以下内容:

  • 对于公共托管区,检查名称服务器委派是否正确。
  • 对于私有托管区,确认 Amazon Virtual Private Cloud (Amazon VPC) 关联和 DNS 解析。

解决方法

检查名称服务器委派是否正确

要检查您使用的名称服务器是否正确,请在注册商处更改一个或两个账户中的名称服务器

如果您更新账户 A 中的域名服务器,但未更新账户 B 中的域名服务器,则会得到以下 dig 输出:

  • 账户 A 的 dig 输出示例(状态为 NOERROR):

    # dig test1.101.example.com
    ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.amzn2.0.4 <<>> test1.101.example.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38973
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;test1.101.example.com.    IN   A
    
    ;; ANSWER SECTION:
    test1.101.example.com. 300    IN   A      8.8.8.8
  • 账户 B 的 dig 输出示例(状态为 NXDOMAIN):

    dig test2.101.example.com
    ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.amzn2.0.4 <<>> test2.101.example.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 34489

创建公共托管区时,Route 53 会自动分配四个唯一的名称服务器:

  • ns-1701.awsdns-20.co.uk
  • ns-487.awsdns-60.com
  • ns-1410.awsdns-48.org
  • ns-867.awsdns-44.net

还有一个简单的 A 型记录,其中包含以下详细信息:

记录名称类型路由策略差异化器值/将流量路由到
test1.101.example.comA简单-8.8.8.8

如果账户 B 的托管区与账户 A 具有相同的域名,则 Route 53 会自动分配以下四个名称服务器:

  • ns-869.awsdns-44.net
  • ns-1332.awsdns-38.org
  • ns-61.awsdns-07.com
  • ns-1707.awsdns-21.co.uk

此托管区还包含一条简单的 A 型记录,其中包含以下详细信息:

记录名称类型路由策略差异化器值/将流量路由到
test2.101.example.comA简单-8.8.8.8

确认 VPC 关联和 DNS 解析

如果您的两个账户中存在相同域名,请检查私有托管区的配置。然后,在 Amazon VPC 内验证 Amazon VPC 关联和 DNS 解析。要查看 DNS 支持属性,请参阅查看和更新 VPC 的 DNS 属性

如果账户 A 中有一个与 Amazon VPC 关联的私有托管区 (example.com),则该私有托管区将包含一条简单的 A 型记录。

示例:

记录名称类型路由策略差异化器值/将流量路由到
example.comNS简单-ns-1536.awsdns-00.co.uk. / ns-0.awsdns-00.com. / ns-1024.awsdns-00.org. / ns-512.awsdns-00.net. /
example.comSOA简单-ns-1536.awsdns-00.co.uk. awsdns-hostmaster.amazon.com.1 7200 900 1209600 86400
test1.example.comA简单-1.1.1.1

从账户 A 的 Amazon VPC 中的 Amazon Elastic Compute Cloud (Amazon EC2) 实例运行 dig 命令:

# dig test1.example.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.amzn2.0.4 <<>> test1.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45251
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
test1.example.com.    60   IN   A   1.1.1.1

然后,验证您是否在响应中收到 NOERROR 状态。

跨账户 VPC 关联限制

一个账户的 VPC 无法与共享相同域名的多个私有托管区关联。这适用于所有账户。

账户 B 可以配置一个具有相同域名 (example.com),但与不同 VPC 关联的私有托管区。在此示例中,该托管区包含一条 A 型记录。

示例:

记录名称类型路由策略差异化器值/将流量路由到
example.comNS简单-ns-1536.awsdns-00.co.uk. / ns-0.awsdns-00.com. / ns-1024.awsdns-00.org. / ns-512.awsdns-00.net. /
example.comSOA简单-ns-1536.awsdns-00.co.uk. awsdns-hostmaster.amazon.com.1 7200 900 1209600 86400
test2.example.comA简单-2.2.2.2

账户 B 的 VPC 中实例资源记录的 dig 输出示例:

# dig test2.example.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.amzn2.0.4 <<>> test2.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5377
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
test2.example.com.    60   IN   A   2.2.2.2

相关信息

How to centralize DNS management in a multi-account environment(如何在多账户环境中集中管理 DNS)

AWS 官方已更新 6 个月前