0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Proxmox 9.2 新機能 WireGuard Fabric で VXLAN over WireGuard を試す:帯域とCPU使用率の実測

0
Last updated at Posted at 2026-05-23

はじめに

Proxmox VE 9.2 では、SDN Fabric に WireGuard が追加されました。

これにより、Proxmox SDN の Fabric 機能として WireGuard インターフェースを構成できるようになり、VXLAN の underlay 通信を WireGuard 経由にする構成が取りやすくなりました。

本記事では、Proxmox 9.2 の WireGuard Fabric を使い、VXLAN over WireGuard 構成を作成して、純VXLANと比較したパフォーマンスを測定します。

結論から言うと、今回の2.5GbE級の検証環境では、VXLAN over WireGuard でも帯域低下は約7〜8%程度に収まりました。一方で、ホスト側CPU使用率は純VXLANより明確に増えました。

なお、構築手順はこちらの記事にまとめています。

検証環境

今回の検証環境は以下です。

項目 内容
Proxmox VE 9.2.2
pve1 Intel Core i7-1360P
pve2 Intel Core i7-12700K
物理ネットワーク 2.5GbE
検証対象1 devpj09: VXLAN over WireGuard
検証対象2 devpj08: 純VXLAN
測定ツール iperf3 / mpstat

今回の比較では、pve1上のCTからpve2上のCTへ通信させています。

構成概要

devpj09: VXLAN over WireGuard
devpj09 は、VXLAN Zone の peer に WireGuard インターフェース上のIPを指定しています。
例:

pve1 wg0: 198.51.100.1
pve2 wg0: 198.51.100.2

VXLAN Zone devpj09 peers:
198.51.100.1,198.51.100.2

VNet は以下です。

vnetpj09
  zone: devpj09
  tag : 11000

CTは以下のように配置しました。

CT105 on pve1
  bridge: vnetpj09
  IP    : 172.16.24.1/24

CT106 on pve2
  bridge: vnetpj09
  IP    : 172.16.24.2/24

CT105からCT106へのpingは成功しており、VXLAN over WireGuard のL2通信は成立しています。

devpj08: 純VXLAN
比較対象として、WireGuardを使わない通常のVXLAN構成も作成しました。

CT107 on pve1
  bridge: vnetpj08
  IP    : 172.16.23.1/24

CT108 on pve2
  bridge: vnetpj08
  IP    : 172.16.23.2/24

こちらはProxmox SDNの通常VXLANとして動作します。

測定方法

iperf3を使ってCT間の通信速度を測定しました。
サーバ側:

iperf3 -s

クライアント側:

iperf3 -c <server-ip>
iperf3 -c <server-ip> -P 4
iperf3 -c <server-ip> -P 8

CPU使用率は、Proxmoxホスト側で mpstat を使って取得しました。

mpstat -P ALL 1 15

測定結果:帯域

VXLAN over WireGuard

devpj09、つまり VXLAN over WireGuard の測定結果は以下です。

測定 結果
single stream 約 2.11 Gbits/sec
-P 4 約 2.11 Gbits/sec
-P 8 約 2.11 Gbits/sec

単一ストリームでも並列ストリームでも、ほぼ 2.11Gbps 付近で頭打ちになりました。

純VXLAN

devpj08、つまり通常のVXLANの測定結果は以下です。

測定 結果
single stream 約 2.27 Gbits/sec
-P 4 約 2.27〜2.28 Gbits/sec
-P 8 約 2.27〜2.28 Gbits/sec

純VXLANでは、2.5GbE環境の実効上限に近いところまで出ています。

帯域比較

測定 VXLAN over WireGuard 純VXLAN 差分 低下率
single stream 2.11 Gbits/sec 2.27 Gbits/sec -0.16 Gbits/sec 約7.0%
-P 4 2.11 Gbits/sec 2.28 Gbits/sec -0.17 Gbits/sec 約7.5%
-P 8 2.11 Gbits/sec 2.28 Gbits/sec -0.17 Gbits/sec 約7.5%

帯域だけを見ると、WireGuardを挟んでも低下は約7〜8%程度でした。

WireGuardによる暗号化、VXLANカプセル化、さらにUDP/IPヘッダの追加を考えると、もっと大きく落ちる可能性もあると考えていましたが、2.5GbE級の環境では実用上かなり良好でした。

測定結果:CPU使用率

次にホスト側CPU使用率です。

pve1側で測定しました。

VXLAN over WireGuard

devpj09で iperf3 実行中のpve1ホスト側CPU使用率は、おおよそ以下でした。

項目 概算
ホスト全体CPU使用率 約14%前後
%sys + %soft 約13%前後

傾向:カーネル処理・softirqが増えている
WireGuard暗号化、VXLAN処理、bridge処理、virtio/veth周辺の処理が重なり、CPU使用率は明確に上がりました。

純VXLAN

devpj08でのpve1ホスト側CPU使用率はかなり低く、mpstat全体平均では以下でした。

項目 結果
%usr 0.43%
%sys 0.37%
%soft 0.27%
%idle 98.49%
ホスト全体CPU使用率 約1.51%

