腾讯网关TGW:用户无感知快速迁移及故障自愈能力 | USENIX ATC '25
👉目录
1 将几个commit压缩成一个
2 找回丢失的commit节点或分支
3 获得一个干净的工作空间
4 修改最近一个commit
5 提交一个文件中的部分修改
6 禁止修改多人共用的远端分支
7 撤销一个合并
8 从整个历史中删除一个文件
9 其他好用的命令
01
大规模云数据中心已成为互联网基础设施的核心支柱。作为业务的公网接入入口,TGW(Tencent Gateway)集成了弹性公网接入、智能负载均衡等关键能力,以应对业务流量的快速增长与复杂需求。
当前大型云数据中心已成为支撑数字生态的核心枢纽。腾讯TGW云网关系统(Tencent Gateway)作为全网流量调度中枢,通过弹性公网接入与智能均衡负载等核心能力,有效应对业务规模指数级增长带来的技术挑战。在云计算服务差异化竞争格局下,不同厂商的"杀手级业务"对网络提出了差异化要求,相较于搜索、电商或短视频业务,腾讯的业务(如在线游戏、实时音视频流媒体)对网络时延、传输稳定性具有更高标准。为此我们构建并成功运营了模块化、可高度解耦的TGW云网关系统,其核心能力包括:
超高性能转发平面:单节点转发能力达传统方案的2.9倍;
秒级弹性伸缩:集群间状态与流量可在4秒内完成无损迁移;
智能高可用体系:故障检测、定位与自愈机制支撑现网100%可用性;
极致稳定性:承载数十Tbps流量,最坏情况下丢包率低至10⁻⁷~10⁻⁴。
互联网业务的“永不掉线”的需求与现网运营中不可避免的设备及网络故障、变更、网络攻击是有相当的矛盾的,因此对网关系统的可用性保障能力也是很大挑战。因此团队进行设计、部署及持续迭代,已实现以下核心目标:
高效数据包处理:支持数十Tbps吞吐量,同时保证微秒级延迟。
可扩展的状态管理:实现运行时无感知、无损的状态迁移,避免服务中断。
快速故障恢复:应对数据中心频繁的硬件和软件故障,确保高可用性。
TGW云网关系统已在腾讯云全球基础设施中稳定运行8年,服务游戏、直播、金融等海量业务场景,积累了相当丰富的大规模工业级实践经验。本次入选USENIX ATC '25的论文,系统阐述了TGW的架构设计、关键技术(如可扩展状态迁移、故障恢复机制)及运营经验,将为行业提供重要参考。
02
TGW采用层次化模块设计,将网关系统分为以下3个部分:
转发平面:分为无状态的TGW-EIP(弹性公网接入)和有状态的TGW-CLB(云负载均衡)。
控制平面:包括全局管理平面(Orchestrator)、集群本地控制平面(Operator)和分布式数据平面(Load Distributor, LD)。
辅助组件:路由发布(BGP+ECMP路由)、探针(故障检测)和代理(日志聚合)。
在部署模式,针对不同的云网络功能,TGW的集群部署在云网络的不同位置中:
TGW-EIP部署在区域入口,TGW-CLB部署在可用区(AZ)内。
工作流程(以入向流量为例):
TGW-EIP:流量通过BGP路由引流,经汇聚路由器、接入路由器通过ECMP进入TGW-EIP集群的各转发节点,由转发节点进行NAT和隧道封装。TGW-EIP集群的后端服务器,可能为弹性的虚拟机,也可以是由TGW-CLB集群承载的内网CLB实例。
TGW-CLB:TGW-CLB基于服务标识符(如IP对或QUIC连接ID)分发流量到后端服务器,执行有状态的路由转发。发往后端的报文同样采用GRE隧道封装。为了确保同一连接或同一VIP的流量与转发节点的亲和性,上游路由器中配置了奇偶路由的策略。
03
TGW 的核心技术围绕 高效转发、状态迁移、故障恢复 和 故障检测 四个方面展开,针对大规模云网关场景进行了深度优化。
1. 高效转发平面
TGW 针对不同产品功能(TGW-EIP 和 TGW-CLB)选用两种不同的转发模型,并进行针对性的性能优化,以最大化 DPDK 的性能潜力。
(1) TGW-EIP
提供无状态弹性公网接入能力(NAT、隧道封装),采用Run-to-Completion (RTC) 模型。
核心优化:
单核批处理:同一连接的所有数据包由单个 CPU 核心处理,减少跨核同步开销。
哈希查找优化:预取+滑动窗口:批量计算哈希值并预取到缓存,减少 CPU Cache-Miss(由 20% 降至 5%)。
冲突处理:仅预取首个哈希桶,提高缓存命中率。
性能收益:单节点吞吐量提升 53%,延迟稳定在 66–105 μs。
(2) TGW-CLB
作为有状态的负载均衡(需维护连接状态)产品,采用Pipeline+RTC混合模型。
核心优化:
动态分发策略:
阶段1(分发核心):基于服务标识符(如 IP 五元组、QUIC Connection ID)分配流量,突破 NIC RSS 限制。
阶段2(处理核心):执行规则匹配、状态表查询和隧道封装等核心转发流程,几乎所有业务功能均在处理核心中完成。
无锁设计:每个分发核心独占环形缓冲区,避免锁竞争。
核心比例:经验性采用 1:2(分发:处理),适配腾讯云流量模式。
性能对比:吞吐量达 Tripod 的 2.9 倍(512B 数据包)。
2. 状态迁移机制
TGW 支持 无损热迁移,确保服务连续性,尤其适合在线游戏和实时流媒体等敏感业务。
类型 | 特点 | 适用场景 |
热迁移 | 迁移连接状态,无感知切换 | 常规扩容/缩容、AZ 故障转移 |
冷迁移 | 强制重建连接,引入延迟 | 灾难恢复(如集群完全崩溃) |
(2) 热迁移流程
状态复制:控制器先后复制无状态配置(如 VIP-DIP 映射规则)、动态连接状态。
流量切换:迁移 90% 状态后,新集群通过 BGP 宣告路由接管流量。
转发节点代理机制:新集群将未识别的流量代理到旧集群所有转发节点
快速收敛:后端交换机学习新集群的源 IP,迁移反向流量,自动补全状态(4 秒内完成)。
(3) 状态聚合优化
VIP 粒度迁移:避免逐条迁移 单条连接的状态(单转发节点可达 240M 条)。
独立迁移线程:解耦迁移与数据面处理,减少性能影响。
3. 故障恢复机制
TGW 采用 多级容错模型 和 分散迁移,实现秒级故障恢复。
(1) 集群内链接同步,支持设备升级或故障长连接无损
集群内链接同步策略:
短连接过滤:仅同步存活时长 >3 秒的流(减少 70–80% 同步量)。
批量导出:攒满 MTU(1500B)或超时(2 秒)后发送,降低频率。
无脏标记:依赖超时回收机制(非增量更新),简化设计。
性能:单转发节点可同步 130M 连接,峰值带宽 350 Mbps。
(2) 多级容错模型
级别 | 模型 | 实现方式 |
AZ 内 | Active-Active | 转发节点共享链接表,故障时 BGP 停止路由宣告触发 ECMP 重哈希(一致性哈希保亲和性)。 |
AZ 间 | Active-Standby | 冗余 AZ 配对,通过高优的 IP 前缀路由宣告(如 VIP1/26 与 VIP1/25)实现无缝切换。 |
跨区域 | DNS 重定向 | 区域级灾难时,快速切换 DNS 记录(牺牲状态一致性保生存性)。 |
(3) 分散迁移
适用场景:异常流量(如 DDoS)触发转发节点级联崩溃。
方法:
将受影响 VIP 分片到 k 个缓冲集群(典型值 k=10)。
并行迁移状态,故障影响降至 1/k。
可递归分散,指数级缩小故障崩溃半径。
4. 故障检测与定位
TGW 通过染色标记拨测系统,实现 1 分钟内故障定位。
探针设计:
TCP 半握手探测:SYN 包携带标记,后端返回 SYN/ACK 后主动 RST(避免占用资源)。
探测频率:每 5 秒探测一次(不同源端口)。
标记点(TP/DP):
Trace Point (TP):记录数据包路径(如转发节点ID)。
Drop Point (DP):记录丢包原因(FLOW_LIMIT、TUNNEL_ENCAP_FAIL)。
案例:
单转发节点崩溃:TP 数量突降。
单转发节点抖动:DP 数量激增。
04
TGW已在腾讯云全球基础设施中稳定运行8年,服务游戏、直播、金融等海量业务场景,积累了丰富的运维最佳实践。这里从 故障域隔离、冗余策略、集群管理、协议优化 和 安全防御 五个维度展开分享了关键运营经验。
1. 故障域隔离(Blast Radius Isolation)
核心思想:通过分层设计和流量分区,限制单点故障的影响范围。
(1) 分层架构设计
区域(Region)级隔离:
每个区域部署独立的 TGW 实例,避免跨区域的故障传播。
全局控制器(Orchestrator)按地理分区部署,减少跨区依赖。
可用区(AZ)级隔离:
AZ 间采用 Active-Standby 模式,故障时通过 BGP 前缀切换● 集群级隔离:
单集群故障仅影响其承载的 VIP 段,通过去分散迁移快速恢复。
(2) 流量分区
服务优先级划分:
游戏/直播流量分配至高优先级集群,电商/API等流量分配至弹性集群。
租户隔离:
通过 VPC ID 和隧道封装实现租户间流量隔离。
2. 冗余策略(Redundancy)
目标:以合理成本实现高可用,避免过度冗余。
(1) 50% 冗余原则
层级 | 冗余设计 | 容错能力 |
AZ 级 | 两个 AZ 组成冗余对,任一 AZ 故障时,另一 AZ 可承载全部流量。 | 容忍单 AZ 完全失效。 |
机架级 | 单集群节点分布在至少 2 个机架,半数机架故障不影响服务。 | 容忍单机架断电/网络中断。 |
机器级 | 集群容量按 50% 负载设计,半数节点故障时仍可运行。 | 容忍批量硬件故障。 |
链路级 | 每台服务器双网卡绑定,核心交换机双上联。 | 容忍单网卡/光纤故障。 |
(2) 热备与冷备结合
热备集群:常驻 50% 冗余节点,随时接管流量(秒级切换)。
冷备集群:空闲资源池,故障时需 5–10 分钟扩容(用于非核心业务)。
3. 集群管理(Cluster Management)
核心挑战:平衡性能、稳定性与运维效率。
(1) 上线流程
静态检查:
在无流量环境下验证硬件配置(CPU 微码版本、NIC 固件)、软件参数(DPDK 大页内存配置)。
渐进式引流:
先对少量 VIP(如测试 IP)发送探测流量,监控丢包率和延迟。
确认稳定后,逐步开放更多 VIP 段至生产环境。
(2) 动态扩缩容
扩容触发:
CPU 利用率 >70% 或新建连接数超过阈值时,自动触发迁移。
缩容优化:
避免 C-State 切换:CPU 低功耗模式会引入 μs 级延迟抖动,优先隔离空闲节点而非降频。
优雅下线:先停止 BGP 宣告,待流量排空后再释放资源。
(3) 配置管理
版本灰度发布:
新版本先在 5% 节点上线,24 小时无异常后全量推送。
回滚机制:
保留旧版本二进制文件,故障时 1 分钟内回退。
4. 协议优化(Protocol Optimization)
(1) 从组播到单播的演进
早期方案:使用组播同步状态(适合单区域小集群)。
问题:
跨区域组播配置复杂,可靠性差(丢包率 >1%)。
改进方案:
改用 UDP 单播,每个转发节点维护对等节点列表。
代价:带宽开销增加 15%,但可靠性提升至 99.999%。
(2) 奇偶路由(Odd-Even Routing)
问题:IP 分片或长连接需保证同一流始终由同一转发节点处理。
方案:
核心路由器根据源 IP 奇偶性将流量分发至不同接入路由器。
接入路由器通过2元组哈希确保流亲和性。
5. 安全防御(Security)
(1) DDoS 防护架构
分层清洗:
边缘清洗:由安全网关过滤 SYN Flood 等 L3/L4 攻击。
TGW 限速:基于 VIP 粒度设置带宽、连接数、新建连接速率限制。
动态隔离:
受攻击 VIP 自动迁移至专用清洗集群。
(2) 异常流量处理
黑名单学习:
自动封禁连续触发 DP(如 FLOW_LIMIT)的源 IP。
协议合规性检查:
丢弃非法 GRE 封装包或畸形 QUIC 帧。
05
论文详细展示了腾讯TGW云网关系统的核心技术及运营经验,相信可以为网关系统的开发和运营提供普适性的参考和借鉴意义。未来,TGW将持续融合硬件卸载、可编程转发等前沿技术,推动云网关向更高性能、更强可靠性演进,助力业界构建下一代智能网络基础设施。
(当前论文尚未公开。)