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 就像一個路由平面:您先建立連接 (attachment)(例如,使用 EC2 API 呼叫 CreateTransitGatewayVpcAttachment 來連接 VPC、使用 CreateTransitGatewayAttachment 來連接設備,或使用 CreateTransitGatewayPeeringAttachment 來建立對等連接),然後透過將這些連接關聯 (associate) 並傳播 (propagate) 到一個或多個 Transit Gateway 路由表,來控制它們如何交換路由。TGW 上的路由表提供了隔離和分段的基本功能,讓 TGW 能像多個虛擬路由器 (VRF) 一樣運作。對於每個連接,您可以決定它要關聯到哪個 TGW 路由表 (使用 AssociateTransitGatewayRouteTable),以及哪些連接的路由要傳播到哪些路由表 (透過路由表的傳播設定)。TGW 會根據來源連接所關聯的所有路由表中的最長前綴匹配來轉發封包,因此,謹慎設計關聯/傳播的邊界是實現中心輻射型 (hub-and-spoke)、分段式中樞或部分網狀架構的關鍵。
Transit Gateway 對等連接 (peering) 會在 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 並為選定的連接啟用傳播,使其前綴出現在路由表中。對於多點傳播 (multicast) 的使用情境,請先用 CreateTransitGatewayMulticastDomain 建立一個多點傳播網域,然後用 AssociateTransitGatewayMulticastDomain 關聯將參與的連接,並使用 RegisterTransitGatewayMulticastGroupMembers 和 RegisterTransitGatewayMulticastGroupSources 來建立群組成員和來源;多點傳播網域與單點傳播 (unicast) 路由表是分開的,是跨 VPC 和設備進行 IGMP 式群組傳送所必需的。
若要取得全域拓撲的可見性並強制執行政策,請使用 AWS Transit Gateway Network Manager (AWS Network Manager 的一部分)。在 Network Manager 中建立一個全域網路 (Global Network) (可透過主控台或 networkmanager:CreateGlobalNetwork),並註冊 Transit Gateway,這樣您就能獲得跨區域和地端連線的南北向流量視圖。Network Manager 提供自動化的效能監控、核心-邊緣視覺化以及路由分析;它可以擷取 CloudWatch 指標和 VPC 流程日誌,並將它們與 TGW 連接、VPN/Direct Connect 連結進行關聯。透過與 AWS Resource Access Manager (RAM) 整合,您可以使用 CreateResourceShare 和適當的主體附件 (principal attachments),將集中管理的 TGW 與其他 AWS 帳戶共享;請記得設定 TGW 的 AutoAcceptSharedAttachments 選項,或以程式化方式管理接受請求。
設計模式與權衡取捨
以單一 Transit Gateway 實作的輻輳式拓撲 (hub-and-spoke) 是多 VPC、多帳戶架構中最常見的模式,因為它能集中化連線、簡化路由分發,並能整合共享服務、安全設備及地端連線。使用一個或多個 TGW 路由表來提供業務單位之間的區隔:將 spoke 與特定的 spoke 路由表關聯,並只將共享服務的前綴 (prefix) 傳播到應該看到它們的路由表中。其權衡之處在於,集中化可能成為流量的單一瓶頸 (chokepoint) 和設定錯誤時的單一爆炸半徑 (blast radius);大量的東西向流量通過 TGW 可能需要謹慎的流量工程、為高吞吐量設備部署 Connect attachment,或放置區域性 TGW 以保持流量的本地性。
全網狀拓撲 (full mesh)(TGW 之間的兩兩對等,或大量的 VPC peering 連結)為某些流量模式提供了直接連線,並減少了對中央 hub 的依賴,但隨著連結數量的增長,它會帶來營運上的複雜性,並使跨多個管理網域的安全策略執行變得複雜。Transit Gateway peering (CreateTransitGatewayPeeringAttachment + AcceptTransitGatewayPeeringAttachment) 允許跨 AWS 全球網路的區域間骨幹連線並帶有加密,當您想要區域隔離外加一些共享服務時,這非常有用,但您必須明確地管理路由表映射,並接受 peering 不具備可遞移性 (transitive)。您可以結合不同的模式:每個區域採用一個區域性的輻輳式 TGW,並在 hub 之間進行 peering 以處理跨區域流量,這通常能在規模、延遲和故障域之間取得平衡。
在整合地端網路時,使用 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 標頭。
常見的陷阱與決策標準
一個常見的營運錯誤是假設 TGW 提供隱性的區隔;事實上並非如此。您必須明確地建立並關聯路由表,並啟用路由傳播,以控制哪些附件可以到達哪些前綴。另一個常見的陷阱是錯誤設定安全群組與 NACL:TGW 只處理路由,因此所有 VPC 安全群組與 NACL 仍然適用,且必須與預期的端對端連線保持一致。請預期有狀態的安全群組會在執行個體或負載平衡器層級進行評估;如果您需要在 ALB 進行 TLS 終止時保留用戶端 IP,請啟用 ALB 的 X-Forwarded-For,而對於 Network Load Balancer,則透過使用 IP 目標類型及視需要使用 proxy-protocol 來保留來源 IP。
擴展決策通常取決於流量大小與管理邊界。將許多高吞吐量的流量集中到單一 TGW,可能會使效能與故障恢復變得複雜;使用 Transit Gateway Connect 附件來處理高頻寬的設備連結,考慮使用多個 TGW 並進行對等連線以實現隔離,並使用 Network Manager 來監控並在飽和時觸發警報。務必檢視附件、路由表與多點傳播網域的軟性限制,並在需要時申請提高額度,而不是依賴預設的配額。
實務問題:使用案例情境
公司:Atlas Financial Services。挑戰: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
) 將 TGW 與其他 AWS 帳戶共享,這樣一來,要加入一個新的業務單位只需進行 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 communities 或路由篩選器)來限制或塑造每個單位的流量。
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.
通過考試 →