WireGuard-Tunnel zu FunkFeuer: Unterschied zwischen den Versionen
Zeile 37: | Zeile 37: | ||
= Variante 1 - WG mit VXLAN = | = Variante 1 - WG mit VXLAN = | ||
== Info == | |||
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. | 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. | ||
Zeile 51: | Zeile 52: | ||
--> Automatisierung somit vollständig möglich ohne Admin Eingriff am Tunnel-Server | --> Automatisierung somit vollständig möglich ohne Admin Eingriff am Tunnel-Server | ||
=== TODO === | |||
Getestet ist es noch nicht, grundsätzlich müsste ein redundantes Tunnelserver Setup machbar sein. | Getestet ist es noch nicht, grundsätzlich müsste ein redundantes Tunnelserver Setup machbar sein. | ||
Zeile 56: | Zeile 59: | ||
atadxart - (werde ich noch nachliefern) | atadxart - (werde ich noch nachliefern) | ||
=== Netzaufbau === | |||
<pre> | <pre> | ||
<Tunnelserver> ----------OLSR---------- <Node1> | <Tunnelserver> ----------OLSR---------- <Node1> | ||
Zeile 63: | Zeile 67: | ||
<Remote Node> -----------OLSR----------# | <Remote Node> -----------OLSR----------# | ||
</pre> | </pre> | ||
=== MTU === | |||
Ausgehend von 1500 nutzbarer MTU | |||
https://baturin.org/tools/encapcalc/?protocols=PPPoE,IPv4,WireGuard,IPv6,VXLAN | |||
20 bytes bleiben da über aber es könnte ja IPv6 native vorm Wireguard sein dann kommt es auf | |||
https://baturin.org/tools/encapcalc/?protocols=PPPoE,IPv6,WireGuard,IPv6,VXLAN | |||
somit max MTU 1356 | |||
== Tunnelserver == | == Tunnelserver == | ||
Version vom 7. Februar 2022, 09:48 Uhr
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
- MTU Calc - https://baturin.org/tools/encapcalc/
- OLSR Debian - https://repos.freiesnetz.at/
Variante 1 - WG mit VXLAN
Info
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)
- Security - Daten Verschlüsselung, und durch Public/Private Key ist auch eine Authentifizierung gegenseitig gegeben.
--> Automatisierung somit vollständig möglich ohne Admin Eingriff am Tunnel-Server
TODO
Getestet ist es noch nicht, grundsätzlich müsste ein redundantes Tunnelserver Setup machbar sein.
atadxart - (werde ich noch nachliefern)
Netzaufbau
<Tunnelserver> ----------OLSR---------- <Node1> | | [Wireguard/VXLAN - OLSR] | | | <Remote Node> -----------OLSR----------#
MTU
Ausgehend von 1500 nutzbarer MTU
https://baturin.org/tools/encapcalc/?protocols=PPPoE,IPv4,WireGuard,IPv6,VXLAN
20 bytes bleiben da über aber es könnte ja IPv6 native vorm Wireguard sein dann kommt es auf
https://baturin.org/tools/encapcalc/?protocols=PPPoE,IPv6,WireGuard,IPv6,VXLAN
somit max MTU 1356
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