aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/contrib/stress-testing/self-send.sh
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/stress-testing/self-send.sh')
-rwxr-xr-xcontrib/stress-testing/self-send.sh48
1 files changed, 48 insertions, 0 deletions
diff --git a/contrib/stress-testing/self-send.sh b/contrib/stress-testing/self-send.sh
new file mode 100755
index 0000000..eb7947b
--- /dev/null
+++ b/contrib/stress-testing/self-send.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+set -e
+
+PRIVATE_KEYS=("")
+PUBLIC_KEYS=("")
+
+resetwg() {
+ for i in {1..64}; do
+ ip link delete dev wg${i} 2>/dev/null >/dev/null || true
+ done
+}
+
+for i in {1..64}; do
+ next_key="$(wg genkey)"
+ PRIVATE_KEYS+=("$next_key")
+ PUBLIC_KEYS+=($(wg pubkey <<<"$next_key"))
+done
+
+resetwg
+trap resetwg INT TERM EXIT
+
+for i in {1..64}; do
+ { echo "[Interface]"
+ echo "ListenPort = $(( $i + 31222 ))"
+ echo "PrivateKey = ${PRIVATE_KEYS[$i]}"
+
+ for j in {1..64}; do
+ [[ $i == $j ]] && continue
+ echo "[Peer]"
+ echo "PublicKey = ${PUBLIC_KEYS[$j]}"
+ echo "AllowedIPs = 192.168.8.${j}/32"
+ echo "Endpoint = 127.0.0.1:$(( $j + 31222 ))"
+ done
+ } > "/tmp/deviceload.conf"
+
+ ip link add dev wg${i} type wireguard
+ wg setconf wg${i} "/tmp/deviceload.conf"
+ ip link set up dev wg${i}
+ rm "/tmp/deviceload.conf"
+done
+
+ip address add dev wg1 192.168.8.1/24
+
+while true; do
+ for i in {2..64}; do
+ echo hello | ncat -u 192.168.8.${i} 1234
+ done
+done