高性能基于策略路由的 IPsec Mesh SD-WAN

Lobsters Hottest 工具

摘要

ranet3 是一个高性能、基于标准协议(IKEv2、ESP、Babel、SRv6)的 policy-routed IPsec mesh SD-WAN 工具,基准测试显示其吞吐量达 10 GbE 负载上限的 95%,为内核 WireGuard 的 1.6-2.1 倍。

<p><a href="https://lobste.rs/s/np6czp/high_performance_policy_routed_ipsec">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/10/18 15:50

# ranet3 来源: https://ranet3.com/ `` ..::----::.. .:-++++++++++++++-:. :=+++-:.. ..:-+++=: :=++-. .-+-. .=++-. :::::: . .::. :++=. :+#@@@@@@@@#+: *@@@@= :++= -#@@%*+-::-+*%@@#- :@@@@@@ .++= .*@@#- -#@@*. .#@@@@* -++. .#@@= =@@#. -++: .++- *@@- :++: -@@* :++. .@@# -%@@@@%- #@@. .--: -++ .++: %@@@@@@% +@@: ++- -++ %@@@@@@% +@@: ++- :++. .=+-. -%@@@@%- #@@. .++: .++- :%@@@%: :++: -@@* -++. -++. =@@@@@= =@@#. .++- .++= +%@%+ -#@@*. =++. :++= =*+-::-+*%@@#- =++: :++=. .#@@@@@@@@#+: .=++: .=++-. :::::: .-++=. :=++-. .-++=: :=+++-:.. ..:-+++=: .:-++++++++++++++-:. ..::----::.. `` 高性能、策略路由、IPsec 网状、SD-WAN 为什么选择 ranet3 协议与路由 (https://ranet3.com/#why) ## 为什么选择 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 测量每条链路的往返时间,当直连链路更慢时会自动选择经由中继的路径。 ``` A ← 40 ms → B ← 40 ms → C \_________________________/ 265 ms ``` 选定路径经过 B,80 ms;直连链路,265 ms。 RTT 持续被测量,丢包和链路中断也会作为负分计入链路评估。流量始终走最快路径,一旦直连链路更快便会自动切回。 ### 分段路由 基于源前缀和目标前缀的策略可以将流量引导至所选的中间路径点,并从指定出口离开。分段路由在用户空间实现,即使在 macOS 上也能工作——macOS 的 XNU 内核本身并不支持该功能。 | 路径点 | 终点 | 出口 | 终点 | |--------|------|------|------| | .D | T4 | Laptop | Internet | 路径点可以按用户指定的任意顺序出现,也可以重复,例如 A → B → C → B → D,其中 D 作为出口。 ## 基准测试 测量于 2026-10-15 (https://ranet3.com/#benchmarks) - **95%** — 达到 10 GbE 载荷上限的比例,单流单向 - 8.84 Gbit/s 中实测 8.39 Gbit/s - **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 次运行的中位数 ### 正面对比 每个区间表示 ranet3 的结果除以另一种数据平面在以下 6 项测试中的结果。 ### 内核与用户空间 用户空间数据平面将每个数据包拷贝到自身进程中,通常被认为会比内核数据平面更慢。 \* 不经隧道的纯 TCP。 内核 WireGuard 单向稳定在 5.1 至 5.4 Gbit/s。 内核 IPsec 单向稳定在 4.0 至 4.7 Gbit/s,因为单一流量仅落入一个 NIC 接收队列。 ### 完整结果 **吞吐量(饱和)** Gbit/s 接收量,越高越好 **3 Gbit/s 发送负载下的 CPU 开销** 每 Gbit/s 繁忙核心数(两台主机合计),越低越好 在"双向"行中,内核 IPsec 在 6 Gbit/s 发送负载下仅承载了 4.67 和 4.14 Gbit/s。 **饱和状态下的延迟** RTT p99,ms,越低越好 ## 环境配置 硬件、软件和测试方法 (https://ranet3.com/#setup) ### 硬件 | 项目 | 配置 | |------|------| | 主机 | 2 x 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 (https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.111) | | wireguard-go | 0.0.20250522 (https://git.zx2c4.com/wireguard-go/tag/?h=0.0.20250522) | | wireguard-tools | 1.0.20260223 (https://git.zx2c4.com/wireguard-tools/tag/?h=v1.0.20260223) | | iproute2 | 7.1.0 (https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/tag/?h=v7.1.0) | | iperf3 | 3.21 (https://github.com/esnet/iperf/releases/tag/3.21) | ### 测试方法 | 项目 | 说明 | |------|------| | 流量 | TCP,cubic 拥塞控制,内部 MTU 1400 | | 流数 | 1 和 8 | | 负载 | 吞吐量和延迟测试采用饱和负载,CPU 开销测试采用双向各 3 Gbit/s | | 方向 | 单向(各方向一次)以及双向同时 | | 运行次数 | 3 次 10 秒测试取中位数,各数据平面交替运行 | | CPU 开销 | 从 /proc/stat 中取繁忙核心数,在两台主机上求和,所有数据平面均未绑定 CPU 核 | | 线路限制 | 单向 8.84 Gbit/s TCP 载荷(含 ESP in UDP 封装),无隧道时双向 18.76 Gbit/s |

相似文章

fastSwan:Nvidia ConnectX-7 性能数据

Lobsters Hottest

本文详细评测了标准x86平台上的Nvidia ConnectX-7网卡,重点聚焦IPsec性能,并介绍了fastSwan的flower-mode(furious-mode)及其硬件和内核配置。