summaryrefslogtreecommitdiff
path: root/roles/install_wireguard_mesh/templates
diff options
context:
space:
mode:
Diffstat (limited to 'roles/install_wireguard_mesh/templates')
-rw-r--r--roles/install_wireguard_mesh/templates/down.sh.j26
-rw-r--r--roles/install_wireguard_mesh/templates/up.sh.j215
-rw-r--r--roles/install_wireguard_mesh/templates/wg.conf.j215
3 files changed, 36 insertions, 0 deletions
diff --git a/roles/install_wireguard_mesh/templates/down.sh.j2 b/roles/install_wireguard_mesh/templates/down.sh.j2
new file mode 100644
index 0000000..29d4fb7
--- /dev/null
+++ b/roles/install_wireguard_mesh/templates/down.sh.j2
@@ -0,0 +1,6 @@
+#!/bin/bash
+{% for peer in item.wireguard_mesh_peers %}
+batctl -m bat0 if del mesh{{ item.name }}{{ peer.number }}
+ip link set down dev mesh{{ item.name }}{{ peer.number }}
+ip link del mesh{{ item.name }}{{ peer.number }} type ip6gretap
+{% endfor %}
diff --git a/roles/install_wireguard_mesh/templates/up.sh.j2 b/roles/install_wireguard_mesh/templates/up.sh.j2
new file mode 100644
index 0000000..cdab474
--- /dev/null
+++ b/roles/install_wireguard_mesh/templates/up.sh.j2
@@ -0,0 +1,15 @@
+#!/bin/bash
+{% for peer in item.wireguard_mesh_peers %}
+ip link add mesh{{ item.name }}{{ peer.number }} type ip6gretap remote {{ peer.address }} local {{ item.wireguard_mesh_address }} ttl 255 dev wg{{ item.name }}
+ip link set mtu 1280 dev mesh{{ item.name }}{{ peer.number }}
+ip link set address {{ peer.mac }} dev mesh{{ item.name }}{{ peer.number }}
+ip link set up dev mesh{{ item.name }}{{ peer.number }}
+batctl -m bat{{ item.name }} if add mesh{{ item.name }}{{ peer.number }}
+{% endfor %}
+batctl -m bat{{ item.name }} gw server 1000000/1000000
+batctl -m bat{{ item.name }} it 10000
+batctl -m bat{{ item.name }} mm 1
+echo 64 > /sys/class/net/bat{{ item.name }}/mesh/hop_penalty
+netctl start bat{{ item.name }}
+systemctl restart dhcpd4.service
+systemctl restart named.service
diff --git a/roles/install_wireguard_mesh/templates/wg.conf.j2 b/roles/install_wireguard_mesh/templates/wg.conf.j2
new file mode 100644
index 0000000..e3af3f2
--- /dev/null
+++ b/roles/install_wireguard_mesh/templates/wg.conf.j2
@@ -0,0 +1,15 @@
+[Interface]
+ListenPort = {{ item.wireguard_mesh_port }}
+PrivateKey = {{ item.wireguard_mesh_key }}
+Address = {{ item.wireguard_mesh_address }}/48
+MTU = 1400
+PostUp = /etc/wireguard/up{{ item.name }}.sh
+PreDown = /etc/wireguard/down{{ item.name }}.sh
+
+{% for peer in item.wireguard_mesh_peers %}
+[Peer]
+PublicKey = {{ peer.key }}
+AllowedIPs = {{ peer.address }}/128
+Endpoint = [{{ peer.endpoint }}]:{{ item.wireguard_mesh_port }}
+PersistentKeepalive = 30
+{% endfor %}