首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

Show HN:我们使用 PPPoE 半桥修复了 UniFi 缓慢的 PPPoE 性能

摘要

Prologue At ArcBox Labs , our office has a 5 Gbps PPPoE connection behind a UniFi gateway, and we could never get anywhere close to that speed, and our UDM Pro Max is beginning to struggle and even af...

PPPoE and the Mbps Pro UniFi UDM hardware acceleration between
2026-08-04 1 阅读 约7分钟阅读 uneven9434
分享:
字号:
序言 在 ArcBox Labs,我们的办公室在 UniFi 网关后面有 5 Gbps PPPoE 连接,我们永远无法接近这个速度,我们的 UDM Pro Max 开始陷入困境,甚至影响操作稳定性:这与许多其他 UniFi 用户观察到的行为相符:绝大多数 UniFi 网关,从 UDM Pro/SE/Pro Max 和 UXG Pro 到 EFG,配备的 CPU 既不支持 PPPoE 也不支持 NAT 硬件加速。因此,每当您将基于 PPPoE 的 ISP 连接置于其中一个网关后面时,吞吐量就会受到严重影响,并且永远无法接近额定线路速度。 UniFi 社区对此已有充分记录:简而言之,UniFi 网关 PPPoE 性能相当糟糕:UDM Pro/SE:PPPoE 上的速度测试结果通常在 1200 Mbps 到 1500 Mbps 之间。 UDM Pro Max:PPPoE 上的速度通常在 1400 Mbps 到 1800 Mbps 之间。 EFG:PPPoE 上的速度通常在 1400 Mbps 到 2400 Mbps 之间。 UCG Fiber:得益于 MediaTek Filogic 880 SoC(包含 PPPoE 硬件加速),PPPoE 的速度测试可以超过 5000 Mbps。 PPPoE PPPoE(以太网点对点协议)是一种将 PPP(点对点协议)帧封装在以太网帧内的网络协议; ISP 使用它来对宽带用户进行身份验证和计费。虽然 PPPoE 在以太网帧和 IP 数据包之间添加了额外的 6 字节 PPPoE 标头和 2 字节 PPP 协议标头,但这 8 字节的开销可以忽略不计。 PPPoE 降低性能的真正原因是协议本身。在基于 PPPoE 的连接下,路由器必须向每个传出数据包添加 PPPoE 标头,并从每个传入数据包中剥离 PPPoE 标头。在路由器看到的数据包速率下,这需要大量的 CPU 能力或专用的硬件加速电路 (ASIC)。对于没有 PPPoE 硬件加速的路由器,情况会变得更糟:几乎所有 PPPoE 实现都是单线程的。即使使用多核 CPU,PPPoE encap/decap 通常也运行在单核上。虽然 pfSense 的 if_pppoe 实现了自己的独立于 NIC 的 RSS(接收端扩展),并且 Linux 内核的 pppoe 模块支持 RPS/XPS,但这些仅在存在多个 PPPoE 会话时才有帮助。对于单个 PPPoE 会话(即拨打一次的单个宽带连接)(这是常见情况),处理仍然固定在一个 CPU 内核上。截至撰写本文时(2026 年 4 月),只有少数 UniFi 网关(例如配备 MediaTek Filogic 880 的 UCG Fiber)在其 SoC 中内置了 PPPoE 硬件加速。讽刺的是,UniFi 网关越高端,其 OEM 平台就越不可能包含 PPPoE 加速:例如,EFG 使用 Marvell 的 OCTEON TX2 基础设施系列,但该系列就没有此类支持。由于大多数 UniFi 网关使用缺乏 PPPoE 硬件加速的 OEM 平台,因此无论进行多少固件工作都无法从根本上解决 PPPoE 性能问题。鉴于 UniFi 众所周知的工程质量,甚至连软件端可能的 PPPoE 优化也被搁置了。外部 PPPoE 半桥加速 即使到 2026 年,大量 ISP 仍然依赖 PPPoE,包括加拿大贝尔、AT&T Fiber 和美国的 Xfinity,以及欧洲、亚洲和中国的绝大多数 ISP。如果 UniFi 网关本身无法提供足够的 PPPoE 性能,我们可以将 PPPoE 拨号交给专用设备。该设备拨打 PPPoE,获取 IP 地址(例如公共 IPv4),从 PPPoE 虚拟接口(例如 ppp0 )中剥离该 IP,然后通过 DHCP 将其传递给 UniFi 网关。 UniFi 网关通过 DHCP 获取公共 IPv4,无需承载任何 PPPoE CPU 负载,并且可以自由地专注于路由、IDS/IPS 和 NAT: PPPoE 会话分发公共 IPv4 ISP <===============> [通过 OpenWrt 进行 PPPoE 卸载] ========================> [UniFi 网关] 不拥有公共 IPv4 从 DHCP WAN 拥有公共 IPv4 此技术称为 PPPoE半桥(也称为零 IP 桥)。 PPPoE 卸载设备执行 PPPoE 拨号,从 PPPoE 虚拟接口(例如 ppp0 )剥离所拨叫的 IPv4,在其物理接口上启动 DHCP 服务器,并通过 DHCP 将所拨叫的 IPv4 地址向下传递给下游路由器(UniFi 网关)。这样,PPPoE 卸载设备专注于 PPPoE 拨号,下游 UniFi 网关通过 DHCP 获取公共 IPv4,而不承载任何 PPPoE CPU 负载。事实上,一些 ISP 提供的 ONU/ONT 设备已经实现了这一点:某些型号公开了“高级 DMZ”、“IP 直通”或“DMZplus”等功能。启用后,ONU/ONT(包括 PPPoE 硬件加速)自行进行 PPPoE 拨号,并通过 DHCP 将生成的公共 IPv4 传递给下游路由器。但许多 ISP ONU/ONT 设备不提供此功能,在这种情况下,您必须自己构建解决方案。使用OpenWrt实现PPPoE半桥这里,我们使用OpenWrt的hotplug.d机制来实现上述的PPPoE半桥加速。的f
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