基于Amazon Route 53 Resolver 多区域混合 DNS 部署最佳实践

news2025/3/3 4:33:08

DNS 可为互联网提供域名解析服务,对任何网络应用都十分关键。无论是部署于企业的私有云、公有云还是混合云环境下的 IT 基础设施,通常都会依赖 DNS 记录来完成服务之间或对外的访问。在一个完整的混合云环境中,不仅需要考虑网络层的连通性、可用性等,还需要满足应用在混合云环境下的 DNS 解析需求。

本文将针对一个典型的企业级混合 DNS 环境进行分析,并分别介绍在亚马逊云科技单区域和多区域的场景下使用 Amazon Route 53 构建混合 DNS 部署的最佳实践架构。

混合云场景下的 DNS 解析需求

在传统企业级数据中心 DNS 架构中,从安全角度通常会有以下要求:

  1. 通常采用水平分割(split-horizon)DNS 模式进行部署,即内网和公网均使用同一个域名(例如 example.com),但返回不同的解析结果。其中公网 DNS 系统位于互联网,负责数据中心服务(例如www.example.com)正常对外解析,此时返回公网IP 地址。而内部 DNS 系统承担两项工作,除了对数据中心服务(例如 www.example.com)提供解析服务并返回私网 IP 地址,另一工作是负责当内部服务要查询公网域名时,其把查询任务转发到公网的 DNS 服务器,然后由公网 DNS 服务器完成查询任务。由于把 DNS 系统分内外两部分,互联网上用户只能看到公网 DNS 系统中的服务器,而看不见内部的服务器,而且只有内外 DNS 服务器之间交换 DNS 查询信息,从而保证了系统的安全性。
  2. 所有 DNS 解析记录能够集中存储进行查询,并能够通过策略阻止或允许针对特定域名的查询。在单数据中心的网络环境里,管理员可将所有服务器的 DNS 地址指向数据中心 DNS 服务器来进行统一的日志收集和策略控制。在多云的环境里,通常会优先考虑使用云原生的 DNS 防火墙产品来进行安全控制。截止本文发布之时, 亚马逊云科技的 Route 53 DNS 防火墙产品在中国区还不可用,为了满足安全需求,往往考虑将云上的 DNS 解析请求统一转发至数据中心 DNS 服务器完成控制和解析。

当从私有数据中心扩展至混合云环境时,除了数据中心已经存在的 DNS 系统,还需充分考虑云上 DNS 系统特点,来设计安全、可靠的混合 DNS 环境:

  1. 数据中心和云上应用如何以一种安全的方式访问云上服务域名(例如:亚马逊云科技 S3/SNS/SQS 等服务以 amazonaws.com.cn 后缀结尾的域名)。
  2. 云上托管私有域名(Route 53 私有托管区域)如何能够正确解析。
  3. 数据中心和云上的 DNS 信息如何进行交互,并相互解析。
  4. 跨 VPC 如何实现 DNS 解析的一致性。

基于以上分析结果,分别从数据中心和云上两个角度分析混合云环境下对于 DNS 解析的具体需求。

数据中心视角:数据中心服务器对于 DNS 解析的需求

图一:数据中心服务器的 DNS 解析

