Hotdry.
systems

运营商级 BNG 的 eBPF/XDP 重构:边缘数据平面的工程实践

剖析用 eBPF/XDP 在 OLT 硬件上实现分布式 BNG 的核心技术:XDP 原生模式的钩子点选择、内核快速路径与用户空间慢速路径的协同设计、以及离线优先的状态管理策略。

传统运营商网络架构中,BNG(Broadband Network Gateway)作为用户流量汇聚的关键节点,长期依赖于专有的硬件设备。这些设备价格高昂且形成单点故障,成为制约边缘网络弹性的核心瓶颈。本文聚焦于一种新兴的工程实践:通过 eBPF 与 XDP 技术,将 BNG 功能直接部署在 OLT(光线路终端)硬件上,实现真正意义上的分布式边缘数据平面。

传统架构的局限性

在传统 ISP 架构中,用户流量从 ONT(光网络终端)进入 OLT 后,必须穿越一台集中式 BNG 设备才能到达互联网。这台设备承担着 DHCP 认证、NAT 转换、QoS 策略执行等所有核心功能。其问题显而易见:首先,专有硬件的成本通常在六位数美元以上,且需要厂商持续的技术支持合同;其次,整个网络的可用性依赖于单一设备,一旦 BNG 故障,所有用户同时断网。行业内的传统应对策略是采购更大、更冗余的设备,但这只是将瓶颈上移,并未从根本上解决问题。

将 BNG 功能分布到每个 OLT 站点是更合理的架构方向。用户流量在边缘完成所有处理,无需回传至中心节点。这种模式在超大规模云服务商处已得到验证,但传统 ISP 迟迟未能采用,原因在于传统 BNG 软件假设的是集中式部署,状态管理(IP 分配、セッション维持)难以分布式化,且高性能需求看似必须依赖专用硬件。现代 Linux 内核的 eBPF/XDP 组合正在改变这一局面。

XDP 的三种模式与性能差异

XDP(eXpress Data Path)是 Linux 内核提供的一种可编程数据包处理框架,其核心优势在于能够在数据包到达后、sk_buff 分配之前介入处理。这一时机选择至关重要:传统的内核网络栈在分配 sk_buff 后才进行协议解析、过滤等操作,而 XDP 原生模式在驱动层直接处理,省去了内存分配的开销。根据实际测试,原生模式下的 XDP 程序可实现约 10 微秒的端到端延迟,远优于通用模式。

XDP 提供三种运行模式,工程师必须根据硬件支持情况做出选择。原生模式(Native Mode)需要网卡驱程序的直接支持,程序在驱动上下文中执行,具备最低的延迟和最高的吞吐量,是生产环境的首选。通用模式(Generic Mode)作为回退方案,运行在普通的内核网络栈上,虽然兼容性更好,但性能损失明显。卸载模式(Offload Mode)则更进一步,将 eBPF 程序直接编译到网卡 ASIC 中执行,完全不占用 CPU 资源,但受限于硬件支持范围。对于 OLT 场景,建议优先验证网卡对原生模式的支持情况,这直接决定了数据平面的整体性能上限。

两层 DHCP 架构的设计思路

DHCP 是 BNG 数据平面中最频繁触发的控制平面协议,传统的实现方式在每次用户上线时都需要完整的 IP 分配逻辑,这在高并发场景下会成为瓶颈。该方案的核心洞察是:绝大多数 DHCP 请求来自已知用户的租约续期,而非新用户上线。因此,设计采用了两层架构,将快速路径放在内核,复杂逻辑留在用户空间。

当 DHCP 请求到达时,XDP 程序首先在内核态完成协议解析,提取客户端 MAC 地址并在 eBPF Map 中进行查找。如果缓存命中(成熟系统中的命中率可达 95% 以上),程序直接在 kernel 中构造 DHCP ACK 响应并通过 XDP_TX 返回,整个过程约 10 微秒。只有在缓存未命中时,才通过 XDP_PASS 将请求递交给用户空间的 Go 服务处理。后者查询中央协调服务的缓存,获取预分配的 IP,更新 eBPF Map 并返回响应,延迟约 10 毫秒。这种设计将 95% 以上的流量拦截在 kernel 层,大幅降低了用户空间的处理压力。

IP 分配策略与状态同步

IP 分配时机的选择是另一个关键设计决策。传统方案在 DHCP 阶段实时分配 IP,这要求各分布式节点之间进行复杂的协调以避免冲突。该实现采用了截然不同的策略:IP 分配发生在 RADIUS 认证阶段,而非 DHCP 阶段。当用户通过 RADIUS 认证成功后,中心协调服务根据一致性哈希环(hashring)为该用户分配固定 IP,存入用户记录。DHCP 协议在此变成了纯粹的读取操作,只需查找预分配的 IP 地址,完全消除了分配逻辑对热路径的影响。

这种设计带来了三个实际好处:分布式节点之间天然不会产生 IP 冲突;DHCP 快速路径可以完全在 eBPF 中运行,无需调用用户空间;用户每次上线获得相同的 IP 地址,便于运维和故障定位。当边缘节点与中央服务失联时,现有用户的会话可以依靠本地缓存继续运行,包括 DHCP 租约续期、NAT 转换和 QoS 策略执行,只有新用户认证和配置更新会受影响,体现了真正的离线优先架构理念。

工程实践中的关键参数

在 OLT 硬件上部署此类方案时,有几个工程参数值得关注。目标硬件 Radisys RLT-1600G 这样的白盒 OLT 设备,搭载现代 Linux 内核(5.10 以上版本)即可运行,单台设备可承载 1500 至 2000 名用户,吞吐量覆盖 10 至 40 Gbps 范围。相比传统六位数美元的专用 BNG 设备,成本降至约 7400 美元级别。eBPF 程序通过 bpftool 加载和管理,运维人员仍可使用 tcpdump 等传统工具进行抓包分析,降低了上手门槛。

目前该方案尚未达到生产就绪状态,缺失的环节包括设备认证(TPM 远程认证机制)、IPv6 支持(DHCPv6 与 SLAAC)、完整的 RADIUS 计费功能以及图形化管理界面。对于希望在边缘网络场景中探索软件定义基础设施的团队而言,eBPF/XDP 提供了一条绕过专用硬件依赖的可行路径。

资料来源:Mark Gascoyne 关于分布式 BNG 的工程实践(2026 年 1 月 16 日)。

查看归档