wireguard site mesh
parent
d82f852497
commit
739f97d859
@ -0,0 +1,10 @@
|
||||
---
|
||||
- name: install wireguard
|
||||
pacman:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
with_items:
|
||||
- wireguard-dkms
|
||||
- wireguard-tools
|
||||
- linux-headers
|
||||
|
@ -0,0 +1,28 @@
|
||||
---
|
||||
- name: create wireguard config for sites
|
||||
template:
|
||||
src: wg.conf.j2
|
||||
dest: /etc/wireguard/wg{{ item.name }}.conf
|
||||
mode: 0400
|
||||
with_items: "{{ sites }}"
|
||||
|
||||
- name: create wireguard up scripts for sites
|
||||
template:
|
||||
src: up.sh.j2
|
||||
dest: /etc/wireguard/up{{ item.name }}.sh
|
||||
mode: 0744
|
||||
with_items: "{{ sites }}"
|
||||
|
||||
- name: create wireguard down scripts for sites
|
||||
template:
|
||||
src: down.sh.j2
|
||||
dest: /etc/wireguard/down{{ item.name }}.sh
|
||||
mode: 0744
|
||||
with_items: "{{ sites }}"
|
||||
|
||||
- name: start and enable wireguard mesh
|
||||
systemd:
|
||||
name: wg-quick@wg{{ item.name }}.service
|
||||
enabled: yes
|
||||
state: started
|
||||
with_items: "{{ sites }}"
|
@ -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 %}
|
@ -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
|
@ -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 %}
|
Loading…
Reference in New Issue