Restrict Routing

上一节我们将三个VPC打通,它们之间有了彼此互访的能力。

但是在企业中通常要对VPC之间的访问做限制,例如A与C之间不能进行通讯:

image-20220913075745450

本节我们将实现上面的要求,A和B、B和C能互相通讯,但是A和C之间禁止访问。

上一节中,之所以所有VPC都能互通,是因为每个attachment都共享一张路由表
只要每个attachment有自己单独的路由表,我们就能控制与其他网段之间的访问

接下我们将重建Transit Gateway,然后为每个attachment设置单独的路由表:

image-20220915182702635

Restrict Routing实验

我们继续基于上一节创建的三个VPC,但要先删除掉原来的tgw和三个tgw attachment

image-20220915182939572

image-20220915183037137


创建新的Transit Gateway,注意Default route table associationDefault route table propagation不要钩选:

image-20220915183249515

Default route table association会把TGW的默认路由表应用到所有attachment上:

Automatically associate transit gateway attachments with this transit gateway’s default route table

然后和上一节一样,分别将三个VPC attach到这个TGW上:

image-20220915183440629

image-20220915183459238

创建TGW route table

和上一节不同,我们需要主动创建三个TGW route table, 然后分别绑定对应的三个attachment上。

TGW route table页面上点击创建:

image-20220915183845128

总共创建三个route table, 分别命名为vpc-a-attachment, vpc-b-attachment, vpc-c-attachment:

image-20220915184116871

创建完成的页面:

image-20220915184158305

分别将三个路由表绑定到对应TGW attachment上:

image-20220915184246124

例如vpc-a-attachment路由表绑定到VPC A的attachment:

image-20220915184306446

分别对三张路由表进行绑定。

创建TGW路由表Propagation

这一步我们将主动在路由表上创建传播:

  • 对于VPC A attachment的路由表,只为它创建到VPC B attachment的传播
  • 对于VPC B attachment的路由表,为它创建VPC A attachmentVPC C attachment的传播
  • 对于VPC C attachment的路由表,只为它创建到VPC B attachment的传播。

点击Create propagation

image-20220915184431025

对于VPC A attachment,选择VPC B对应的attachment:

image-20220915184538301

对于VPC B attachment的路由表,为它选择其他两个attachment:

image-20220915184622814

image-20220915184706488

为三个路由表创建propagation完成后,查看Routes,此时根据其他VPC的CIDR,自动创建好了路由:

修改子网路由表并测试

上面我们操作的是TGW的路由表,在子网层面,三个VPC的路由表也需要进行设置。将所有到10.0.0.0/8的流量转到对应的TGW

image-20220915185141791

登录到三个VPC的机器,此时VPC A的机器能ping通VPC B的机器:

image-20220915185258635

但是VPC C的机器却访问不了VPC A:

image-20220915210607646

VPC B的机器能访问通其他两个VPC:

image-20220915212421105

本节我们通过为每个VPC attachment设置单独的TGW路由表,实现了VPC之间的隔离