配置 Transit Gateway
Transit Gateway 是一个区域级的服务,所以我们每一个区域创建一个就可以了。我们先到 VPC 的界面,点击 Transit Gateway,在第一个区域(佛吉尼亚州)创建一个 TGW,输入名字,保持其他的配置默认,点击创建 Transit Gateway。
在第二个区域(俄亥俄州),同样创建另一个 TGW。
在弗吉尼亚区域, VPC 界面中找到 Transit Gateway Attachments ,创建一个 TGW 的对等连接,选择另一端 TGW 所在的区域和 ID,然后点击创建按钮。
然后我们去到俄亥俄区域,找到相应的位置,选择接受这个 TGW 。至此,两个 TGW 就 Peering 成功了,它们之间配置了路由表之后,就可以直接通信了。
接着,我们还需要把每个区域的 VPC 都附加到相应的 TGW 中,这样 TGW 才能接管 VPC 的流量,帮 VPC 做路由转发。
我们需要把架构图中的 4 个 VPC 都做类似的关联操作(此处省略具体操作),关联到对应的 TGW 上。
配置 Direct Connect Gateway
进入 Direct Connect 的页面,创建一个 Direct Connect Gateway,输入名字和相应的 BGP ASN 号码。
我们如果有一个 1G/10G 的 Direct Connect 线路,就可以创建一个 Transit Vif 了(或者我们也可以直接找 APN Partner 合作伙伴申请一个 Transit VIF)。在创建的过程中,需要关联到之前创建的 Direct Connect Gateway,如果一切配置正常,那么这个 VIF 的状态会变成可用的,BGP 状态也是 UP 的。
在 Direct Connect 的页面,点击 Direct Connect Gateways,选择刚才创建的网关,然后选择 Gateway Associations 标签,进入如下界面。选择要关联的 TGW,输入需要从这个 TGW 导入的路由前缀,点击关联网关按钮。
注意:此处可以填写明细路由 10.1.1.0/24(VPC1 的网段) 和 10.1.2.0/24(VPC2 的网段),我们也可以对这两个网段进行聚合,聚合成 10.1.0.0/16,从而减少客户端路由器收到的路由条目数。
重复以上操作,将另一个区域的 TGW 也关联上来,路由前缀填写 10.2.0.0/16。
至此,Direct Connect Gateway 就和 2 个 TGW 关联在一起了。
路由表设置
TGW 的路由表
我们可以利用 Transit Gateway 来精细化地控制流量的走向,在 TGW 里面有几个比较关键的概念,分别是 Association 和 Propagations。详细的解释可以看官网页面。
简单来说,我们可以在 TGW 上创建多个路由表,通过 Association 来控制这个路由表谁来用,通过 Propagations 来自动从哪些地方学 BGP 路由。最后通过学过来的路由和静态路由的设置来控制具体的路由走向。
如下图所示,是佛吉尼亚区域的 TGW 的默认路由表条目,红色框框的部分是从其他地方(VPC 和本地网络)自动学过来的。然后这里我还手动添加了一条静态路由(10.1.0.0/16),针对俄亥俄区域的流量走 TGW Peering。
除了默认路由表,我们还可以创建更多的路由表,每个路由表关联不同的 Attachment,来精细化控制每一个 Attachment 的路由走向。
VPC 的路由表
我们需要到所有 VPC 的所有子网路由表中,添加一个条目,将默认路由(0.0.0.0/0)的下一跳填写为该区域的 TGW,这样所有默认的流量 VPC 才会转发到 TGW 中,然后由 TGW 来决定继续怎么走。
注意:如果这个子网恰好是公有子网,已经有一条默认路由指到了 Internet Gateway,那么我们这里填写一个汇聚的内网网段就可以了,比如 10.0.0.0/8,192.168.0.0/16 等。
检查连通性
当以上都配置完成后,我们可以检测下两两的连通性。
从本地网络(客户端路由器)查看路由表信息:
可以看到本地网络已经通过 BGP 从 AWS 两个不同的区域都学到了所有的路由,并且可以直接连通到图上的 4 个不通区域。
从 VPC1 到本地网络(东京办公室):
从 VPC1 到 VPC3 (跨区域):
本文转载自 AWS 技术博客。
评论