WireGuard und Tailscale – vom Schlüsselpaar bis zum Mesh
WireGuard ist ein schlanker VPN-Tunnel im Linux-Kernel: ein Schlüsselpaar pro Gerät, ein Handshake mit nur einem Roundtrip (1-RTT), dann verschlüsselte UDP-Pakete. Tailscale baut darauf ein Mesh-Netz: ein Koordinationsserver verteilt die öffentlichen Schlüssel, NAT-Traversal verbindet Geräte direkt – und wo das nicht klappt, springt ein DERP-Relay ein.
🗺️ Lektionen
Curve25519-Paare im Browser erzeugen, [Interface]/[Peer] verstehen und eine wg0.conf für zwei Peers generieren.
Ziel-IP eingeben → welcher Peer? Longest-Prefix-Match über AllowedIPs, IPv4 und IPv6, Bit für Bit.
Initiation, Response, Cookie – jedes Feld mit Byte-Größe, jede DH-Operation im Debugger vor und zurück.
ChaCha20-Poly1305, 64-Bit-Zähler, Polsterung – und warum aus 1500 genau 1420 wird. Dazu Roaming und Kernel vs. wireguard-go.
Control Plane vs. Data Plane, Machine-/Node-Keys, DERP, MagicDNS, ACLs/Grants, Subnet-Router, Exit-Nodes, Headscale.
Vier Geräte hinter verschiedenen NATs: STUN, Hole Punching und DERP-Fallback Schritt für Schritt.
Einrichtung, Schlüsselverteilung, NAT, Mesh vs. Hub, Kosten, Open Source, Datenschutz – in einer Tabelle.
🔐 WireGuard in fünf Sätzen
- Jedes Gerät besitzt ein Curve25519-Schlüsselpaar; der öffentliche Schlüssel ist seine Identität.
- Ein Peer ist „öffentlicher Schlüssel + AllowedIPs (+ optional Endpoint)“ – das ist das ganze Routing (Cryptokey Routing).
- Der Handshake folgt dem Noise-Muster IK mit Pre-Shared Key (Noise_IKpsk2) und wird alle 2 Minuten erneuert.
- Daten werden mit ChaCha20-Poly1305 verschlüsselt, ein 64-Bit-Zähler dient als Nonce und schützt vor Replays.
- Ohne gültige Authentisierung antwortet WireGuard nicht – der Port bleibt für Scanner stumm.
🕸️ Tailscale in fünf Sätzen
- Die Datenebene ist WireGuard (Userspace-Implementierung wireguard-go im Dienst tailscaled).
- Ein Koordinationsserver verteilt öffentliche Node-Keys, 100.x-Adressen und Regeln – er sieht keinen Datenverkehr.
- STUN und gleichzeitiges Hole Punching verbinden Geräte hinter NAT direkt miteinander.
- Klappt das nicht, laufen die (weiterhin Ende-zu-Ende verschlüsselten) Pakete über DERP-Relays per HTTPS.
- Headscale ist eine Open-Source-Alternative zum Koordinationsserver zum Selbsthosten.
wg genkey direkt auf dem Gerät verwenden.