亚马逊AWS官方博客

搭建DX Gateway,轻松互联全球架构

Direct Connect Gateway是什么,能做什么

您可以使用新的Direct Connect Gateway功能建立跨越多个AWS区域的虚拟私有云(VPC)的连接。 您不再需要为每个VPC建立多个BGP会话; 这可以减少您的管理工作量以及网络设备的负载。

此功能还允许您从任何直接连接位置连接到任何绑定的VPC,从而进一步降低跨区域使用AWS服务的成本。

为了使您可以有更直观的区别体验,我们可以通过下面的对比图来更好的体会一下

在没有DX Gateway之前:

需要互联VPC的话,每个VIF需要和对应VPC的VGW绑定。也就是说,有多少希望互联的VPC,就需要维护多少VIF到VGW的链路。并且如果需要互联的VPC是跨region的,那么就需要多条AWS DX链路。这就意味着更多的DX代理商,更多的沟通时间,更多的维护成本。

下图标注出了,有两个不同的region资源(us-west-1和us-east-1)的客户Account-0希望通过DX来给其下面的子账号Account-1和Account-2分别分配DX VIF,使其可以更快的访问放在us-west-1和us-east-1的VPC资源。这就需要用户分别在这两个region找DX partner开启DX服务,并且针对每个VPC创建一个VIF连接。

有DX Gateway之后:

每个DX Gateway都是跨所有公共AWS区域存在的全局对象。这就使得所有的AWS全球区域之间可以通过网关进行的所有通信,而这类全球通信是通过AWS网络骨干进行保障的。

和上述同样的需求,我们来看看有DX Partner的情况会怎么样。Account-0账户只需要在最近的region,比如us-west-1申请一个DX专线。再创建一个AWS Global全局的DX Gateway。分别分配给account-1和account-2账户一个VIF连接DX Gateway,再将希望访问的VPC直接和DX Gateway绑定就解决了。

总结一下DX Gateway的作用: 在只需要拉一条DX专线的情况下,可以通过DX Gateway和全球region的VPC进行互通。就是这么简单。下面就让我们来亲手搭建一个互通全球region的DX Gateway,享受AWS给我们带来的网络便捷

使用DX Gateway实现不同region内的VPC互通

0. 网络架构图

通过创建DX Gateway并绑定至VIF来做到多个region的VPC互通的步骤如下:

  1. 创建DX Gateway并同步到所有region
  2. 绑定VIF到DX Gateway
  3. 配置本地路由器和DX Gateway形成BGP邻居
  4. 将其他region的VPC绑定的VGW和DX Gateway进行绑定,并打开路由汇聚
  5. 测试本地路由器和各个region的VPC中的EC2的连通性

1. 实际创建DX Gateway

在日本region创建DX Gateway

日本区域出现DX Gateway

一段时间之后在其他region,比如Singapore也会出现DX Gateway。因为DX Gateway是一个全球的资源,所以当一个Region申请DX Gateway时,其他区域也会自动创建DX Gateway

2. 绑定Private VIF到DX Gateway

2.1 直接申请1G/10G的情况,从DX connection开始创建

因为DX Connection无法在测试时申请,所以我这里截屏的是blog上的链接图片:https://amazonaws-china.com/cn/blogs/aws/new-aws-direct-connect-gateway-inter-region-vpc-access/

创建Private VIF,绑定到特定的DX Gateway上。

创建Private VIF,可以选择绑定特定的VGW或者DX Gateway。并且还是需要绑定VLAN和BGP ASN

2.2 申请sub 1G/10G的情况,从VIF配置界面更改

最终用户点击接受上层用户给予的VIF,并且选择绑定到DX Gateway

绑定之后,查看VIF的状态,发现其Amazon Side的ASN号和DX Gateway的一致

VIF信息:

DX Gateway信息:

3. 配置本地路由器和AWS侧建立BGP邻居

按照VIF的VLAN和IP地址信息,配置本地路由器的接口。注意接口的VLAN号码需要和VIF接口的一致才能连接。 做完配置之后,先确定链路级别可以ping通。

在可以ping通对端AWS接口IP之后,配置BGP,注意本地AS号是对应VIF的BGP ASN,而remote-as号是对应Amazon Side ASN。配置完毕之后,BGP邻居就会up

在本地路由器上查看BGP邻居信息,检查BGP邻居是否建立

4. 在各个region将希望互通的VPC对应的VGW绑定到DX Gateway上

本地Region的DX Gateway可以绑定本地的VGW

各个Region只能添加自己Region下的VGW

当状态转换为associated时,无论您的VPC驻留在哪个AWS区域,流量都可以通过AWS Direct Connect连接在您的本地网络和VPC之间流动。

在DX Gateway的总界面下,可以看见Global体系下所有加入这个DX Gateway的来自不同region的VGW信息

查看BGP路由表,发现VPC的路由已经传递到本地路由器,其中172.16.0.0/16来自Tokyo,而172.31.0.0/16来自于Singapore

打开Tokyo和Singapore路由表的路由汇聚,让本地数据中心路由可以从VGW灌入VPC本地路由表

查看Tokyo的路由表,有来自VGW的本地数据中心路由

查看Singapore的路由表,有来自VGW的本地数据中心路由

5. 测试本地数据中心到Tokyo和到Singapore的连通性

本地数据中心到Tokyo

本地数据中心到Singapore

至此可以看到,用户可以仅通过创建一个private VIF接口就可以同时访问东京和新加坡的VPC内的EC2主机。

绑定Public VIF到DX Gateway

您现在可以创建公共虚拟接口(Public VIF),通过该接口,您可以通过直接连接访问任何AWS区域(AWS中国区域除外)中运行的AWS服务的公共服务终端(Public Endpoint)。 这些接口通过BGP接收亚马逊的全球IP路由。 您可以在直接连接控制台中创建这些接口,如下图所示:

作者介绍

姚远,AWS解决方案架构师,负责基于AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内的应用和推广。现致力于网络和DevOps相关领域的研究。在加入AWS之前,在思科中国担任系统工程师,负责方案咨询和架构设计,在企业私有云和基础网络方面有丰富经验。