返回

文章详情

展示HN:我们用PPPoE半桥解决了UniFi的慢PPPoE性能问题

Hacker News2026年8月3日 08:34

序言 在ArcBox Labs,我们的办公室有一个5 Gbps的PPPoE连接,接在UniFi网关后面,但我们从未能接近这个速度,而我们的UDM Pro Max开始出现性能问题,甚至影响到操作的稳定性:这与许多其他UniFi用户观察到的行为相符: https://community.ui.com/questions/a6f24f8c-6b83-4617-ad33-b5af0b32d8dc?replyId=2808b654-e4be-4ac2-b199-09c1b1a0fbac https://community.ui.com/questions/What-is-the-max-performance-for-PPPOE-on-UDM-Pro-With-Solution/67057f47-509e-4f8b-8edd-5dc29f380759 https://www.reddit.com/r/Ubiquiti/comments/1dto912/story_time_investigating_slow_pppoe_speeds_on/ https://forum.level1techs.com/t/unifi-and-bad-pppoe-speeds-any-solutions/224548 https://community.ui.com/questions/ETA-on-bugfix-for-UDM-Pro-bad-PPPoE-performance/9119aa98-412f-41c7-9188-a30036c2e4c2 https://www.reddit.com/r/Ubiquiti/comments/1buqkx1/max_speed_pppoe_on_udm_pro_with_10gbit_wan/ https://www.reddit.com/r/Ubiquiti/comments/1hctxjk/efg_with_pppoe_uk_testing/ 绝大多数UniFi网关,从UDM Pro/SE/Pro Max到UXG Pro和EFG,都搭载着不支持PPPoE或NAT硬件加速的CPU。因此,每当将基于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光纤:得益于包含PPPoE硬件加速的MediaTek Filogic 880 SoC,PPPoE速度测试结果可超越5000 Mbps。 PPPoE PPPoE(以太网上的点对点协议)是一种网络协议,它将PPP(点对点协议)帧封装在以太网帧内;ISP用它来验证和收费宽带用户。虽然PPPoE确实在以太网帧和IP数据包之间增加了6字节的PPPoE头和2字节的PPP协议头,但这8字节的开销是可以忽略不计的。PPPoE性能低下的真正原因是协议本身。在基于PPPoE的连接下,路由器必须为每个发出的数据包添加PPPoE头,并从每个接收的数据包中剥离PPPoE头。在路由器处理的包速率下,这需要大量的CPU功率或专用的硬件加速电路(ASIC)。对于没有PPPoE硬件加速的路由器来说,情况更糟:几乎所有的PPPoE实现都是单线程的。即使有多核CPU,PPPoE的封装/解封装通常也在单个核心上运行。尽管pfSense的if_pppoe实现了自己的NIC无关RSS(接收端负载均衡),Linux内核的pppoe模块支持RPS/XPS,但这些仅在存在多个PPPoE会话时有效。对于单个PPPoE会话(即一次创建的单一宽带连接)——这一通常情况下——处理仍然依赖于一个CPU核心。截止本文撰写(2026年4月),只有少数UniFi网关,例如搭载MediaTek Filogic 880的UCG光纤,拥有内置的PPPoE硬件加速。而讽刺的是,越高端的UniFi网关,其OEM平台越不容易包含PPPoE加速:例如,EFG使用的是Marvell的OCTEON TX2基础设施系列,它没有这样的支持。由于大多数UniFi网关使用缺乏PPPoE硬件加速的OEM平台,因此无论固件工作如何,都无法从根本上解决PPPoE性能问题。考虑到UniFi众所周知的工程质量,即使是软件侧可以进行的PPPoE优化也被搁置了。外部PPPoE半桥加速 即使在2026年,仍有大量的ISP依赖于PPPoE,包括加拿大贝尔、美国的AT&T光纤和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获取公共IPv4 WAN 这一技术被称为PPPoE半桥(也称为零IP桥)。PPPoE卸载设备负责PPPoE拨号,从PPPoE虚拟接口(例如:ppp0)中剥离拨号得到的IPv4地址,在其物理接口上启动DHCP服务器,并通过DHCP将拨号得到的IPv4地址传递给下游路由器(即UniFi网关)。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