From 3f3ed2fe1524b6e7d5432f86f1bca0c875eb6cb4 Mon Sep 17 00:00:00 2001 From: nd Date: Sat, 7 Nov 2020 00:18:48 +0100 Subject: [PATCH] better support p2p connections --- defaults/main.yml | 2 ++ templates/networkinterface.j2 | 31 ++++++++++++++++++++----------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 61f58a3..13f0bc4 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -4,6 +4,8 @@ wireguard: privkey: '' ip: [] ip6: [] + route: [] + route6: [] peers: {} connections: {} diff --git a/templates/networkinterface.j2 b/templates/networkinterface.j2 index e32e130..7339b81 100644 --- a/templates/networkinterface.j2 +++ b/templates/networkinterface.j2 @@ -1,20 +1,29 @@ auto wg_{{ item.name }} -iface wg_{{ item.name }} inet static -{% for i in item.ip %} - address {{ i }} -{% endfor %} +iface wg_{{ item.name }} inet manual + post-down ip link del $IFACE pre-up ip link add $IFACE type wireguard || true pre-up wg setconf $IFACE /etc/wireguard/$IFACE.conf -{% for i in item.route %} - up ip route add {{ i }} dev $IFACE +{% if item.route|length == 1 and item.ip|length == 1%} + pre-up ip a add {{ item.ip[0] }} peer {{ item.route[0] }} dev $IFACE + up ip route replace {{ item.route[0] }} src {{ item.ip[0].split('/')[0] }} dev $IFACE +{% else %} +{% for i in item.ip %} + pre-up ip a add {{ i }} dev $IFACE {% endfor %} - post-down ip link del $IFACE +{% for i in item.route %} + up ip route replace {{ i }} dev $IFACE +{% endfor %} +{% endif %} -iface wg_{{ item.name }} inet6 static - # static IP address +iface wg_{{ item.name }} inet6 manual +{% if item.route6|length == 1 and item.ip6|length == 1%} + pre-up ip -6 a add {{ item.ip6[0] }} peer {{ item.route6[0] }} dev $IFACE + up ip -6 route replace {{ item.route6[0] }} src {{ item.ip6[0].split('/')[0] }} dev $IFACE +{% else %} {% for i in item.ip6 %} - address {{ i }} + pre-up ip -6 a add {{ i }} dev $IFACE {% endfor %} {% for i in item.route6 %} - up ip -6 route add {{ i }} dev $IFACE + up ip -6 route replace {{ i }} dev $IFACE {% endfor %} +{% endif %}