梅须逊雪三分白,雪却输梅一段香。
经过前面几轮鏖战,我们已经初步确定,Ubuntu 26.04的Desktop版本网络性能整体优于Server版本(Ubuntu 26.04 转发性能大考:Desktop居然干翻了Server?),作为转发路由器时,最大带宽为15.9 Gbps,最大平均带宽为15.4 Gbps。
如果把Ubuntu 26.04 Desktop系统作为openVPN网关(实测1.23 Gbps!Ubuntu 26.04下OpenVPN自动化部署与极限调优),最大峰值带宽为1.34 Gbps,最大平均带宽为1.32 Gbps。作为WireGuard网关时(1.47 Gbps跑满带宽!Ubuntu 26.04下WireGuard性能暴力实测,OpenVPN真的香不动了?),最大峰值带宽为983 Mbps,最大平均带宽为966 Mbps。作为传统的IPsec VPN网关时(老兵不死!在Ubuntu 26.04上,经典IPsec真的会被WireGuard彻底取代吗?),最大峰值带宽为458 Mbps,最大平均带宽为448 Mbps。
当我们用上VPP这款神器时(老脚本立大功:Ubuntu 26.04丝滑部署VPP,实测性能竟比内核转发提升16 %!),最大转发带宽来到了18.5 Gbps,平均带宽也达到了17.9 Gbps,相比之下,性能提升幅度大概为16 %。
而且VPP不仅能提升转发网络性能,如果将VPP和openVPN搭配使用(十倍性能提升!Ubuntu 26.04深度实测:当VPP遇上OpenVPN,带宽直接冲破 6.5Gbps!),最高带宽能提升到 6.51 Gbps,平均带宽也达到了6.42 Gbps,性能提升了将近5倍。
其实,当时因为某运营商的SD-WAN不具备移动端接入的能力,我不仅提供了VPP+openVPN的解决方案(openVPN + VPP = openVPP),还给了一套VPP+WireGuard的解决方案(Wireguard + VPP = WireVPP),无奈当时落花有意、流水无情——开发比较拉,最终都没落地。
不过话说回来,正所谓他山之石、可以攻玉。既然VPP能让OpenVPN的性能平地起高楼,直接起飞,那我们为何不如法炮制,看看它能否对于WireGuard同样适用,为WireGuard也披上一件超人披风呢?
首先,网络配置参考我们上次的文章(十倍性能提升!Ubuntu 26.04深度实测:当VPP遇上OpenVPN,带宽直接冲破 6.5Gbps!),有了VPP自动化配置脚本的加持,几分钟就配好了基础环境。WireGuard也是用脚本直接配置(我们的WireGuard管理系统支持手机电脑了!全平台终端配置,支持扫码连接,一键搞定),几分钟就能搞好测试环境。
环境就绪之后,我们直接开始测试。
默认配置下,搭配了VPP的服务端,解密性能最高可以达到2.14 Gbps,平均也有2.08 Gbps,提升了超过1倍。相比之下,客户端的解密性能就稍微差一些了。
不过这还只是动态省电模式下的数据,如果我们切换到静态高性能模式呢?
这次的提升非常明显,直接又翻了一番,最高带宽可以达到4.19 Gbps,平均也有4.13 Gbps,带宽高而且稳定。如果用在生产环境下,你的终端就成了性能瓶颈了。
其实,这还不是最高的,正常来讲,VPP有标准的WireGuard插件,能直接绕过低性能的TAP接口,实现惊人的传输速率。
那这个性能有多高呢?
可惜自古美人如名将,不许人间见白头。最强悍的VPP原生WireGuard插件,目前竟还是只能在前朝遗老Ubuntu 22.04上神采飞扬,到了24.04甚至我们最新的26.04,却只落得个水土不服,强行上阵就会出现跨版本二进制兼容性问题,导致内存地址损坏,WireGuard的对端IP变成随机数,致使FIB路由无法解析,即使编译也不能有效解决。
此外,还会发生WireGuard核心密码学校验层失效的问题,无法正常握手协商。这些问题我目前都解决不了,英雄气短,令人扼腕。
经过验证,这套方法在Ubuntu 22.04环境下确实是正常的,正确配置以后,最高能达到6.17 Gbps的峰值带宽,平均带宽也能达到6.06 Gbps。
相比于内核转发的最大峰值带宽983 Mbps以及最大平均带宽966 Mbps,相当于提升了540 %,已经跟openVPN不相上下了。
这还只是老版本内核5.15.0的测试数据,即便在残血状态下也足以傲视群雄,如果能适配最新的7.0.0内核,那性能岂不是要上天?
这不仅仅是数据的胜利,更是技术架构降维打击的体现。那么问题来了:在你的生产环境中,网络瓶颈到底卡在内核转发,还是卡在网卡的物理极限?
声明:来自铁军哥,仅代表创作者观点。链接:https://eyangzhen.com/8116.html