1. 课程导入与架构总览
当企业从单个 VPC 起步,逐步扩展到十几个、几十个甚至上百个 VPC 时,网络连接会迅速从“能通就行”演变为“难以治理”。传统做法是使用 VPC Peering 两两互联,但 Peering 是点对点关系,连接数量随 VPC 数量呈组合式增长:10 个 VPC 全互联需要 45 条 Peering,50 个 VPC 则需要 1225 条。更麻烦的是,Peering 不支持传递路由,A 与 B 通、B 与 C 通,并不代表 A 与 C 通,每新增一个 VPC 都要重新审视与所有既有 VPC 的连通关系。AWS Transit Gateway(简称 TGW)正是为解决这一规模化管理问题而设计的区域级网络中转枢纽。
可以把 TGW 理解为一台由 AWS 托管的“虚拟路由器”。各个 VPC、VPN、Direct Connect 网关、甚至其他 TGW 都作为附件(Attachment)挂接到这个中心节点上,由 TGW 统一维护路由表并转发流量。这样,网络拓扑从“网状”收敛为“星型”,新增 VPC 只需挂接一次,而不再需要与每个既有 VPC 单独建立连接。TGW 的核心价值可以概括为四点:集中连接(一个枢纽承载多类附件)、路由可控(通过多张路由表实现分段与隔离)、规模弹性(单附件支持大量 VPC 与高带宽)、跨域延伸(通过 Peering 连接不同区域、通过共享实现跨账号)。
需要特别区分 TGW 与几个容易混淆的概念。VPC Peering 是点对点、不传递路由;Transit Gateway 是中心辐射、可传递路由;VPC Endpoint 解决的是访问 AWS 服务而非 VPC 之间互联;PrivateLink 提供的是单向服务暴露而非双向网络互通。理解这些边界,是后续设计路由与安全策略的前提。
从图中可以看到,TGW 位于拓扑中心,左侧是同一区域内多个 VPC,右侧是本地数据中心、跨区域 TGW 和跨账号共享。所有附件通过 Attachment 挂接,流量不再点对点直连,而是先到 TGW,再由 TGW 的路由表决定下一跳。这正是“集中连接、路由可控”的直观体现。
学习路径
本课程围绕 TGW 的完整能力展开,建议按以下路径推进。第一阶段建立概念与架构认知,理解 TGW 的定位、附件类型与路由表模型;第二阶段动手搭建最小可用环境,创建 TGW、挂接两个 VPC、配置路由并验证连通性;第三阶段深入路由控制,学习多路由表、路由传播、黑名单与分段隔离;第四阶段扩展到混合云与跨域场景,接入 VPN、Direct Connect、TGW Peering 与 RAM 共享;第五阶段关注可观测性与运维,使用 CloudWatch 指标、Flow Logs 和 Reachability Analyzer 排查问题。每一阶段都应有可验证的结果,而不是只看文档。
实验环境准备
为了让后续实验可复现,建议统一使用如下示例参数。这些参数属于教学示例,实际使用时可根据账号情况调整,但应保持地址段不重叠,否则 TGW 无法正确转发。
| 对象 | 示例值 | 说明 |
|---|---|---|
| 区域 | us-east-1 | TGW 为区域级资源,实验统一在同一区域 |
| VPC A | 10.0.0.0/16 | 模拟生产环境,含公有子网与私有子网 |
| VPC B | 10.1.0.0/16 | 模拟测试环境 |
| VPC C | 10.2.0.0/16 | 模拟共享服务,如 DNS、目录服务 |
| TGW | ASN 64512 | 默认 ASN,用于 BGP 场景 |
| TGW 子网 | 每可用区一个 /28 | 挂接 VPC 时需指定 TGW 子网 |
| 验证实例 | t3.micro | 每 VPC 至少一台,用于 ping / traceroute |
创建 TGW 时,关键参数包括:名称、描述、ASN(默认 64512)、默认路由表关联与传播开关。建议实验初期保持“默认路由表关联”和“默认路由表传播”均为启用,这样挂接的 VPC 会自动学习彼此路由,便于快速验证连通性。后续再关闭默认传播,改用自定义路由表实现精细控制。
# 示例:创建 Transit Gateway(AWS CLI)
aws ec2 create-transit-gateway \
--description "lab-tgw" \
--options AmazonSideAsn=64512,AutoAcceptSharedAttachments=enable,DefaultRouteTableAssociation=enable,DefaultRouteTablePropagation=enable
# 创建 VPC 附件(以 VPC A 为例)
aws ec2 create-transit-gateway-vpc-attachment \
--transit-gateway-id tgw-0123456789abcdef0 \
--vpc-id vpc-0aaa1111bbbb2222 \
--subnet-ids subnet-0aaa1111 subnet-0bbb2222
# 在 VPC A 路由表中添加指向 TGW 的路由
aws ec2 create-route \
--route-table-id rtb-0aaa1111 \
--destination-cidr-block 10.1.0.0/16 \
--transit-gateway-id tgw-0123456789abcdef0
完成挂接后,如何判断环境是否就绪?可以从三个层面观察。第一,在 TGW 控制台的“附件”页面确认状态为 available;第二,在 TGW 路由表中确认已出现各 VPC 的 CIDR,且类型为 propagated;第三,从 VPC A 的实例 ping VPC B 的私有 IP,若返回正常且 traceroute 显示经过 TGW 网段,则说明转发路径已生效。若 ping 不通,优先检查安全组是否放行 ICMP、VPC 路由表是否指向 TGW、以及 TGW 路由表是否包含目标 CIDR。
本节建立了 TGW 的整体认知:它把多 VPC 的点对点连接收敛为中心辐射结构,通过附件和路由表实现集中连接与可控转发。接下来将从 TGW 的基本概念与组件开始,逐步进入实际配置与验证。