AmazonRoute53Resolver落地中国区,轻松玩转私有域名互访不是梦
一起来看看我们的新服务带来了什么新惊喜吧~
Amazon Route 53 Resolver 解析程序是亚马逊云科技在中国区新推出的一项服务,为用户提供了私有域名间的互访功能。
假如您已经为数据中心的服务规划了私有域名(onprem.abc.internal),通过本地 DNS 服务器来托管该私有域名,并且部署了 DNS resolver 响应数据中心请求端的私有域名解析请求。您同时在亚马逊云科技云端部署了 VPC,通过 DX 专线或 IPsec 和数据中心互联;您为部署在 VPC 中的服务也规划了私有域名(cloud.abc.internal),并通过亚马逊云科技Amazon Route 53 托管该域名,位于 VPC 中的请求端(如 Amazon EC2)使用
现在位于数据中心的请求端可以通过数据中心 DNS 系统解析到 onprem.abc.internal 的私有域名;位于亚马逊云科技云端的请求端可以通过 Amazon Route 53 系统解析到cloud.abc.internal 的私有域名。如下图:
但位于数据中心的请求端无法通过数据中心 DNS 系统解析到 cloud.abc.internal 的私有域名;位于亚马逊云科技云端的请求端无法Amazon Route 53系统解析到 onprem.abc.internal 的私有域名。
所以我们需要将这 2 个私有域名解析打通,实现位于数据中心的请求端可以通过
Amazon Route 53 Resolver
解析程序概述
- 传统实现方法
以往实现以上功能一般通过在 VPC 中部署安装了 DNS Proxy 软件的 Amazon EC2 服务器完成。
从数据中心发起的查询云端服务器的 DNS 解析请求和响应流程如下图:
- 步骤
- 来自数据中心的请求端向位于数据中心的 DNS resolver 发起 DNS 查询请求,查询www.cloud.abc.internal
- 该 DNS 请求通过本地 DNS resolver 转发到位于亚马逊云科技云端VPC中的DNS Proxy 上
- DNS Proxy 将该 DNS请求转发给Route 53 DNS resolver EC2 Endpoint(
.2) - Route 53 DNS resolver EC2 Endpoint访问 Amazon Route 53 查询该私有域名
- Amazon Route 53 返回 www.cloud.abc.internal 的解析结果(IP地址x.x.x.x),给到 Route 53 DNS resolver EC2 Endpoint
- Route 53 DNS resolver EC2 Endpoint将解析结果返回DNS Proxy
- DNS Proxy将解析结果返回 DNS Resolver
- DNS Resolver将解析结果x.x.x.x返回 client
- Client 根据收到的解析结果,向位于亚马逊云科技云端的 x.x.x.x 发起连接。
从云端发起的查询数据中心服务器的 DNS 解析请求和响应流程如下图:
- 步骤
- 亚马逊云科技云端 VPC 的 client 端首先将 DNS resolver 修改为 DNS Proxy 的 IP 地址,然后 DNS proxy 发起 DNS 查询请求,查询www.onprem.abc.internal
- 该 DNS 请求通过 DNS proxy 预先定义的规则转发到位于数据中心中的 DNS Resolver 上
- DNS Resolver 向 Auth DNS 查询该私有域名
- Auth DNS 返回 www.onprem.abc.internal 的解析结果(IP地址s.s.s.s)
- DNS Resolver 将解析结果返回 DNS Proxy
- DNS Proxy 将解析结果 s.s.s.s 返回 client
- Client 根据收到的解析结果,向位于数据中心的s.s.s.s 发起连接。
(此方案需要客户自己来搭建和运维,还需要考虑高可靠性,会带来额外的复杂性和管理难度。)
Amazon Route 53 Resolver 实现方式
Amazon Route 53 Resolver 通过亚马逊云科技原生的方式实现了该功能,避免安装 DNS Proxy EC2 带来的复杂度和管理难度。
Amazon Route 53 resolver 提供了 inbound endpoint,可以接收来自 VPC 外部请求该
Amazon Route 53 resolver 同时提供了 Outbound endpoint, VPC 内请求端发往 VPC 外的 <主机+私有域名解析> 将通过 Outbound endpoint 按照预先定义的规则转发到指定的外部 DNS resolver。
通过 Amazon Route 53 resolver,从数据中心发起的查询云端服务器的 DNS 解析请求和响应流程如下图:
- 步骤
- 来自数据中心的请求端向位于数据中心的 DNS resolver发起DNS查询请求,查询www.cloud.abc.internal
- 该 DNS 请求通过本地 DNS resolver 转发到位于亚马逊云科技云端 VPC 中的Route 53 Inbound Resolver Endpoint 上
- Route 53 Inbound Resolver Endpoint 访问 Amazon Route 53 查询该私有域名
- Amazon Route 53 返回 www.cloud.abc.internal 的解析结果( IP 地址 x.x.x.x)
- Route 53 Inbound Resolver Endpoint 将解析结果返回 DNS Resolver
- DNS Resolver 将解析结果 x.x.x.x 返回 client
- Client 根据收到的解析结果,向位于亚马逊云科技云端的 x.x.x.x 发起连接。
通过 Amazon Route 53 resolver,从云端发起的查询数据中心服务器的 DNS 解析请求和响应流程如下图:
- 步骤
- 亚马逊云科技云端 VPC 的client端首先向 Route 53 EC2 resolver Endpoint(
.2 IP地址)发起 DNS 查询请求,查询www.onprem.abc.internal - Route 53 EC2 resolver Endpoint 将该 DNS 请求提交给 Amazon Route 53 resolver 后台
- Amazon Route 53 resolver后台将该DNS请求传递给 Route 53 outbound resolver Endpoint
- 该 DNS 请求通过 Route 53 outbound resolver Endpoint 预先定义的规则转发到位于数据中心中的 DNS Resolver 上
- DNS Resolver 向 Auth DNS 查询该私有域名
- Auth DNS 返回 www.onprem.abc.internal 的解析结果(IP 地址 s.s.s.s)
- DNS Resolver 将解析结果返回 Route 53 outbound resolver Endpoint
- Route 53 outbound resolver Endpoint 将解析结果提交给 Amazon Route 53 resolver 后台
- Amazon Route 53 resolver 后台将解析结果传递给 Route 53 EC2 resolver Endpoint
- Route 53 EC2 resolver Endpoint 将解析结果 s.s.s.s 返回 client
- Client 根据收到的解析结果,向位于数据中心的 s.s.s.s 发起连接。
Route 53 inbound / outbound Resolver Endpoint 和规则都是亚马逊云科技的托管服务。Endpoint 位于 VPC(实际形态是单独的 ENI 接口),提供对外通信接口;具体实现通过 Route 53 的后台。
可以通过创建多个 Route 53 inbound / outbound Resolver Endpoint 实现访问级的高可靠保证。
Amazon Route 53 resolver
解析程序配置
Amazon Route 53 resolver配置包括Route 53 resolver Inbound endpoint 入站终端节点配置,Route 53 resolver Outbound endpoint 出站终端节点配置,以及和出站终端节点配合的转发规则的配置。
- Route 53 resolver Inbound endpoint 入站终端节点配置
Inbound Endpoint 服务将会在 VPC 中创建 ENI 网卡作为访问入口,可以根据实际情况在该 VPC 不同的 AZ 创建多块 ENI 网卡来实现冗余备份,ENI 网卡可以创建在现有的子网中,也可以单独新建子网来创建 ENI。
创建 Inbound endpoint 步骤如下:
1.入口菜单
选择北京区域或宁夏区域
2. 通用配置
定义 Inbound Endpoint 入站终端节点名字
- 关联 VPC,只能关联一个 VPC
- 关联安全组,在安全组中放行 DNS 协议(TCP/UDP 53)
3. 定义IP地址
- 可以定义多个 IP 地址(ENI 端口),IP 地址数量上限和 AZ 数量对应;
- 定义IP地址所属的 AZ 和子网;
- 可以选择自动分配地址或手工定义地址(手工定义地址必须在子网范围内)
4. 定义标签
Route 53 resolver Inbound endpoint 出站终端节点配置
创建 Outbound endpoint 出站终端节点步骤和 Inbound endpoint 入站终端节点相同。
Inbound Endpoint 如站终端节点 Outbound Endpoint 出站终端节点均使用 VPC 内部 IP 地址,通过和数据中心互联的 DX 或 IPsec 专用线路被数据中心 DNS resolver 访问或访问数据中心 DNS resolver。
- 转发规则配置
1. 入口
2. 定义规则
- 定义规则名字
- 使用 Forward 转发至作为规则类型
- 定义匹配的私有域名,只有 DNS 请求中包含该私有域名才会启用该规则
- 关联 Outbound Endpoint 出站终端节点
- 可以将该规则关联到其他 VPC(可选),其他 VPC 可以共享该 Outbound Endpoint 发送数据中心主机+私有域名查询
3. 定义转发 IP 地址(如数据中心的 DNS resolver)和标签
构建完整的数据中心和 VPC 私有域名互访还需要完成如下工作:
- 在 Amazon Route 53 中创建 VPC 私有域名
- 在数据中心 DNS resolver 上定义转发规则,转发访问 VPC 私有域名的请求至 Inbound Endpoint IP 地址(可以写多个 IP地址作为备份)
学习了以上的内容,你是不是跃跃欲试了呢?我们一起来验证一下吧~
最后,我们来构建一个测试环境验证 Amazon Route 53 DNS Resolver。
如上图,我们在亚马逊云科技中国区中构建了2个 VPC(vpc_cloud和vpc_onprem),分别模拟构建在亚马逊云科技中国区的VPC和用户的数据中心;
在2个 VPC 中分别部署 2 台 Amazon EC2,一台 Amazon EC2 作为 Client,一台 Amazon EC2 作为 Server;在 2 个 VPC 中分别部署 2 个 CSR1000v EC2 appliance,通过 IPsec 进行互联,打通 2 个 VPC 私有网段间的连接,以此模拟 VPC 和数据中心间的互联;
在 vpc_onprem 中部署一台 DNS 服务器(使用 Bind 软件),承担 Auth DNS名字服务器(Host onprem.abc.internal)和 DNS Resolver解析服务器的角色,托管onprem.abc.internal域名,并增加www.onprem.abc.internal A 记录指向位于 vpc_onprem 的server EC2 IP 地址;
在 Amazon Route 53 中创建 cloud.abc.internal 私有托管域名并和 vpc_cloud 关联,增加 www.cloud.abc.internal A 记录指向位于 vpc_cloud的server EC2 IP 地址;在 Amazon Route 53 resolver 中定义位于 vpc_cloud 的入站终端节点和出站终端节点,并定义出站转发规则(匹配onprem.abc.internal的域名的请求转发到位于vpc_onprem的DNS server IP 地址上);在位于 vpc_onprem中的DNS server 上增加转发规则(匹配 cloud.abc.internal 的域名的请求转发到位于 vpc_cloud 的 Inbound Endpoint 的 IP 地址上)。
位于 vpc_cloud 中的 Client EC2 通过域名方式可以访问位于 vpc_onprem 中的 Server EC2(www.onprem.abc.internal)
同样,位于 vpc_onprem中的Client EC2 通过域名方式也可以访问位于 vpc_cloud 中的Server EC2(www.cloud.abc.internal)
总结
Amazon Route 53 Resolver 解析程序是通过托管服务的方式提供了云上和云下资源私有 DNS 记录的互访,并为您构建易部署/易管理/高可靠的运行环境,适合混合云等部署场景下使用。