如图一所示,位于数据中心的服务器1,需要通过 DNS 实现以下多种类型域名的正确解析:

  1. 公共域名(例如 www.amazon.com):对于公共域名的解析,统一由数据中心 DNS 服务器负责将 DNS 解析请求转发给外部 DNS 服务器 (例如 8.8.8.8)完成解析,以满足企业内部针对 DNS 的安全需求。
  2. 公司对外域名(例如 www.example.com):对于采用水平分割(split-horizon)DNS 架构的企业,此类域名应直接通过数据中心 DNS 服务器进行解析,并返回服务对内私网 IP 地址。
  3. 亚马逊云科技服务域名(以 amazonaws.com.cn 后缀结尾域名地址):亚马逊云科技服务域名默认解析为公网 IP,出于安全需求,需要考虑以私有网络的方式访问云上资源,为了实现这种目标需要使用对应服务的 VPC 接口类型终端节点。当服务器1访问云上的托管服务资源时(例如 S3,SNS,SQS 等)可通过解析为内网的亚马逊云科技原生服务终端节点实现云上服务资源的访问。
  4. Route 53 私有托管区域(PHZ)域名(例如 server2.dev.awscloud.example):PHZ 用于托管云上服务器的私有域名,因此服务器1需要能够解析所有 PHZ 中托管的域名,并返回相对应的私有 IP 地址。
  5. 数据中心私有 DNS 域名(例如 server1.example.com):数据中心内的 DNS 域名将由数据中心的 DNS 服务器直接进行解析,并返回相对应的私有 IP 地址。

云上视角:云中应用服务器对于 DNS 解析的需求

图二:云上服务器的 DNS 解析

如图二所示,为了满足云上服务器2 的 DNS 的解析需求,需要能够正确解析以下域名:

  1. 公共域名(例如 www.amazon.com):对于公共域名的解析,需要将 DNS 解析请求统一转发至数据中心 DNS 服务完成解析,以满足企业内部针对 DNS 的安全需求。
  2. 公司对外域名(例如 www.example.com):对于采用水平分割(split-horizon)DNS 架构的企业,此类域名应通过内网进行访问。由于服务器2位于云上 VPC 私有网络,需要统一将解析请求转发至内网 DNS 服务器进行解析,并返回服务对内私网 IP 地址。
  3. 数据中心私有 DNS 域名(例如 server1.example.com):由于服务器1部署在数据中心,相对应域名也托管在数据中心 DNS 服务器。此场景下的解析请求,将由转发至数据中心 DNS 服务器完成解析,并返回服务器私网 IP 地址。
  4. 亚马逊云科技服务域名(以 amazonaws.com.cn后缀结尾域名地址):当服务器2需要访问云上的托管服务资源时(例如 S3,SNS,SQS 等),由于安全需求,不允许通过公网直接进行访问。此场景下需要通过 VPC 的私有 DNS 完成解析,并返回对应的私有 IP 进行访问。
  5. Route 53 私有托管区域(PHZ)域名(例如 server2.dev.awscloud.example):PHZ 用于托管云上服务器的私有域名,服务器2需要能够解析所有 PHZ 中托管的域名,并返回相对应的私有 IP 地址。

部署架构

DNS 的解析离不开基础网络架构的支撑,一个完善的DNS 方案通常需要结合实际的网络架构进行设计。以下是基于亚马逊云科技典型的网络部署场景,分别介绍在单区域和多区域的环境里设计满足以上 DNS 解析需求的混合 DNS 部署方案。

网络环境

  • 多 VPC 部署架构:在实际的业务场景中,由于 VPC 可以提供更好的隔离性,企业通常采用多 VPC 的部署模式将云上工作负载进行隔离,并通过亚马逊云科技中转网关服务(Transit Gateway)来提供 VPC 之间互联能力,简化多 VPC 网络的连接和管理。此部分详细内容可参考 [3]。
  • 集中式 VPC 接口终端节点:同时为了提高网络安全性并简化针对 VPC 接口终端节点的管理,一般采用集中 VPC 接口终端节点的部署模式,将区域所需要的 VPC 接口终端节点(例如 SNS、SQS 等)集中部署在 “共享服务 VPC”中。在这样的混合网络中,任何客户端(无论是位于数据中心还是云上)访问位于北京区域的亚马逊云科技托管的服务(例如 SNS、SQS),都会通过集中部署的 VPC 接口终端节点从内部网络进行安全的访问,提高网络安全性,此部分详细内容可参考 [2]。网关终端节点不在本文范围之内,您可参考 [7] 进一步了解。
  • 分布式解析 Route 53 私有托管区域:Route 53 私有托管区域(包括用户自定义的 PHZ dev.awscloud.example 和 qa.awscloud.example,以及为 VPC 接口终端节点创建的 PHZ)用来托管云上服务的私有域名,并与所有 VPC 进行关联避免 DNS 多次转发,使云上服务器能直接通过 VPC 内的 DNS 进行解析。
  • 集中式 Route 53 Resolver 入站终端节点和出站终端节点: 通常每个亚马逊云科技区域,只需要一套 Route 53 Resolver 入站终端节点和出站终端节点(位于“共享服务 VPC“),用来和数据中心 DNS 服务器相互转发 DNS 查询信息。

