Amazon ANS-C01: Transit Gateway 与网络拓扑 — 学习指南
属于 AWS Advanced Networking Specialty ANS-C01 — 学习指南. 使用经过验证的答案练习: Amazon 考试中心, 或参加限时模拟考试: ExamRoll.io.
核心概念
AWS Transit Gateway (TGW) 是一个区域性的网络中转枢纽,用于集中管理 Amazon VPC、VPN、Direct Connect 网关以及其他 Transit Gateway 之间的路由。简单来说,TGW 扮演着一个路由平面的角色:您创建连接(例如,使用 EC2 API 调用 CreateTransitGatewayVpcAttachment 创建 VPC 连接,使用 CreateTransitGatewayAttachment 创建设备连接,或使用 CreateTransitGatewayPeeringAttachment 创建对等连接),然后通过关联到一个或多个 Transit Gateway 路由表并向其传播路由,来控制这些连接如何交换路由。TGW 上的路由表提供了隔离和分段的原语,使 TGW 能够像多个虚拟路由器 (VRF) 一样工作。对于每个连接,您需要决定它关联到哪个 TGW 路由表(使用 AssociateTransitGatewayRouteTable),以及哪些连接将其路由传播到哪些路由表(通过路由表传播设置)。TGW 会在源连接所关联的所有路由表中,根据最长前缀匹配来转发数据包,因此,仔细设计关联/传播的边界是实现中心辐射型(hub-and-spoke)、分段式中心或部分网状拓扑的关键。
Transit Gateway 对等连接在 TGW 之间创建了一条加密的、私有的跨区域或跨账户路径,但仍需依赖路由表配置来启用流量。您在请求方使用 CreateTransitGatewayPeeringAttachment 创建对等连接,然后在接受方使用 AcceptTransitGatewayPeeringAttachment 接受连接;之后,您必须在相应的 TGW 路由表中添加路由,以使用该对等连接。对等连接不具有传递性:除非有明确的对等连接和路由表映射许可,否则流量不会通过 TGW-B 从 TGW-A 流向 TGW-C。TGW 还支持 Connect 连接,用于与 SD-WAN 或第三方设备建立高性能连接。这种连接通过 CreateTransitGatewayConnect API 创建,它支持封装(GRE、VXLAN)和到专用设备的高吞吐量转发。
关键服务与配置
使用 CreateTransitGatewayVpcAttachment 配置 VPC 连接,并确保设置您需要的连接选项:例如,在将流量转发到网络设备的 VPC 连接上启用 ApplianceModeSupport,这样 TGW 在向设备发送流量时会保留原始目的地。创建连接后,使用 CreateTransitGatewayRouteTable 创建除默认路由表之外的额外 TGW 路由表,然后调用 AssociateTransitGatewayRouteTable 并为选定的连接启用传播,使其前缀出现在路由表中。对于多播用例,使用 CreateTransitGatewayMulticastDomain 创建一个多播域,然后为将要参与的连接调用 AssociateTransitGatewayMulticastDomain,并使用 RegisterTransitGatewayMulticastGroupMembers 和 RegisterTransitGatewayMulticastGroupSources 来建立组成员和源;多播域与单播路由表是分开的,是实现跨 VPC 和设备的 IGMP 式组播所必需的。
要获得全局拓扑可见性和策略执行能力,请使用 AWS Transit Gateway Network Manager(AWS Network Manager 的一部分)。在 Network Manager 中创建一个全局网络(通过控制台或 networkmanager:CreateGlobalNetwork),并注册 Transit Gateway,从而获得跨区域和本地连接的全局(north/south)视图。Network Manager 提供自动化的性能监控、核心-边缘拓扑可视化和路由分析;它可以摄取 CloudWatch 指标和 VPC 流日志,并将它们与 TGW 连接以及 VPN/Direct Connect 链路关联起来。与 AWS Resource Access Manager (RAM) 集成后,您可以使用 CreateResourceShare 和适当的 principal attachments,将集中管理的 TGW 共享给其他 AWS 账户;请记得设置 TGW 的 AutoAcceptSharedAttachments 选项,或以编程方式管理接受请求。
设计模式与权衡
使用单个 Transit Gateway 实现的辐射型拓扑是多 VPC 多账户架构最常见的模式,因为它能集中管理连接、简化路由分发,并能整合共享服务、安全设备和本地连接。使用一个或多个 TGW 路由表来提供业务单元之间的分段隔离:将辐射 VPC 与其专用的路由表关联,并且只将共享服务的 CIDR 前缀传播到需要访问这些服务的路由表中。这种模式的权衡之处在于,中心化的设计可能成为流量的单一瓶颈点和配置错误的单一爆炸半径;通过 TGW 的大规模东西向流量可能需要精细的流量工程、为高吞吐量设备部署 Connect 连接,或部署区域性 TGW 以保持流量本地化。
全互联模式(TGW 之间的两两对等连接或大量的 VPC 对等连接)能提供直接连接,减少某些流量模式对中心枢纽的依赖,但随着连接数量的增加,它会引入运维复杂性,并使跨多个管理域的安全策略执行变得复杂。Transit Gateway 对等连接 (CreateTransitGatewayPeeringAttachment + AcceptTransitGatewayPeeringAttachment) 允许通过 AWS 全球网络建立加密的跨区域骨干网连接,当您希望实现区域隔离并同时使用某些共享服务时,此功能非常有用。但您必须显式地管理路由表映射,并接受对等连接不具有传递性这一事实。您可以组合使用这些模式:例如,每个区域部署一个区域性的辐射型 TGW,然后在中心枢纽之间建立对等连接以处理跨区域流量,这种方式通常能在扩展性、延迟和故障域之间取得良好平衡。
在集成本地网络时,使用 Direct Connect 的关联功能将 Direct Connect Gateway 连接到 TGW(在 Direct Connect 上配置一个私有虚拟接口,然后通过 Direct Connect 控制台或 API 创建与 TGW 的关联)。考虑是使用基于路由的 VPN(BGP over IPSec)实现动态路由,还是为需要严格控制的流量使用静态路由。对于基于设备的安全检查和双向 TLS 终止的用例,如果要求客户端和后端之间实现端到端加密,请避免在中心设备上终止 TLS;而应在应用层(例如,在 EKS 的 Pod 中)执行 TLS 终止,并使用 TGW 路由将流量引导至 ALB 或 Network Load Balancer,再通过 Proxy Protocol 保留客户端 IP,或使用 ALB 的 X-Forwarded-For 标头来获取客户端 IP。
常见陷阱与决策标准
一个常见的操作错误是假设 TGW 提供隐式分段;事实并非如此。您必须显式创建和关联路由表,并启用路由传播,以控制哪些附件可以访问哪些前缀。另一个常见的陷阱是错误配置安全组和 NACL:TGW 只处理路由,因此所有 VPC 安全组和 NACL 仍然适用,并且必须与预期的端到端连接保持一致。请注意,有状态安全组在实例或负载均衡器级别进行评估;如果您需要在 ALB 上进行 TLS 终止后保留客户端 IP,请启用 ALB 的 X-Forwarded-For 功能,对于 Network Load Balancer,则通过使用 IP 目标类型和在需要时使用代理协议来保留源 IP。
扩展决策通常取决于流量大小和管理边界。将许多高吞吐量流量集中通过单个 TGW 可能会使性能和故障恢复复杂化;对于高带宽设备链路,请使用 Transit Gateway Connect 附件,考虑使用多个 TGW 并通过对等连接实现隔离,并使用 Network Manager 监控饱和情况并触发警报。请务必审查附件数量、路由表和多播域的软限制,并在必要时请求提高限额,而不是依赖默认配额。
实践问题:用例场景
公司:Atlas 金融服务公司。挑战:Atlas 必须将其在 us-east-1 的十个业务单元 VPC 连接到一个中央共享服务 VPC,在业务单元和共享服务之间强制实施最小权限网络访问,随着时间的推移扩展到数十个业务单元,并提供按业务单元的流量核算,以排查偶尔导致其 Direct Connect 链路饱和的突发流量。
方法(编号):
- 使用
undefined
预置一个区域性 Transit Gateway,并使用
undefined
为每个业务单元创建一个专用的 Transit Gateway 路由表,外加一个用于共享服务的路由表;这样可以实现按单元的分段,而不会出现 VPC 对等连接爆炸的问题。 2. 通过
undefined
附加每个业务单元 VPC,并使用
undefined
将其关联到相应的单元路由表;附加共享服务 VPC,并仅将其关联到共享服务路由表。 3. 有选择地启用路由传播:让每个业务单元附件将其路由传播到自己的路由表中,让共享服务附件将其前缀传播到一个单独的共享服务表中;然后在每个单元的路由表中添加静态路由,将允许的前缀指向共享服务附件,通过不将单元前缀传播到共享服务表中来强制实施最小权限。 4. 使用 AWS RAM (
undefined
) 与其他 AWS 账户共享 TGW,这样接入一个新的业务单元就只需进行 VPC 附加和路由表关联,从而最大限度地减少管理开销。 5. 为了进行流量核算和故障排查,请在 TGW 和关联的 VPC 上启用 Flow Logs,并将 TGW 接入 AWS Network Manager (
undefined
并注册 TGW) 以可视化拓扑并监控带宽。关联 TGW Flow Logs 和 CloudWatch 指标,以识别是哪个附件导致了 Direct Connect 饱和。 6. 如果在可预测的高峰期 Direct Connect 容量饱和,请创建一个 Direct Connect Gateway 并使用 Direct Connect 关联到 TGW;实施按业务单元的路由标记,并在需要时在 Direct Connect Gateway 上配置路由策略(本地 BGP community 或路由筛选器)以限制或整形每个单元的流量。
AWS 理由:使用带有按单元路由表的 TGW 提供了强大的分段功能,并且随着更多单元的加入可以线性扩展,没有点对点连接的复杂性。使用 AWS RAM 共享 TGW 最大限度地减少了跨账户管理。选择性传播和静态路由条目在路由层面强制实施最小权限,而安全组和 NACL 则在实例级别强制实施访问控制。Flow Logs 加上 Network Manager 提供了必要的可视性,可以精确定位是哪个附件或业务单元导致 Direct Connect 饱和,以便 Atlas 能够针对造成问题的单元实施配额控制或请求增加容量。
← 混合连接:VPN 与 Direct Connect · 所有领域 · DNS 与 Route 53 →
练习这些题目 → · 在 ExamRoll.io 上限时练习 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通过考试 →