-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.bench.yml
More file actions
107 lines (101 loc) · 2.46 KB
/
Copy pathdocker-compose.bench.yml
File metadata and controls
107 lines (101 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# MeshGuard WireGuard Benchmark
#
# Compares userspace WG (Zig) vs kernel WG throughput using iperf3.
#
# Usage:
# zig build -Doptimize=ReleaseSafe
# docker compose -f docker-compose.bench.yml up --build -d
# # Wait ~10s for handshakes
# docker compose -f docker-compose.bench.yml exec zig-client iperf3 -c <zig-server-mesh-ip> -t 10
# docker compose -f docker-compose.bench.yml exec kernel-client iperf3 -c <kernel-server-mesh-ip> -t 10
services:
# ── Userspace WG pair (Zig implementation) ──
zig-server:
build: .
container_name: mg-bench-zig-server
hostname: zig-server
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
sysctls:
- net.ipv4.ip_forward=1
volumes:
- bench-keys:/shared/keys
networks:
bench:
ipv4_address: 172.32.0.10
environment:
- MESHGUARD_CONFIG_DIR=/etc/meshguard
- SEED_DELAY=1
- BENCH_ROLE=server
zig-client:
build: .
container_name: mg-bench-zig-client
hostname: zig-client
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
sysctls:
- net.ipv4.ip_forward=1
volumes:
- bench-keys:/shared/keys
depends_on:
- zig-server
networks:
bench:
ipv4_address: 172.32.0.11
environment:
- MESHGUARD_CONFIG_DIR=/etc/meshguard
- SEED_PEERS=172.32.0.10:51821
- SEED_DELAY=3
- BENCH_ROLE=client
# ── Kernel WG pair (standard wg-quick) ──
kernel-server:
build: .
container_name: mg-bench-kernel-server
hostname: kernel-server
cap_add:
- NET_ADMIN
sysctls:
- net.ipv4.ip_forward=1
volumes:
- bench-keys:/shared/keys
networks:
bench:
ipv4_address: 172.32.0.20
environment:
- MESHGUARD_CONFIG_DIR=/etc/meshguard
- SEED_DELAY=1
- BENCH_MODE=kernel
- BENCH_ROLE=server
kernel-client:
build: .
container_name: mg-bench-kernel-client
hostname: kernel-client
cap_add:
- NET_ADMIN
sysctls:
- net.ipv4.ip_forward=1
volumes:
- bench-keys:/shared/keys
depends_on:
- kernel-server
networks:
bench:
ipv4_address: 172.32.0.21
environment:
- MESHGUARD_CONFIG_DIR=/etc/meshguard
- SEED_PEERS=172.32.0.20:51821
- SEED_DELAY=3
- BENCH_MODE=kernel
- BENCH_ROLE=client
volumes:
bench-keys:
networks:
bench:
driver: bridge
ipam:
config:
- subnet: 172.32.0.0/24