单区域的混合 DNS 方案

通过Route 53 Resolver 能够创建规则来控制 VPC 内的 DNS 查询。为了满足上述定义的企业级 DNS 安全需求,需创建三条自定义 Route 53 Resolver 规则,同样也需要关联所有 VPC,确保其作用在各个 VPC 内的 DNS。这三条规则将共同作用决定哪些 DNS 解析请求转发到数据中心 DNS 服务器,哪些 DNS 解析请求由 Route 53 Resolver 直接进行解析。

  1. awscloud.example:根据 Route 53 Resolver 规则最长匹配原则,该条系统规则将优先于 “.” (图中所示的条件转发规则)。从而确保针对 Route 53 私有托管区域(dev.awscloud.example 和 qa.awscloud.example)域名的解析请求,由 Route 53 Resolver 服务完成对 PHZ 域名的解析。
  2. amazonaws.com.cn:根据 Route 53 Resolver 规则最长匹配原则,该条系统规则将优先于 “.” (图中所示的条件转发规则)。从而确保针对亚马逊云科技服务的域名(图示中的 SNS 和 SQS),由 Route 53 Resolver 解析成对应的 VPC 接口终端节点的私有 IP。
  3. . (点):根据 Route 53 Resolver 规则最长匹配原则,该条件转发规则优先级最低。该条规则确保针对以上其他域名的解析,将转发给数据中心 DNS 完成。

以下是单区域混合 DNS 部署架构:

图三:单区域混合 DNS 部署架构

上述部署架构能够满足前面章节提到的混合 DNS 解析需求,其关键服务的 DNS 解析路径如下:

  • 数据中心服务器 server1 解析 app2.dev.awscloud.example:数据中心 DNS 服务器 → Route 53 Resolver 入站终端节点 → 由 Route 53 Resolver 在 PHZ 中解析查到记录并返回 app2 私有 IP。
  • 数据中心服务器 server1 解析 sns.cn-north-1.amazonaws.com.cn:数据中心 DNS 服务器 → Route 53 Resolver 入站终端节点 → 由 Route 53 Resolver 在 PHZ 中解析查到记录并返回 SNS VPC 接口终端节点私有 IP。
  • 云上服务器 app2 解析 app3.qa.awscloud.example:Spoke VPC 2 的 Amazon DNS 服务器 → 由 Route 53 Resolver 在 PHZ 中解析查到记录并返回 app3 私有 IP。
  • 云上服务器 app2 解析sns.cn-north-1.amazonaws.com.cn:Spoke VPC 2 的 Amazon DNS 服务器 → 由 Route 53 Resolver 在 PHZ 中解析查到记录并返回 SNS VPC 接口终端节点私有 IP。
  • 云上服务器 app2 解析www.amazon.com:Spoke VPC 2 的Amazon DNS 服务器 → 由 Route 53 Resolver 根据现有规则,匹配 .(点)条件转发规则 → Route 53 出站终端节点 → 数据中心 DNS 服务器完成解析并返回对应公网 IP。
  • 云上服务器 app2 解析 www.example.com:Spoke VPC 2 的 Amazon DNS 服务器 → 由 Route 53 Resolver 根据现有规则,匹配 .(点)条件转发规则 → Route 53 出站终端节点 → 数据中心 DNS 服务器完成解析并返回私网 IP。
  • 云上服务器 app2 解析 server1.example.com:Spoke VPC 2 的 Amazon DNS 服务器 → 由 Route 53 Resolver 根据现有规则,匹配 .(点)条件转发规则 → Route 53 出站终端节点 → 数据中心 DNS 服务器完成解析并返回私网 IP。

