1、构建混合 DNS 的需求分析
混合云即融合了云资源和本地数据中心,是当前云计算发展过程中的一种模式和阶段,也是很多用户选择的一种业务部署方式。出于如信息保密、行业合规、市场细分等因素或考虑,有些企业更愿意将数据存放在本地数据中心,但是同时又希望可以获得云端的计算资源、网络资源。混合云在企业上云之初往往被广泛的采用。
真正的混合云不仅仅局限于用户数据中心和云端资源的私有网络互通,跨越用户本地网络和云端网络的统一域名解析也是混合云的重要一环。
为什么需要混合 DNS 系统
如图一所示,AWS 为用户提供了 DirectConnect、Site-to-Site VPN 等服务帮助用户在本地数据中心和 AWS 之间建立私有网络连接,实现本地数据中心和 AWS 间流量的安全通信。为了服务的灵活性、弹性扩展等考虑,用户越来越多的使用域名方式实现服务间访问调用。正如我们了解的,AWS 端使用 Route53 提供的私有域名系统实现 AWS 资源的域名解析,而用户本地数据中心往往自行维护私有的域名系统。两边的域名系统都已良好的为本端服务,但是相互独立,当涉及到两端服务互访调用时,却难以实现私有域名的解析。
图一 混合云场景示意
为了实现跨越 AWS 和本地数据中心的 DNS 混合解析,客户可以自行在 AWS 端搭建代理服务,负责在 AWS Route53 和本地数据中 DNS 服务器间转发 DNS 解析请求,如图二所示:
图二 客户自建混合 DNS 系统示意
这种方式下,用户在 AWS 端启动 1 台 EC2 作为 DNS 代理,并为代理配置转发规则:解析 AWS 端资源的请求转发到 Route53,解析本地数据中心域名的请求转达本地 NDS 服务器。同时需要将 AWS 端资源 DNS 服务器指向到代理服务器,在本地 DNS 服务器中添加转发规则:将解析 AWS 端域名的请求转发到代理服务器。
从上面描述中不难看出,整套混合方案完全由用户自己维护。因此也带来了一些性能、可靠性的问题,同时维护整个方案的正常运转也给用户带来了巨大的工作量。
2、Route53 Resolver 功能介绍
AWS 于 2018 年 11 月发布了针对混合云的 Amazon Route 53 Resolver。Route 53 通过入站终端节点和出站终端节点实现 DNS 请求的转发,用户可以通过组合使用两种终端节点快速实现混合 DNS 系统。
2.1 入站终端节点
入站终端节点可以看做是 Route 53 扩展到您指定的 VPC 中的一个或多个弹性网络接口,用于接收来自用户本地数据中心的 DNS 请求。
我们举个例子,用户在 AWS 云端拥有一个域名为 cloud.acd.com 的私有托管域,并在自己的 VPC 中配置了 Route 53 的两个入站终端节点:10.10.1.5 和 10.10.2.5。有了这两个终端节点地址后,用户可以在本地 DNS 服务器中配置规则,即请求 cloud.acd.com 域名的请求转到 10.10.1.5 或 10.10.2.5。这样就实现了本地数据中心解析 AWS 端的私有域名。具体实现过程参见图三:
图三 Route 53 入站终端节点示意
本地数据中服务器发起一个 DNS 请求,解析cloud.acd.com,并将请求发送到本地 DNS 服务器
本地数据中心DNS服务器识别出请求的域名为cloud.acd.com,根据规则转发给 AWS 入站终端节点 10.10.1.5 或 10.10.2.5
DNS 请求通过 DirectConnect 或 Site-to-Site VPN 达到入站终端节点,入站终端节点将请求转发给 Route 53
Route 53 解析到对应的 IP,并将响应报文按照原路径返回
2.2 出站终端节点
同理,出站终端节点也可以看做是 Route 53 扩展到您指定的 VPC 中的一个或多个弹性网络接口,Route 53 可以通过出站终端节点将解析本地数据中心私有域名的请求转发到数据中心 DNS 服务器中。
还是以上一节中的场景,用户在本地数据中心 DNS 服务器中维护了 internal.acd.com 域名。并在 VPC 中配置了两个出站终端节点:10.10.1.10 和 10.10.2.10。这里可以在 Route 53 中配置转发规则:解析 internal.acd.com 的请求可以通过出站终端节点转到本地数据中心 DNS 服务器 172.16.50.5 或 172.16.51.5.具体实现过程参加图四:
图四 出站终端节点示意
AWS云端EC2请求解析internal.acd.com,并将请求发送到云端 DNS 服务器 Route 53
Route 53 检查转发规则,发现解析域名为internal.acd.com,根据规则将请求通过出站终端节点发送到本地数据中心 DNS 服务器
请求包经由 DirectConnect 或 Site-to-Site VPN 达到本地数据中心 DNS 服务器
本地数据中心 DNS 服务器解析到响应的 IP,并将响应宝按照原路径返回给 EC2
3、配置示例及效果验证
1)在 Route 53 中配置入站终端节点,分别指定 subnet-1 和 subnet-2,并指定 IP 地址 10.1.5 和 10.10.2.5
2)配置出站终端节点,分别指定 subnet-1 和 subnet-2,并指定 IP 地址 10.1.10 和 10.10.2.10
3)配置转发规则,将解析域名 internal.acd.com 的请求通过出站终端节点转发到本地数据中心 DNS 服务器 172.16.50.5 和 172.16.51.5
4)在本地数据中心 DNS 服务器中添加转发规则,将解析 cloud.acd.com 域名的请求转发到入站终端节点 10.10.1.5 和 10.10.2.5
5)在本地数据中心服务器中测试 ping test.cloud.acd.com,可以正常联通 AWS 端 EC2
4、小结
本文重点介绍了 Route 53 Resolver 实现的技术原理,通过原理我们不难看出,相比较用户自己搭建代理的方式,使用 Route 53 Resolver 能够更加快捷的为用户构建混合 DNS 系统。同时,由于完全托管,用户不需要再为性能、扩展性和维护便利性担忧,可以把更多精力放在业务创新中。
作者介绍:
张涛
AWS 解决方案架构师,AWS 的云计算方案架构的咨询和设计,同时致力于 AWS 云服务在国内和全球的应用和推广。加入 AWS 之前曾就职于 H3C、网易等公司,拥有丰富的企业 IT 信息化经验。
本文转载自 AWS 技术博客。
原文链接:
https://amazonaws-china.com/cn/blogs/china/route53-to-build-mixed-dns-system/
评论