FreeBSD中的OpenCrypto Framework (OCF)通过提供一组用于内核内数据加密、解密和哈希的 API 函数来抽象底层加密实现。这些函数的驱动程序来自各种加密提供程序,范围从软件指令到硬件加速器。
相较于OCF,pfSense plus集成了Intel Multi-Buffer Crypto for IPsec Library (IIMB),作为AES-GCM、AES-CBC和ChaCha20-Poly1305密码的提供程序,通过优化数据处理路径、减少延迟和提高系统资源的利用率大幅提升了防火墙的VPN(IPsec、WireGuard)性能。
OPNsense论坛有一篇贴子,测试pfSense plus的Wireguard性能比OPNsense快1倍,分析原因是两者对IIMB支持差异造成的。
实现机制
减少CPU占用率
IIMB 通过减少数据在硬件和软件之间传输时的阻塞延迟,降低了对CPU的过度依赖。这使得CPU可以专注于处理VPN的加密和解密任务,而不需要浪费时间等待数据处理完成。
实现方法:
- 通过DMA(Direct Memory Access)加速数据传输,减少了内核干预的次数。
- 避免了内核态和用户态之间频繁的上下文切换。
优化多核利用
IIMB可以充分利用多核CPU的优势,将数据包处理分配到不同的核上。这对运行VPN服务的pfSense防火墙尤为重要,因为VPN的流量加密和解密通常是高计算密集型的。
多核负载均衡:
- 配合 Intel® QuickAssist 技术(如果支持),可以加速AES-NI和其他加密算法的处理。
- 在多核CPU环境下,通过并行化数据处理减少了瓶颈。
提高网络吞吐量
IIMB优化了网络数据包的转发效率,特别是在处理大量小数据包的情况下。这对VPN的性能至关重要,因为VPN通信通常会产生大量加密的小数据包。
关键改进:
- 减少了数据包在网络接口队列中的等待时间。
- 支持高速网络接口卡(NIC)的硬件加速功能。
提升稳定性和可靠性
IIMB减少了在高负载情况下的网络延迟和丢包率,从而提高了VPN的连接稳定性。这对于需要持续高带宽的远程访问场景非常重要。
表现:
- 在VPN流量高峰期,避免了因资源竞争导致的性能下降。
- 保持较低的延迟以支持实时应用(例如 VoIP 和视频会议)。
总结
通过利用IIMB,pfSense防火墙在处理 VPN 流量时可以更高效地利用系统资源,提升加密速度、网络吞吐量和整体连接稳定性。如果硬件支持 Intel® QuickAssist 和 AES-NI,这种优化效果会更加显著。因此,在部署pfSense 防火墙,建议选择支持这些特性的硬件来最大化性能提升。
注意事项
作为付费支持的功能之一(包括DCO、多实例管理、ZFS快照等),IIMB只在pfSense plus中提供,pfSense CE社区版不包含该功能。