多区域的混合 DNS 方案

从单区域混合 DNS 环境扩展至亚马逊云科技多个区域时,在相同的 DNS 安全需求下,需要结合 Route 53 相关服务的区域属性,对混合 DNS 环境做进一步升级,以满足多区域网络环境的要求:

  1. Route 53 私有托管区域(PHZ)是没有区域属性的服务。在多区域的环境下,需要确保现有 PHZ 关联至新扩展区域的所有 VPC。
  2. Route 53 Resolver 服务是有区域属性的服务,其中包括 Route 53 Resolver 规则、入站终端节点及出站终端节点等 Route 53 Resolver 相关服务。
    1. 针对 Route 53 Resolver 规则,需要在新增区域部署同样的一套规则,并关联至新增区域所有的 VPC。
    2. 针对 Route 53 Resolver 出站终端节点,由于其需要与新增区域 Route 53 Resolver 条件转发规则相关联,因此也需要在新增区域部署。
    3. 针对 Route 53 Resolver 入站终端节点,此架构下其主要用于接收数据中心 DNS 转发过来的 DNS 请求,通过北京区域的入站终端节点已经可以进行正常解析查询。因此可以选择性的在新增区域部署,以提高整体网络的冗余度。
  3. VPC 和 VPC Endpoint是有区域属性的服务。通过区域内的 VPC 接口终端节点,只能访问该区域所在的亚马逊云科技服务终端节点。因此在新增区域中,需要部署对应的 VPC 接口终端节点;同时考虑跨区域访问的需求,还需考虑网络的联通性,确保跨区域的访问请求能正常路由至对端区域的 VPC 接口终端节点。关于跨区域的网络联通,可以通过 VPC 对等连接或者中转网关实现,详细可参考 [2]。

以下是从单区域扩展至多区域混合 DNS 部署架构:

图四:多区域混合 DNS 部署架构

图四是扩展至亚马逊云科技两个区域之后的混合 DNS 部署架构图,上述单区域下的 DNS 解析路径仍保持不变,针对新增区域(宁夏区域)内的资源,相关的 DNS 解析路径为:

  1. 数据中心服务器 server1 解析 sns.cn-northwest-1.amazonaws.com.cn:数据中心 DNS 服务器 → (北京区域)Route 53 Resolver 入站终端节点 → 由 Route 53 Resolver 在 PHZ 中解析查到记录并返回部署于宁夏区域的 SNS VPC 接口终端节点私有 IP。
  2. 云上服务器 app2 解析 sns.cn-northwest-1.amazonaws.com.cn:(北京区域)Spoke VPC 2 的 Amazon DNS 服务器 → 由 Route 53 Resolver 在 PHZ 中解析查到记录并返回部署于宁夏区域的 SNS VPC 接口终端节点私有 IP。
  3. 云上服务器 app5 解析 server1.example.com:(宁夏区域)Spoke VPC 5 的 Amazon DNS 服务器 → 由 Route 53 Resolver 根据现有规则,匹配 .(点)条件转发规则 → (宁夏区域)Route 53 出站终端节点 → 数据中心 DNS 服务器完成解析并返回私网 IP。

总结

以上针对一个典型的混合 DNS 用户场景,介绍了企业级混合 DNS 环境的功能、安全方面的需求。并结合亚马逊云科技 Route 53 Resolver 的入站终端节点、出站终端节点、系统规则、条件转发规则以及私有托管区域等功能,详细介绍了单区域、多区域下部署的典型架构。

