WireGuard-Tunnel zu FunkFeuer
WireGuard Tunnel für Nodes | |
---|---|
Starttermin |
05 Jan. 21 |
Status | |
TODO: WireGuard-Tunnel zu FunkFeuer
Falls du Interesse hast, diese Idee zu einem Projekt und hoffentlich zu einem lauffähigen Produkt für die 0xFF-Gemeinschaft zu machen, mach mit und teile deine Ideen und Vorstellungen.
--> https://matrix.to/#/%230xFF-WireGuardTunnel%3Amatrix.org // #0xFF-WireGuardTunnel:matrix.org
Ziel
- Es soll möglich sein, über WireGuard die Funktionalität des jetzigen OpenVPN-Zugangs abzubilden.
- Es soll eine möglichst vollautomatische Konfig über das Frontend machbar sein.
- Es soll IPv4 und IPv6 möglich sein.
- ...
Vorteile
- Verschlüsselung des Tunnels bei niedriger CPU-Last
- Tunnel ist stateless
- Software deutlich kleiner als OpenVPN
- Konfig sehr einfach
Nachteile
- für OLSRv1 muss eine Layer2-Tunneltechnik durch den Tunnel gebaut werden, da WireGuard nur Layer3 macht
Link-Sammlung
EdgeRouter WireGuard - https://github.com/WireGuard/wireguard-vyatta-ubnt
Variante 1
Remote Node kann via Wireguard verbinden und via SiteLocal ipv6 fd00 Adresse ein VXLAN aufbauen, dieses steckt in der bridge auf der OLSR läuft. (SiteLocal könnte mit echter 0xFF IPv6 ersetzt werden, mir fällt jedoch kein Nutzen ein - atadxart)
- Wireguard Verbindung Node Public Key --> im Frontend hinterlegbar.
- SiteLocal IPv6 lässt sich zb aus NODE ID und Device ID aus dem Frontend errechnen.
- Wireguard ist zur Laufzeit konfigurierbar ohne laufende Tunnel zu stören.
- VXLAN ebenfalls zur Laufzeit konfigurierbar.
- IPv4 Sparsamkeit da nur eine IPv4 für alle Remote Nodes nötig
- Der IPv?/UDP Wireguard/IPv6 VXLAN/IPv4 Stack ist recht dick doch da Wireguard multithread fähig ist darf mehr Durchsatz erwartet werden.(ggü OpenVPN)
--> Automatisierung somit vollständig möglich ohne Admin Eingriff am Tunnel-Server
Getestet ist es noch nicht, grundsätzlich müsste ein redundantes Tunnelserver Setup machbar sein. - atadxart (werde ich noch nachliefern)
<Tunnelserver> ----------OLSR---------- <Node1> | | [Wireguard/VXLAN - OLSR] | | | <Remote Node> -----------OLSR----------#
Tunnelserver
- Debian 11
- OLSR von https://repos.freiesnetz.at/
- wireguard
- ifupdown2
/etc/network/interfaces
auto lo iface lo inet loopback #VIRTUAL Wireless link to Node 1 # OLSR interface auto enp1s0 iface enp1s0 address 10.1.0.1/32 #INTERNET auto enp2s0 iface enp2s0 inet dhcp #Bridge für VXLANS #OLSR Interface auto br0 iface br0 pre-up /usr/bin/ip link add br0 type bridge address 10.1.1.1/32 post-up /usr/bin/ip link set br0 mtu 1356 #WIREGUARD #für alle Clients auto wg-olsr iface wg-olsr pre-up /usr/bin/ip link add wg-olsr type wireguard pre-up /usr/bin/wg setconf wg-olsr /etc/wireguard/wg-olsr.conf post-up /usr/bin/ip link set wg-olsr mtu 1420 #dieser part muss für jeden remote client ausgeführt werden #Remote Node Config post-up /usr/bin/ip addr add fd00:00ff:0001:abba::1/64 dev wg-olsr post-up /usr/bin/ip link add vxlan1 type vxlan id 1 remote fd00:00ff:0001:abba::2 dstport 4789 dev wg-olsr post-up /usr/bin/ip link set vxlan1 up post-up /usr/bin/ip link set vxlan1 mtu 1356 post-up /usr/bin/ip link set vxlan1 master br0
/etc/olsrd/olsrd.conf
Hier nur die zusätzlichen Settings
Interface "enp1s0" { AutoDetectChanges yes LinkQualityMult default 1.0 Weight 0 } Interface "br0" { AutoDetectChanges yes LinkQualityMult default 1.0 Weight 0 }
/etc/wireguard/wg-olsr.conf
[Interface] ListenPort = 51820 PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXX ##Remote Node [Peer] PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXX AllowedIPs = fc00:ff:1:abba::2 PersistentKeepalive = 25
Remote Node
- Debian 11
- OLSR von https://repos.freiesnetz.at/
- wireguard
- ifupdown2
/etc/network/interfaces
auto enp1s0 iface enp1s0 inet dhcp auto enp7s0 iface enp7s0 address 10.3.0.1/32 auto br0 iface br0 pre-up /usr/bin/ip link add br0 type bridge address 10.3.1.1/32 post-up /usr/bin/ip link set br0 mtu 1356 auto wg-olsr iface wg-olsr pre-up /usr/bin/ip link add wg-olsr type wireguard pre-up /usr/bin/wg setconf wg-olsr /etc/wireguard/wg-olsr.conf address fd00:00ff:0001:abba::2/64 post-up /usr/bin/ip link set wg-olsr mtu 1420 post-up /usr/bin/ip link add vxlan1 type vxlan id 1 remote fd00:00ff:0001:abba::1 dstport 4789 dev wg-olsr post-up /usr/bin/ip link set vxlan1 up post-up /usr/bin/ip link set vxlan1 mtu 1356 post-up /usr/bin/ip link set vxlan1 master br0
/etc/olsrd/olsrd.conf
Interface "enp7s0" { AutoDetectChanges yes LinkQualityMulti default 1.0 Weight 0 } Interface "br0" { AutoDetectChanges yes LinkQualityMulti default 1.0 Weight 0 }
/etc/wireguard/wg-olsr.conf
[Interface] ListenPort = 51820 PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX #tunnel server [Peer] Endpoint = tunnelserver:51820 PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX AllowedIPs = fd00:ff:1:abba::1 PersistentKeepalive = 25