WireGuard · AllowedIPs

🧭Cryptokey Routing

Das Herzstück von WireGuard: Jeder öffentliche Schlüssel ist mit einer Liste von IP-Präfixen verknüpft. Diese eine Tabelle beantwortet zwei Fragen – beim Senden „Für wen verschlüssele ich?“ und beim Empfangen „Darf dieser Absender diese IP-Adresse benutzen?“.
📤 Senden
Ein Paket kommt vom Betriebssystem ins Interface wg0. WireGuard sucht die Ziel-IP in den AllowedIPs aller Peers. Gewinner ist das längste passende Präfix (Longest-Prefix-Match, wie in jedem Router). Mit dessen Sitzungsschlüssel wird verschlüsselt, an dessen Endpoint wird gesendet.
📥 Empfangen
Nach dem Entschlüsseln steht fest, welcher Peer das Paket geschickt hat (nur er kennt den Schlüssel). Liegt die innere Quell-IP nicht in dessen AllowedIPs, wird das Paket verworfen. Eine Firewall-Regel „10.8.0.7 darf auf den NAS“ bedeutet also wirklich: „der Besitzer dieses Schlüssels“.

🧪Ausprobieren

Ziel-IP eingeben (IPv4 oder IPv6), AllowedIPs der Peers ändern und zusehen, wie sich die Entscheidung ändert.
🧾 Peers dieses Interfaces
PublicKey = 4M402DfTsqLBPWsQ1nSQiN3aYugbFPX8561dzsWOamU=
AllowedIPs
PublicKey = n+vpuMTfp+JegwzwBmyK1qqw589bYxvXVaiW8M4s61w=
AllowedIPs
PublicKey = bD2+2B18X0vV3Z2hhA0OMpEainDF02+DyvaR1J9J+kU=
AllowedIPs
PublicKey = /ppNWGLA96L0eSxtdBZe8YBVYnuoJtNQVbtRhe9X1wo=
AllowedIPs

8 Einträge in der Routing-Tabelle (Trie im Kernel). Doppelte Präfixe: der zuletzt genannte Peer gewinnt.

Ziel-IP des inneren Pakets
Longest-Prefix-Match: 10.8.0.7/32
→ verschlüsseln für „nas
Das Paket wird mit dem Sitzungsschlüssel dieses Peers verschlüsselt und an dessen aktuellen Endpoint gesendet.
🔎 Alle Einträge der Tabelle
PräfixLängePeerpasst?
10.8.0.7/32/32nas✔ längster Treffer
10.8.0.0/24/24vpn-server✔ (kürzer)
0.0.0.0/0/0exit-node✔ (kürzer)
fd08::7/128/128nas
fd08::/64/64vpn-server
10.8.0.5/32/32heim-router
192.168.178.0/24/24heim-router
::/0/0exit-node
Ziel00001010000010000000000000000111
10.8.0.7/3200001010000010000000000000000111
Grün = die ersten 32 Bit (Präfix) stimmen überein · grau = Hostteil, wird ignoriert · Maske 255.255.255.255

💡Merksätze

0.0.0.0/0 = Standardroute
Ein Peer mit 0.0.0.0/0, ::/0 bekommt alles, was kein spezifischeres Präfix hat – so funktioniert ein Full-Tunnel-VPN oder ein Exit-Node.
Kein Präfix doppelt
Dasselbe Präfix kann nur zu einem Peer gehören. Wird es bei einem zweiten Peer eingetragen, wandert es dorthin – ein häufiger Fehler bei kopierten Konfigs.
Nicht dasselbe wie die Kernel-Route
AllowedIPs entscheiden innerhalb von wg0. Damit Pakete überhaupt in wg0 landen, braucht das System eine Route – die legt wg-quick automatisch aus den AllowedIPs an.