内容提要
Amazon Transit Gateway Connect是亚马逊云科技的虚拟网络设备,可连接多个Amazon VPC和本地网络,简化企业网络架构。支持SD-WAN设备接入,使用GRE和BGP等标准协议。可通过开源软件路由器实现广域组网和高可用性测试。
延伸解读
高可用设计的关键:BFD与ECMP
文章通过BFD协议实现网络层高可用,BIRD默认100ms心跳、5次失败判定BGP断开,可在500ms内检测故障并切换。同时,每个Connect Peer可建立两个BGP连接,Connect Peer之间支持ECMP,实现全链路无单点。测试中重启一台软件路由器,IDC路由自动切换至另一条隧道,ping无丢包,验证了秒级切换能力。
网络地址规划与路由兜底策略
由于Amazon Transit Gateway不会将BGP路由传播到VPC路由表,文章通过将10.0.0.0/8路由指向Transit Gateway,实现VPC内网路由兜底,避免因IDC网段变化而频繁更新VPC路由表。这种规划简化了运维,但要求地址空间不冲突。若无法通过规划实现,可考虑通过路由变化hook触发脚本程序化更新VPC路由。
开源软件路由器方案的技术要点
方案使用Linux内核的ip_gre模块建立GRE隧道,BGP选用BIRD,虚拟专用网选用WireGuard。配置时需注意:EC2实例必须禁用源/目标检查,否则无法转发非本机流量;BGP需设置multihop 2,因为Transit Gateway的BGP IP需要两跳到达;WireGuard配置需手动管理路由,避免与BIRD冲突。这些细节是方案成功的关键。
方案适用场景与优化方向
该方案适合没有SD-WAN需求、希望利用开源软件在EC2上自建路由器的企业,也可供SD-WAN设备商参考进行设备上云改造。文章指出IDC端路由器为单点设计,可扩展为2台路由器实现2×2多线BGP连接,彻底消除单点。此外,对于无法通过地址规划规避Transit Gateway不传播路由的场景,可通过程序化方式更新VPC路由。
Q&A
Amazon Transit Gateway Connect 是什么?它主要解决什么问题?
Amazon Transit Gateway Connect 是亚马逊云科技于2021年5月发布的一项功能,旨在让企业更方便地接入 SD-WAN,并通过 SD-WAN 实现企业级组网。它支持将 SD-WAN 设备接入到亚马逊云科技,使用 GRE 和 BGP 等标准协议,将 SD-WAN 边缘无缝扩展到云上。
Amazon Transit Gateway Connect 的工作原理是怎样的?
Amazon Transit Gateway Connect 是构建于 Amazon Transit Gateway VPC 连接之上的虚拟连接。建立后,可在其上创建多个 Connect Peer。每个 Connect Peer 通过 GRE 隧道协议实现 Amazon Transit Gateway 与 Amazon EC2 路由实例之间的高带宽虚拟连接。建立 GRE 隧道后,双方通过建立 BGP 会话来交换、传播路由信息。此外,也支持将 Amazon Direct Connect 专线连接作为底层连接。
使用 Amazon Transit Gateway Connect 组网有哪些主要优点?
主要优点包括:多 VPC 即时接入,新 VPC 仅需配置 Amazon Transit Gateway VPC Attachment 即可完成全域接入;支持 BGP 动态路由协议,简化网络维护并提高可靠性;高带宽,每个 Connect Peer 的 GRE 隧道带宽高达 5Gbps,总带宽可高达 20Gbps;高可用,每个 Connect Peer 可建立两个 BGP 连接,支持 ECMP,实现全链路无单点,设备故障无感切换。
如何通过开源软件在 Amazon EC2 上构建云端路由器来配合 Amazon Transit Gateway Connect 组网?
在 Amazon EC2 上构建软件路由器,需要:禁用 EC2 实例的源/目标检查;在子网中添加访问 Amazon Transit Gateway IP 的路由;配置 GRE 隧道(使用 ip 命令);配置 BGP 协议(如 BIRD);配置虚拟专用网(如 WireGuard)用于与 IDC 连接。具体配置包括创建 Connect Peer、设置 BGP 多跳、启用 BFD 等。
如何通过 BFD 实现网络层高可用?故障切换需要多长时间?
BFD(双向转发检测)用于检测链路故障。在 BIRD BGP 配置中添加 `bfd on;` 即可启用。BIRD 默认 BFD 每 100ms 发送一次心跳,连续 5 次失败判定为 BGP 断开,因此可在 500ms 内检测到对端故障并自动触发路由切换。
该方案的高可用测试是如何进行的?结果如何?
测试步骤:重启一台云端软件路由器模拟硬件故障;在 IDC 路由器上通过 `route -n` 检测路由变化;在 IDC 业务服务器上持续 ping 和 mtr 检测连通性与路径。结果:路由自动切换到另一条连接,mtr 显示新路径,ping 测试无丢包(使用默认 1 秒间隔),业务无感知。
该方案有哪些局限性或可优化之处?
局限性:IDC 端路由器为单点设计,可优化为 2 台路由器实现 2×2 多线 BGP 连接,消除单点;Amazon Transit Gateway 不能将 BGP 路由传播到 VPC 路由表,本文通过规划内网默认路由指向 Amazon Transit Gateway 来规避,对于无法规划的场景,可通过路由器路由变化 hook 触发脚本程序化更新 VPC 路由。