跳到正文
原文
Hacker News· StepBroBD·· 21 天前精选AI 评分72

ranet3:基于策略路由的高性能 IPsec mesh SD-WAN

Show HN: Ranet3 – High performance policy routed IPsec mesh SD-WAN

AI 摘要

StepBroBD 在 Hacker News 发布开源 SD-WAN 项目 ranet3,用标准 IKEv2、ESP、Babel 和 SRv6 构建策略路由的 IPsec mesh,用户态数据面单向吞吐达 8.39 Gbit/s,为 10 GbE 线速的 95%。

正文 · AI 翻译
              ..::----::..
          .:-++++++++++++++-:.
        :=+++-:..      ..:-+++=:
      :=++-.                .-+-.
    .=++-.       ::::::       .   .::.
   :++=.     :+#@@@@@@@@#+:      *@@@@=
  :++=     -#@@%*+-::-+*%@@#-   :@@@@@@
 .++=    .*@@#-          -#@@*. .#@@@@*
 -++.   .#@@=              =@@#.  -++:
.++-    *@@-      :++:      -@@*
:++.   .@@#     -%@@@@%-     #@@.   .--:
-++    .++:     %@@@@@@%     +@@:    ++-
-++             %@@@@@@%     +@@:    ++-
:++.    .=+-.   -%@@@@%-     #@@.   .++:
.++-   :%@@@%:    :++:      -@@*    -++.
 -++.  =@@@@@=             =@@#.   .++-
 .++=   +%@%+            -#@@*.    =++.
  :++=         =*+-::-+*%@@#-     =++:
   :++=.      .#@@@@@@@@#+:     .=++:
    .=++-.       ::::::       .-++=.
      :=++-.                .-++=:
        :=+++-:..      ..:-+++=:
          .:-++++++++++++++-:.
              ..::----::..

高性能 策略路由 IPsec 网状网络 SD-WAN

为什么选择 ranet3协议与路由

为什么选择 ranet3

标准协议

对等节点只需支持标准 IKEv2、ESP、Babel 和 SRv6。

互操作性已针对以下项目进行验证:

strongSwan
使用 Ed25519 密钥的 IKEv2 和 ESP 会话
BIRD
带 RTT 度量的 Babel 路由,逐条路由匹配
Linux
内核 seg6local 会处理 ranet3 写入的 SRv6 头部

任何其他支持带 Ed25519 密钥的 IKEv2、Babel 和 SRv6 的路由器或交换机也应能互操作。

常见的网状 VPN 和 SD-WAN 工具(Tailscale、NetBird、ZeroTier、Nebula 等)只接纳运行其自身代理的节点,而 ranet3 可与它们在同一主机上并行运行。

延迟路由

Babel 会测量每条链路的往返时间,只要直连链路较慢,就会通过中继进行路由。

经 B 的选定路径,80 ms直连链路,265 ms

RTT 会持续测量,丢包和中断会计入链路。流量始终走最快路径,一旦直连链路重新变快,就会切回直连链路。

段路由

基于源和目的前缀的策略会将流量发送到选定的途经点,并从选定的出口发出。段路由在用户空间实现,即使在 XNU 内核不支持该功能的 macOS 上也能工作。

途经点可以按用户指定的任意顺序出现,并且可以重复,例如 A->B->C->B->D,其中 D 为出口。

基准测试测量于 2026-10-15

基准测试

数据平面运行于协议与密码
ranet3用户空间UDP 中的 ESP,AES-256-GCM
wireguard-go用户空间WireGuard,ChaCha20-Poly1305
WireGuard内核WireGuard,ChaCha20-Poly1305
IPsec内核(xfrm)UDP 中的 ESP,AES-256-GCM

95%

在 10 GbE 载荷上限中,单向单流

8.84 Gbit/s 中的 8.39

1.6-2.1 倍

内核 WireGuard 吞吐量

全部 6 项测试

1.2-1.5 倍

wireguard-go 吞吐量

全部 6 项测试

