找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

175

积分

1

好友

15

主题
发表于 2025-10-14 22:31:14 | 查看: 41| 回复: 0

ScreenShot_2025-10-14_222734_167.png

💡 从一个真实痛点说起

上周帮客户排查云服务器性能问题,发现开启WireGuard后CPU占用直接飙到20%,带宽却卡在1Gbps出不去。调了半天参数也没用,后来才明白——这是软件VPN的天花板。

最近看到一个思路挺野的开源项目:用一块百元FPGA板子,把VPN处理直接扔给硬件干,跑出了4Gbps的吞吐。今天就来聊聊这个wireguard-fpga项目。


项目是干什么的

wireguard-fpga是Chili Chips团队做的硬件VPN加速器,核心想法是把WireGuard协议栈搬到FPGA上跑。不需要插到服务器里,就是个独立的小盒子,往网线中间一串就能用。

几个关键数据

  • 吞吐量:4个千兆网口,满载4Gbps
  • 延迟:硬件处理延迟10微秒以内(软件方案通常100微秒起步)
  • 成本:基于Artix7 FPGA,开发板价格在100美元左右
  • 工具链:全套开源工具,Yosys做综合,OpenXC7做布线

技术实现思路

tempImageATwXIQ.jpg

控制和数据分开跑

项目用了个比较经典的架构设计:

控制平面用RISC-V软核处理:

  • 密钥协商和管理
  • 路由表的增删改查
  • Peer节点的配置

数据平面交给FPGA硬件:

  • ChaCha20-Poly1305加密引擎
  • IP路由查找(用平衡二叉树实现)
  • 4个千兆以太网MAC

tempImageYhCFKN.jpg

这个思路其实跟SDN交换机挺像,软件负责"想清楚怎么干",硬件负责"快速执行"。

代码组织结构

wireguard-fpga/
├── 0.doc/      # 架构设计文档
├── 1.hw/       # 硬件RTL代码
├── 2.sw/       # RISC-V固件代码
├── 3.build/    # 构建和部署脚本
├── 4.sim/      # 仿真测试环境
└── 6.test/     # 功能测试用例

目录划分很清晰,方便做自动化构建和测试。


几个技术亮点

tempImageYBjyuz.jpg

1. 加密不再是瓶颈

WireGuard用的ChaCha20-Poly1305算法,项目引入了开源的Crypto IP核,做了流水线优化。硬件天生适合并行处理,加密这块基本不会成为性能瓶颈。

2. 路由查找用硬件加速

传统软件路由表要么线性查找,要么用哈希表。这个项目直接在硬件里实现平衡二叉树,查找复杂度O(log n),而且可以并行查询多个IP。

3. 独立设备形态

之前看过Blackwire项目,需要插PCIe槽,部署起来比较麻烦。wireguard-fpga设计成独立网络设备,直接串在链路里就行,灵活很多。


构建部署流程

自动化构建

整个构建流程写成了脚本,从RTL代码到可烧录的比特流文件一气呵成:

# RTL综合
yosys -p "synth_xilinx -top wireguard_top"

# 布局布线
nextpnr-xilinx --chipdb artix7.bin

# 生成比特流
xc7frames2bit design.fasm design.bit

# 编译RISC-V固件
riscv64-elf-gcc -march=rv32i -o firmware.elf

# 合并固件
python3 merge_bitstream.py

这套流程可以直接接到CI里,代码提交后自动跑测试和构建。

404358747-98cb3a19-11c7-4470-a4e1-41c503429e14.png

仿真验证

项目用VProc ISS做硬件软件协同仿真,避免了传统RTL仿真速度慢的问题。有点像在Kubernetes里用Kind做本地测试,效率高很多。


性能对比

方案 吞吐量 延迟 功耗 成本
软件WireGuard 约1Gbps 100微秒+ 50W以上 免费
wireguard-fpga 4Gbps 10微秒内 5W以内 约100美元
Blackwire 100Gbps 5微秒内 30W 5000美元+

对中小规模应用来说,wireguard-fpga在性能和成本之间找到了不错的平衡点。


运维角度怎么看

适合边缘场景

低功耗、低延迟的特性很适合边缘节点部署。比如工厂车间、零售门店的安全接入,用这种方案比部署一台服务器跑软件VPN要实在。

网络功能硬件化趋势

这个项目其实代表了一个方向:网络功能从软件往硬件迁移。现在VPN可以硬件加速了,以后Service Mesh、eBPF这些可能也会有硬件版本。

开源硬件生态

FPGA开源工具链这几年发展挺快,门槛在降低。就像Linux推动服务器开源化一样,FPGA开源工具也在让硬件开发变得更容易。


项目现状

  • 开发阶段:Phase 1概念验证已完成
  • 成熟度:还不能直接上生产,需要Phase 2优化
  • 资助方:有NLnet基金会支持
  • 社区活跃度:GitHub上968个star,在持续更新

写在最后

wireguard-fpga这个项目展示了用开源工具和低成本硬件实现高性能网络功能的可能性。对搞运维的来说,这不只是个VPN加速方案,更是个观察未来基础设施演进方向的窗口。

软件优化到极致之后,硬件加速可能就是下一个突破点。


关注《云栈运维云原生》,一起探索让系统更稳定的硬核技术 🚀


📎 项目资源

GitHub仓库
https://github.com/chili-chips-ba/wireguard-fpga

项目文档
https://nlnet.nl/project/KlusterLab-Wireguard/

技术博客
https://fpgahouse.com/wireguard-on-fpga-100gbps/


标签:#wireguard-fpga #Github #FPGA #网络加速 #开源硬件 #边缘计算 #VPN

您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|云栈社区(YunPan.Plus) ( 苏ICP备2022046150号-2 )

GMT+8, 2025-11-5 21:37 , Processed in 0.071619 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 CloudStack.

快速回复 返回顶部 返回列表