AWS Route53:同一域下的私有和公共托管区域
Posted
技术标签:
【中文标题】AWS Route53:同一域下的私有和公共托管区域【英文标题】:AWS Route53: Private and public hosted zones under the same domain 【发布时间】:2016-10-31 06:12:33 【问题描述】:我已经阅读了我能找到的所有 AWS 文档,但 GoogleFoo 没有任何结果。
我的情况是我们有一个域 example.com,到目前为止,我们只将它用于公共记录。有一个托管区域设置为公共。我现在想为私有记录创建一个子域,以便在我们的 VPC 组内为我们的应用程序使用(例如,指向 ElastiCache 实例)。
我尝试将 private.example.com 创建为指向我们的 VPC 的私有托管区域,然后在其下创建 cache.private.example.com 作为记录,但无法解析。
我很好奇是否可以以某种方式配置我们主域的子域?
example.com - Public
** app.example.com
private.example.com - Private
** cache.private.example.com - VPC
或
也可以创建具有相同***域 example.com 的私有托管区域吗?我很紧张,因为我不想影响应用程序。
example.com - Public
** app.example.com
example.com - Private
** cache.example.com - VPC
【问题讨论】:
你为什么要创建两个子域“private.example.com”和“cache.private.example.com” @error2007s 我试图将整个 private.example.com 子域用作私有托管区域。我现在只有一张唱片,但将来会有更多。 查看下面的答案 定义“它不会解决”。当你尝试时会发生什么?如果您在公共区域(例如 cache.private.example.com)中放置冲突记录会发生什么?如果公共记录在 VPC 内解析,则说明您的配置有误,我们需要查明这一点。 不,除非您准备从公共区域复制所有记录,否则不要创建私有 example.com 区域。私人口罩同级或以下公开。 【参考方案1】:适用于尝试将公共主机区域“子集化”或将私有主机区域“回退”或“扩展”为公共的 Google 员工。继续阅读。
首先,R53 是权威的,这意味着你必须提供精确的分辨率,所以使用不同 BIND 视图的常用方法是行不通的。同样,当主机区域名称重叠时,私有区域名称占上风。
其次,R53 将根据“特异性”确定使用哪个主机区域。因此,当用户请求www.example.com
时,名为www.example.com
的主机区域将优先于另一个名为example.com
的主机区域。这是我们可以利用的东西。
按照程序进行:
为您的公共 DNS 记录创建一个公共主机区域(例如example.com
),或者只使用任何其他公共 DNS 记录并跳过此步骤
为每个具有本地/私有镜像/缓存的子域名创建一个私有主机区域(例如www.example.com
)
为每个私有主机区域创建一个默认记录集(将“名称”字段留空)并将它们指向本地地址
将私有主机区域附加到您选择的 VPC 上
这样,如果你的机器请求www.example.com
,并且私有主机区域匹配,它将返回本地地址,否则,它将回退使用公共主机区域。
此解决方案的缺陷是 R53 按主机区域数量向您收费,因此您将不得不支付更多费用。这也有点hacky。否则,它消除了创建和管理您自己的 BIND 服务器、同步公共记录等的复杂性。
【讨论】:
这是准确的。但是我要补充一点,例如,一旦您创建了“www.example.com”私有托管区域,那么其下的任何内容也将使用该私有托管区域。因此,尝试访问“server2.www.example.com”将导致在“www.example.com”私有托管区域而不是公共区域中查找其 IP。【参考方案2】:您需要为专用区域设置不同的域。像“example.internal”这样的东西然后你可以有“cache.example.internal”
cache.private.example.com 不会在您当前的设置中解析,因为它会寻找 example.com 来解析该 dns。另请注意,它只会在 VPC 内部解析。
【讨论】:
我发现这个简介让我相信示例 2 是可能的,但不确定它是否仅适用于“拆分视图”或可以按照我的布局工作。 docs.aws.amazon.com/Route53/latest/DeveloperGuide/…参见“拆分视图”部分 @MatthewMcCants,没有。 private.example.com 上的一个私有托管区域将与公共区域 example.com 共存,并具有完全所需的行为——私有记录仅在内部可见,public.example.com 外部的公共记录在内外可见。这种配置没有冲突也没有歧义。私有区域在私有区域的顶点及以下(而不是在其上方)掩盖了公众。以上是关于AWS Route53:同一域下的私有和公共托管区域的主要内容,如果未能解决你的问题,请参考以下文章
我可以在不使用 Route 53 的情况下将我的域和子域指向 AWS 托管吗?