如您需要详细了解亚马逊云科技 Route 53 相关组件功能,来进一步提升您的混合 DNS 环境的扩展、安全等能力,您还可参考以下文档继续阅读:

  • [1]: Route 53 介绍:什么是 Amazon Route 53? - Amazon Route 53
  • [2]: 集中式VPC 接口终端节点部署:Centralized access to VPC private endpoints - Building a Scalable and Secure Multi-VPC AWS Network Infrastructure
  • [3]: 多VPC 网络架构:AWS Transit Gateway  - Building a Scalable and Secure Multi-VPC AWS Network Infrastructure
  • [4]: 使用Route 53 Resolver 简化多账户环境下 DNS 的管理:Simplify DNS management in a multi-account environment with Route 53 Resolver | AWS Security Blog
  • [6]: 基于Route 53 和中转网关的混合云环境下的集中式 DNS 管理:Centralized DNS management of hybrid cloud with Amazon Route 53 and AWS Transit Gateway | Networking & Content Delivery
  • [7]: 如何选择访问Amazon S3 的终端节点策略Choosing Your VPC Endpoint Strategy for Amazon S3 | AWS Architecture Blog

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1157855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

查看局域网内另外一个电脑屏幕

查看局域网内另外一个电脑屏幕是一个相对简单但实用的技术。在局域网中,我们可以使用远程桌面、网络发现和共享、软件等技术来实现这一目标。 今天重点讲解一下,如何通过域之盾软件来查看另一个电脑屏幕: 1、部署软件,安装提示一…

【前端系列】Element-UI 悟道

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

基于orangepi lts 3 的延时摄影程序

利用orangepi 摄像头 使用python写一个延时摄影的程序。 一,思路 orangepi 外接摄像头,利用opencv,按照一定间隔取图,再利用opencv 将图片编码成视频。 利用mqtt进行通讯,可以写一个app进行控制。 二,代…

layui form表单 label和input宽度

情况是这样的&#xff0c;表单里有多个输入框&#xff0c;只有个别label 是长的&#xff0c;我就想调整一下个别长的&#xff0c;其它不变 <div class"layui-form-item"><label class"layui-form-label">是否分标分量:</label><div …

计算机毕业设计选题推荐-校园失物招领微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

没搞错吧?阿里云99元一年服务器老用户可以买!

阿里云老用户优惠服务器99元/年&#xff0c;谁再说阿里云不好我给谁急&#xff0c;云服务器ECS配置为经济型e实例&#xff0c;2核CPU、2G内存、3M固定带宽、40G ESSD entry 系统盘&#xff0c;老用户优惠价99元一年&#xff0c;老用户可以买&#xff0c;当然新用户也可以买&…

轻松玩转人物风格迁移!DualStyleGAN让你一键生成各种风格人物图片!【一个有趣的开源项目】

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐--…

OOM如何处理

1. OOM是什么 OOM是Out of Memory的缩写&#xff0c;意思是内存溢出。它是指程序在申请内存时&#xff0c;系统可分配的内存已不足&#xff0c;从而导致程序运行失败。 2. OOM发生的一些情况 Java heap space 1.1 解释说明 当堆内存&#xff08;Heap Space&#xff09;没有足…

使用VS2017打包安装程序如何修改默认安装路径

步骤如下&#xff1a; 首先找到安装项目 打开文件系统 点击鼠标右键&#xff0c;view-文件系统。这时打开文件系统 找到Application Folder的属性窗口 修改DefaultLocation的属性 如果想改变默认的安装路径&#xff0c;修改DefaultLocation的属性。 去掉计算机的名称。 完…

2023世界传感器大会即将开启,汉威科技向全球发出邀请

由河南省政府、中国科学技术协会主办&#xff0c;郑州市人民政府、中国仪器仪表学会、河南省工业和信息化厅、河南省科学技术协会承办的“2023世界传感器大会”将于11月5日~7日在郑州国际会展中心举办。 传感器是链接数字世界与物理世界的桥梁&#xff0c;是万物互联、智慧化时…

pytorch复现_NMS