1.91-4.96 ms

饱和状态下的 RTT p99

内核数据平面 0.85-2.51 ms

饱和状态下 3 次运行的中位数

正面比较

数据平面吞吐量越高越好每 Gbit/s 的 CPU 越低越好延迟 p99 越低越好
wireguard-go 用户态1.2-1.5 倍 更好0.8-0.9 倍 更好0.2-1.0 倍 参差不齐
WireGuard 内核1.6-2.1 倍 更好0.6 倍 更好1.9-2.4 倍 更差
IPsec 内核1.8-3.9 倍 更好1.1-1.7 倍 更差1.6-2.0 倍 更差

每个范围都是 ranet3 的结果除以另一个数据平面在以下 6 项测试中的结果。

内核与用户空间

用户空间数据平面会将每个数据包复制到自己的进程中,通常预期会比内核数据平面慢。

1 流,Gbit/s单向双向单向线路占比
线路上限 (10 GbE)8.8418.76*100%
内核,2 次中最佳5.357.4661%
用户空间,wireguard-go6.7710.7877%
用户空间,ranet38.3914.8795%

* 无隧道的普通 TCP

内核 WireGuard 单向保持在 5.1 至 5.4 Gbit/s。

内核 IPsec 保持在 4.0 至 4.7 Gbit/s,因为其单一流落在 1 个网卡接收队列上。

完整结果

吞吐量,饱和接收 Gbit/s越高越好
ranet3用户态wireguard-go用户态WireGuard内核IPsec内核
1 流, 出8.396.775.354.67
1 流, 入8.376.955.104.44
1 流, 双向14.8710.787.464.67
8 流, 出8.526.065.143.97
8 流, 入8.486.725.124.06
8 流, 双向15.7910.337.414.10
提供 3 Gbit/s 时的 CPU 成本每 Gbit/s 的繁忙核心数,两台主机越低越好
ranet3用户态wireguard-go用户态WireGuard内核IPsec 内核
1 条流, 出0.9091.0791.5110.672
1 条流, 入0.9251.0921.5250.664
1 条流, 双向0.8980.9961.5040.525
8 条流, 出0.9961.2131.7400.845
8 条流, 入0.9901.1821.7480.866
8 条流, 双向0.9481.0871.5000.620

在“双向”行中,内核 IPsec 仅承载了所提供的 6 Gbit/s 中的 4.67 和 4.14。

饱和状态下的延迟RTT p99,毫秒越低越好
ranet3 用户wireguard-go 用户WireGuard 内核IPsec 内核
1 条流, 出2.012.101.071.04
1 条流, 入1.912.180.851.23
1 条流, 双向3.173.151.651.76
8 条流, 出2.7716.401.261.53
8 条流, 入2.865.091.171.50
8 条流, 双向4.967.692.482.51

设置硬件、软件和方法

设置

硬件

主机
2 台 Dell PowerEdge C6420
处理器
Intel Xeon Gold 6130,16 核 32 线程
内存
192 GiB
网卡
Intel X710
接口
SFP+
带宽
每个方向 10 Gbit/s
交换机
两台主机均连接同一台 Dell S5296F-ON

软件

操作系统
Debian 13
内核
Linux 6.12.111
wireguard-go
0.0.20250522
wireguard-tools
1.0.20260223
iproute2
7.1.0
iperf3
3.21

方法

流量
TCP,使用 cubic,内层 MTU 1400
流数
1 和 8
负载
吞吐量和延迟测试采用饱和负载,CPU 开销测试采用每个方向 3 Gbit/s
方向
每个方向单向以及双向同时
运行次数
3 次 10 秒运行的中位数,数据平面交错进行
CPU 开销
所有数据平面均未绑核时,两台主机上 /proc/stat 中繁忙核心数之和
线路上限
采用 ESP in UDP 封装时单向 TCP 载荷为 8.84 Gbit/s,无隧道时双向为 18.76 Gbit/s

来源:Hacker News · ranet3.com

00