AWS攻略——使用中转网关(Transit Gateway)连接同区域(Region)VPC

文章目录

《AWS攻略------Peering连接VPC》中,我们使用Peering打通了不同VPC。如果需要打通多个VPC,则需要建立多个Peering,如下图:

虽然Peering非常强大,可以直接跨账户、跨区域连接VPC。但是如果连接的VPC数量比较多的情况下,建立的Peering数量也会增加。

在一个场景下------如果不同VPC在同一区域中,则可以只使用一个中转网关来实现连接。

环境准备

创建VPC

我们选择在"ap-southeast-2"区域中创建,具体的创建过程见《AWS攻略------创建VPC》

名称 IPv4/CIDR IP地址范围
test-vpc-sydney-1 100.0.1.0/24 100.0.1.0~100.0.1.255
test-vpc-sydney-2 100.0.2.0/24 100.0.2.0~100.0.2.255
test-vpc-sydney-3 100.0.3.0/24 100.0.3.0~100.0.3.255

我们给每个VPC分配的IP/CIDR不会产生覆盖,这样也便于后续其他设置。

配置中转网关

给每个VPC创建Transit Gateway专属挂载子网

这步不是必须,但是符合AWS最佳实践

因为Transit Gateway和子网关联,而子网和可用区(Available Zone)一一对应,所以我们将设计的VPC跨越多个可用区,以保证案例完整性。

下图是test-vpc-sydney-1下Transit Gateway专属挂载子网创建案例

子网名称 可用区(region) IPv4/CIDR IP地址范围 所属VPC
test-vpc-sydney-1-tgw-subnet-2a ap-southeast-2a 100.0.1.0/28 100.0.1.0~100.0.1.15 test-vpc-sydney-1
test-vpc-sydney-1-tgw-subnet-2b ap-southeast-2b 100.0.1.16/28 100.0.1.16~100.0.1.31 test-vpc-sydney-1
test-vpc-sydney-2-tgw-subnet-2a ap-southeast-2a 100.0.2.0/28 100.0.2.0~100.0.2.15 test-vpc-sydney-2
test-vpc-sydney-2-tgw-subnet-2b ap-southeast-2b 100.0.2.16/28 100.0.2.16~100.0.2.31 test-vpc-sydney-2
test-vpc-sydney-3-tgw-subnet-2a ap-southeast-2a 100.0.3.0/28 100.0.3.0~100.0.3.15 test-vpc-sydney-3
test-vpc-sydney-3-tgw-subnet-2b ap-southeast-2b 100.0.3.16/28 100.0.3.16~100.0.3.31 test-vpc-sydney-3

创建中转网关

创建页面输入名字和ASN号即可,其他都选择默认。

创建中转网关挂载

给每个VPC创建挂载。这儿就会用到我们之前创建的中转网关专属挂载子网。我们在一个可用区分配了一段16个IP的子网,让中转网关在其中创建挂载的子网。这样这个VPC下的该可用区内网络都会被打通------即该可用区下其他子网也会被打通。

下图是给名字为test-vpc-sydney-1的VPC创建的挂载。其他两个VPC做相似的操作。

修改VPC的路由

到每个VPC的主路由下,将本地地址和中转网关打通。

下图是针对test-vpc-sydney-1的操作,其他VPC也是类似。

验证

创建业务Private子网

以test-vpc-sydney-1为例,如下图操作

子网名称 可用区(region) IPv4/CIDR IP地址范围 所属VPC
test-vpc-sydney-1-private-subnet-2a ap-southeast-2a 100.0.1.32/28 100.0.1.32~100.0.1.47 test-vpc-sydney-1
test-vpc-sydney-1-private-subnet-2b ap-southeast-2b 100.0.1.48/28 100.0.1.48~100.0.1.63 test-vpc-sydney-1
test-vpc-sydney-2-private-subnet-2a ap-southeast-2a 100.0.2.32/28 100.0.2.32~100.0.2.47 test-vpc-sydney-2
test-vpc-sydney-2-private-subnet-2b ap-southeast-2b 100.0.2.48/28 100.0.2.48~100.0.2.63 test-vpc-sydney-2
test-vpc-sydney-3-private-subnet-2a ap-southeast-2a 100.0.3.32/28 100.0.3.32~100.0.3.47 test-vpc-sydney-3
test-vpc-sydney-3-private-subnet-2b ap-southeast-2b 100.0.3.48/28 100.0.3.48~100.0.3.63 test-vpc-sydney-3

创建可被外网访问的环境

我们可以像《AWS攻略------Peering连接VPC》中的方案,通过SSH登录其他VPC上的机器,以确认网络的连通性。于是会先建立一个Public子网,然后在其中放置一台EC2。

我们在test-vpc-sydney-3的ap-southeast-2b可用区下创建一个共有子网test-vpc-sydney-3-public-subnet-2b(100.0.3.64/28)。因为这个可用区下的test-vpc-sydney-3-private-subnet-2b子网已经挂载到中转网关,所以新创建的子网也是跨VPC连通的。

具体创建过程可以见《AWS攻略------子网》

测试子网连通性

Public子网到Private子网

为了区别于Public子网(test-vpc-sydney-3-public-subnet-2b)所在的VPC(test-vpc-sydney-3),我们在test-vpc-sydney-1-private-subnet-2b子网下创建EC2。具体创建过程见《AWS攻略------子网》

这儿需要注意的是,我们对test-vpc-sydney-3-public-subnet-2b设置的独立的路由配置,需要将0.0.0.0/0和互联网网关打通。其他两个VPC的IPv4/CIDR重定向到中转网关。

Private子网到Private子网

这次我们在test-vpc-sydney-2-private-subnet-2a下创建实例,既跨VPC也跨可用区。

这次没有做路由表的修改,因为我们在创建挂载点时,路由表会自动添加所有地址到中转网关的路由项。

知识点

  • 一个中转网关可以连接一个区域内多个VPC
  • 中转网关需要挂载在一个子网下。我们只要在一个可用区内分配一个子网用于挂载中转网关,就可以让这个可用区内其他子网都和中转网关连通。

参考资料

相关推荐
云姜.9 分钟前
线程和进程的关系
java·linux·jvm
是码龙不是码农11 分钟前
支付防重复下单|5 种幂等性设计方案(从初级到架构级)
java·架构·幂等性
曹牧11 分钟前
Spring Boot:如何在Java Controller中处理POST请求?
java·开发语言
heartbeat..12 分钟前
JVM 性能调优流程实战:从开发规范到生产应急排查
java·运维·jvm·性能优化·设计规范
WeiXiao_Hyy15 分钟前
成为 Top 1% 的工程师
java·开发语言·javascript·经验分享·后端
苏渡苇21 分钟前
优雅应对异常,从“try-catch堆砌”到“设计驱动”
java·后端·设计模式·学习方法·责任链模式
团子的二进制世界28 分钟前
G1垃圾收集器是如何工作的?
java·jvm·算法
long31632 分钟前
Aho-Corasick 模式搜索算法
java·数据结构·spring boot·后端·算法·排序算法
rannn_1111 小时前
【苍穹外卖|Day4】套餐页面开发(新增套餐、分页查询、删除套餐、修改套餐、起售停售)
java·spring boot·后端·学习
灵感菇_1 小时前
Java HashMap全面解析
java·开发语言