NMS&#xff08;非极大值抑制&#xff09;阈值是用于控制在一组重叠的边界框中保留哪些边界框的参数。当检测或识别算法生成多个边界框可能涵盖相同物体时&#xff0c;NMS用于筛选出最相关的边界框&#xff0c;通常是根据它们的置信度分数。 具体来说&#xff0c;NMS的工作原理…

大数据预处理与采集实验三:Urllib的GET和POST请求(1)

目录 Urllib基本操作-GET ➢没有进行utf-8编码的输出 ➢经过utf-8decode之后的输出 ➢ Timeout参数&#xff1a;捕获由于连接超时而引发的异常 ◆Urllib基本操作-定制请求头 ➢ 在GET请求中加入多个访问参数 ◆Urllib基本操作-POST ➢有道词典网页爬取&#xff1a;找到…

中文编程软件哪个好用,初学编程软件推荐

中文编程软件哪个好用&#xff0c;初学编程软件推荐 给大家分享一款中文编程工具&#xff0c;零基础轻松学编程&#xff0c;不需英语基础&#xff0c;编程工具可下载。 这款工具不但可以连接部分硬件&#xff0c;而且可以开发大型的软件&#xff0c;想如图这个实例就是用这个…

关于Kubernetes——cka认证含金量怎么样?

2019年和2020年&#xff0c;Rancher分别对近1,000名专业人员展开了调查。调查结果表明&#xff0c;Kubernetes在不同行业连续两年保持了90%以上的采用率&#xff0c;而生产环境中的容器采用率从2019年的85%增长至2020年的87%。 SUSE大中华区总裁秦小康表示&#xff1a;“从调研…

Seata入门系列【18】Seata集成Mybatis-Plus多数据源

1 前言 在使用单个服务&#xff0c;多数据源时&#xff0c;也存在分布式事务问题。 当单体系统需要访问多个数据库&#xff08;实例&#xff09;时就会产生分布式事务。 比如&#xff1a;用户信 息和订单信息分别在两个MySQL实例存储&#xff0c;用户管理系统删除用户信息&am…

Scala和Play WS库编写的爬虫程序

使用Scala和Play WS库编写的爬虫程序&#xff0c;该程序将爬取网页内容&#xff1a; import play.api.libs.ws._ import scala.concurrent.ExecutionContext.Implicits.global ​ object BaiduCrawler {def main(args: Array[String]): Unit {val url ""val proxy…

超详细的接口测试用例编写

自动化始终只是辅助测试工作的一个手段&#xff0c;对于测试人员而言&#xff0c;测试基础和测试用例的设计才是核心。如果测试用例的覆盖率或者质量不高&#xff0c;那将这部分用例实现为自动化用例的意义也就不大了。 那么&#xff0c;接口测试用例应该怎么编写呢&#xff1…

Powercli批量修改分布式交换机端口组

背景 需求&#xff1a; 批量修改虚拟机的分布式端口组 解决&#xff1a; 三条命令解决&#xff1a;先获取目标虚拟机、获取目标端口组、修改虚拟机端口组、检查虚拟机状态。 $vm Get-VM -Name <虚拟机名称> $portGroup Get-VirtualPortGroup -Name <端口组名称…

数据出境安全评估:重要性和实施策略

数据出境安全评估是确保数据安全和合规的重要环节。随着全球化的加速和信息技术的快速发展&#xff0c;企业和个人需要处理大量的数据&#xff0c;其中许多数据涉及个人隐私和企业机密。因此&#xff0c;数据出境安全评估对于保护数据安全和隐私权至关重要。 一、数据出境安全评…

深度学习_3 数据操作之线代,微分

线代基础 标量 只有一个元素的张量。可以通过 x torch.tensor(3.0) 方式创建。 向量 由多个标量组成的列表&#xff08;一维张量&#xff09;。比如 x torch.arange(4) 就是创建了一个1*4的向量。可以通过下标获取特定元素&#xff08;x[3]&#xff09;&#xff0c;可以通…