diff --git a/roles/install_wireguard_mesh/templates/down.sh.j2 b/roles/install_wireguard_mesh/templates/down.sh.j2 index a1f8d52..979523c 100644 --- a/roles/install_wireguard_mesh/templates/down.sh.j2 +++ b/roles/install_wireguard_mesh/templates/down.sh.j2 @@ -1,8 +1,8 @@ #!/bin/bash -{% if item.wireguard_mesh_peers %} -{% for peer in item.wireguard_mesh_peers %} -batctl -m bat{{ item.name }} 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 +{% for host in groups['fastd'] %} +{% for site in hostvars[host]['sites'] if site.name == item.name and site.wireguard_mesh_number != item.wireguard_mesh_number %} +batctl -m bat{{ item.name }} if del mesh{{ item.name }}{{ site.wireguard_mesh_number }} +ip link set down dev mesh{{ item.name }}{{ site.wireguard_mesh_number }} +ip link del mesh{{ item.name }}{{ site.wireguard_mesh_number }} type ip6gretap +{% endfor %} {% endfor %} -{% endif %} diff --git a/roles/install_wireguard_mesh/templates/up.sh.j2 b/roles/install_wireguard_mesh/templates/up.sh.j2 index c413685..23e24aa 100644 --- a/roles/install_wireguard_mesh/templates/up.sh.j2 +++ b/roles/install_wireguard_mesh/templates/up.sh.j2 @@ -1,11 +1,12 @@ #!/bin/bash -{% if item.wireguard_mesh_peers %} -{% 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 }} +{% for host in groups['fastd'] %} +{% for site in hostvars[host]['sites'] if site.name == item.name and site.wireguard_mesh_number != item.wireguard_mesh_number %} +ip link add mesh{{ item.name }}{{ site.wireguard_mesh_number }} type ip6gretap remote {{ site.wireguard_mesh_address }} local {{ item.wireguard_mesh_address }} ttl 255 dev wg{{ item.name }} +ip link set mtu 1280 dev mesh{{ item.name }}{{ site.wireguard_mesh_number }} +ip link set address {{ item.wireguard_mesh_mac_prefix }}{{ site.wireguard_mesh_number }} dev mesh{{ item.name }}{{ site.wireguard_mesh_number }} +ip link set up dev mesh{{ item.name }}{{ site.wireguard_mesh_number }} +batctl -m bat{{ item.name }} if add mesh{{ item.name }}{{ site.wireguard_mesh_number }} +{% endfor %} {% endfor %} batctl -m bat{{ item.name }} gw server 1000000/1000000 batctl -m bat{{ item.name }} it 10000 @@ -14,4 +15,3 @@ echo 64 > /sys/class/net/bat{{ item.name }}/mesh/hop_penalty netctl start bat{{ item.name }} systemctl restart dhcpd4.service systemctl restart named.service -{% endif %} diff --git a/roles/install_wireguard_mesh/templates/wg.conf.j2 b/roles/install_wireguard_mesh/templates/wg.conf.j2 index e3af3f2..410d591 100644 --- a/roles/install_wireguard_mesh/templates/wg.conf.j2 +++ b/roles/install_wireguard_mesh/templates/wg.conf.j2 @@ -1,15 +1,17 @@ [Interface] ListenPort = {{ item.wireguard_mesh_port }} -PrivateKey = {{ item.wireguard_mesh_key }} +PrivateKey = {{ item.wireguard_mesh_priv_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 %} +{% for host in groups['fastd'] %} +{% for site in hostvars[host]['sites'] if site.name == item.name and site.wireguard_mesh_number != item.wireguard_mesh_number %} [Peer] -PublicKey = {{ peer.key }} -AllowedIPs = {{ peer.address }}/128 -Endpoint = [{{ peer.endpoint }}]:{{ item.wireguard_mesh_port }} +PublicKey = {{ site.wireguard_mesh_pub_key }} +AllowedIPs = {{ site.wireguard_mesh_address }}/128 +Endpoint = [{{ site.wireguard_mesh_endpoint }}]:{{ item.wireguard_mesh_port }} PersistentKeepalive = 30 {% endfor %} +{% endfor %}