作者:易云服ezmsp公有云架构师雷凯栋
当只有一条通过partner线路商的专线时,又需要实现多账号公用同一条VIF的场景时,可以通过Transit VIF + DCGW +TGW +RAM的架构共享TGW,来让另外一个账号可以共享使用我们主账号中TGW的Direct Connect Attach来实现跨账号使用专线的场景。
架构图如下:

如图我们通过一条DX实现多账号之间和专线另一侧的网络连通性。需要在拥有DX的账号通过RAM服务将TGW授权给我们的另一个账号,然后再通过另一个账号接受此资源。在共享的TGW中将需要连通的VPC创建Attch 即可通过主账号的路由表完成连通需求。
具体操作步骤如下:
1.首先需要创建一条DXGW,ASN需要按照线路商给出的互联信息填写。

2.在已经拥有的DX上面创建一条类型为transit 的虚拟接口,

网关类型选择Direct connect 网关,选择在第一步创建的DXGW,其他信息根据线路商给出的互联信息填写即可。
3.创建TGW并且创建对应的VPC Attch,在创建TGW时要确保ASN不要与本线路中任何资源的ASN号有重复。

创建VPC Attch,中转网关选择刚刚创建完成的TGW即可。

4.共享TGW给另一个账号,在创建共享资源时委托人勾选外部账户,并且输入另一个账号的Account ID点击添加即可完成创建共享。

完成创建之后在另外一个账号找到与我共享,找到对应的资源进入,右上点击接受完成共享资源。

5.在Account B 账号中创建TGW Attch 选择需要连通的VPC,并且TGW选择刚刚接受的TGW完成创建TGW。创建之后需要在Account A 点击接受此 连 以完成VPC Attch的共享。
6.在刚才创建的DXGW中来绑定TGW。

在允许的前缀处填写需要宣告进BGP的VPC CIDR

7.创建之后在TGW中会出现一条Direct connect的attch。 最终在TGW中创建一个单独属于dx的路由表,然后分别创建传播(两个账号中需要与专线互通的VPC Attch以及Direct Connect Attch) 最终在路由表学习到专线另一端的路由之后,需要在VPC的路由表中添加对应路由并且指向TGW即可。
验证:
AWS Account2 的 EC2 IP:192.168.53.14 对端实例IP:10.110.0.12

注意:
- 在创建Direct Connect网关关联时,也需要将Account 2的VPC CIDR写入。
- 在此链路中,两端的ASN号不可以重复。建议再创建各种资源前先提前规划好ASN。
- VIF类型必须要是Transit VIF才可以连接TGW。