純VXLANでは、2.27Gbps以上出ているにもかかわらず、ホスト側CPU使用率は非常に低い結果になりました。

CPU使用率比較

項目 VXLAN over WireGuard 純VXLAN
帯域 約2.11 Gbits/sec 約2.27〜2.28 Gbits/sec
pve1ホストCPU使用率 約14%前後 約1.5%前後
主な負荷 WireGuard暗号化、VXLAN、softirq VXLAN、bridge処理のみ
CPUコスト 高い かなり低い

帯域差は小さいですが、CPU使用率の差は大きいです。

このため、WireGuard Fabricを使ったVXLAN over WireGuardは、単一テナントや低〜中程度のトラフィックでは十分実用的ですが、多数テナントが同時に高帯域通信する場合はCPUコストを考慮する必要があります。

考察

WireGuard Fabricのメリット

WireGuard Fabricを使う最大のメリットは、VXLANのunderlay通信を暗号化できることです。

通常のVXLANでは、underlayネットワーク上をUDP/4789のVXLANパケットが流れます。

一方、VXLAN over WireGuardでは、VXLANパケットがWireGuardトンネル内を流れるため、underlay側から見るとWireGuardの暗号化通信として見えます。

つまり、underlayネットワークを完全には信頼できない場合や、拠点間をまたいでProxmoxノードを接続する場合には、WireGuard Fabricは有効な選択肢になります。

一方で、内部クラスタ用途では注意が必要

同一拠点内のProxmoxクラスタで、underlayネットワークが管理者の制御下にある場合、WireGuard Fabricを常に使うメリットは限定的です。

特にマルチテナント基盤では、基盤管理者は各テナントネットワークの構成、仮想NIC、仮想スイッチ、ファイアウォール、ホスト側の通信経路を管理できます。

そのため、基盤管理者から各テナント内通信を完全に秘匿する、という目的でWireGuard Fabricを使うのは現実的ではありません。

この場合、WireGuard Fabricの主な価値は「基盤管理者からの秘匿」ではなく、以下になります。

  • underlayネットワーク上でVXLANパケットを平文のまま流したくない
  • 拠点間や非信頼ネットワークをまたぐ
  • 物理ネットワーク側の観測者からoverlay通信を守りたい
  • UDP/4789を直接見せず、WireGuardトンネル内に閉じ込めたい

逆に、完全に管理された内部ネットワークで使う場合は、純VXLANの方がCPU効率はかなり良いです。

今回の結論

今回の検証結果は以下です。

項目 結論
VXLAN over WireGuard の帯域 純VXLAN比で約7〜8%低下
VXLAN over WireGuard のCPU使用率 純VXLANより大きく増加
純VXLAN 非常に軽い
WireGuard Fabric 暗号化transportとして有効
内部クラスタ用途 CPUコストを考えると純VXLANが有利
拠点間・非信頼underlay WireGuard Fabricの価値が高い

Proxmox 9.2 の WireGuard Fabric は、非常に面白い機能です。

ただし、少なくとも今回の検証結果では、同一拠点内の管理されたProxmoxクラスタで常時使う機能というより、underlayを信頼できない環境や、拠点間接続でVXLAN transportを暗号化したい場合に使う機能と考えるのが自然です。

帯域低下は思ったより小さい一方で、CPUコストは明確に増えるため、特に8テナント、16テナントといった複数テナントが同時に高帯域通信する環境では、CPU余力を見て設計する必要があります。

補足:MSL Setupでの考え方

私が開発している MSL Setup では、Proxmox上に複数の分離されたプロジェクトネットワークを作成します。

MSL Setup: https://github.com/zelogx/msl-setup

このようなマルチテナント基盤では、基盤管理者は各テナントの仮想ネットワークを管理する立場にあります。そのため、基盤管理者からテナント内部通信を完全に秘匿することを目的にWireGuard Fabricを使うのは、現実的な目的としてはあまり意味がありません。

一方で、underlayネットワーク側でVXLANを直接見せたくない場合や、拠点間接続を行う場合には、WireGuard Fabricは有効な選択肢になります。

そのため、MSL Setupとしては以下のような整理が自然だと考えています。

モード 位置づけ
純VXLAN 標準モード。軽く、高速。内部クラスタ向け
VXLAN over WireGuard Secure Transport Mode。CPUコストは増えるが、underlay上の通信を暗号化できる

今回の実測結果を見る限り、WireGuard Fabricは「常にONにするもの」というより、用途に応じて選択する機能として扱うのが良さそうです。

参考:物理ネットワーク直通の上限

比較のため、pve1 から pve2 の物理LAN側IPへ直接 iperf3 を実行しました。

経路 実測帯域
pve1 → pve2 直通 約 2.35〜2.36 Gbits/sec
純VXLAN 約 2.27〜2.28 Gbits/sec
VXLAN over WireGuard 約 2.11 Gbits/sec

純VXLANは物理直通と比較して約3〜4%低下しました。
これは VNet側MTUが1450になることによる有効ペイロード低下に近い値です。

一方、VXLAN over WireGuardでは物理直通比で約10〜11%低下しました。
したがって、今回の環境では WireGuard を追加したことによる追加低下は約7%前後と見られます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?