TP10 🎯 Root Cause FM-NAT gefunden: FB braucht LAN-IP als WG-Address (Proxy-ARP)

Echt-Host-Test (Ping realer 10.101.0.10 über WG) -> Antwort aus 10.255.255.2
=> FB masqueradet den Tunnel, bestätigt. Ursache: .conf nutzte Transfernetz-
Adresse (10.255.255.2/32) -> FRITZ!OS = Einzelgerät-Modus = NAT. AVM nutzt
Proxy-ARP statt Transfernetz -> FB-WG-Interface-Address muss die FB-LAN-IP sein
(FM 10.101.0.254/24, DW 192.168.178.1/24), Transfernetz streichen, AllowedIPs
10.40.0.0/16. -> WG-Spoke-Ansatz damit machbar.

- fritzbox-wg-lanlan-klickanleitung.md: Root Cause + One-Field-Fix (LAN-IP als
  Address), LAN-LAN-Wizard, Verify gegen 10.101.0.10.
- teilprojekte.md / tp10-vpn-migration.md: Status "Root Cause gefunden, machbar".

Korrigierte Spoke-Configs in routeros/.secrets/wg-{fm,dw}.conf (gitignored).
FM bleibt auf IPsec (Sicherheitsnetz); ap1-WG-Hub inert.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-17 00:15:32 +02:00
parent e54e6eb7cb
commit 919f8623c9
3 changed files with 69 additions and 100 deletions

View File

@@ -123,14 +123,16 @@ Kontrolle: MikroMCP (MikroTik) live · ALLNET = Klickanleitungen · Omada → Co
Routen + Firewall (input/forward) gesetzt; NAT braucht nichts (Egress wg-hub ≠ masq-Interface). Hub-Pub
`P/bztIk13cAmLHbN6oHGGnWAKLZsqR5TXAbFP+NGGBk=`, Endpoint `xvbeo64jqlqd9gfo.myfritz.net:51821`.
Spoke-Configs in `routeros/.secrets/wg-{fm,dw}.conf` (Private-Keys, nicht im Git). FB-Portfreigabe 51821→ap1 gesetzt.
- **⛔ Phase-B-Versuch FM gescheitert → revertiert (2026-06-16):** `.conf` importiert, Handshake grün, IPsec
voreilig deaktiviert → FM-LAN nicht erreichbar. **Befund:** WG-Tunnel routet (rx/tx fließen), aber Test war nur
Ping auf FB-eigene `.254` (antwortet aus Tunnel-IP `10.255.255.2` → OS verwirft) — **echte LAN-Hosts nie getestet**.
→ **NAT-These unbewiesen.** Research (Bouni) bestätigt FB↔MikroTik-LAN-LAN **ohne NAT** ist machbar. User hat
**FM auf IPsec zurückgestellt** (FB-WG aus). ap1-WG-Hub/Peers bleiben (inert).
- **⏳ Resume:** Klickanleitung `routeros/fritzbox-wg-lanlan-klickanleitung.md` — **Echt-Host-Test zuerst**
(realer `10.101.0.X`, nicht `.254`), FB-WG als LAN-LAN/AllowedIPs `10.40.0.0/16` prüfen, ap1-Route `10.255.255.0/24→wg-hub`,
IPsec erst nach grünem Verify abschalten. **Port 51821** hält FB-51820-WG (DW) intakt.
- **⛔→💡 Phase-B-Versuch FM gescheitert, ROOT CAUSE gefunden (2026-06-16):** `.conf` importiert, IPsec voreilig
aus → FM weg, revertiert. **Echt-Host-Test (WG reaktiviert):** Ping realer Host `10.101.0.10` → Antwort aus
`10.255.255.2` → **FB-NAT bestätigt.** **Ursache:** unsere `.conf` nutzte eine **Transfernetz-Adresse**
(`10.255.255.2/32`) → FRITZ!OS behandelt das als Einzelgerät → masqueradet. **AVM nutzt Proxy-ARP, KEIN
Transfernetz** → FB-WG-Interface-`Address` muss die **FB-LAN-IP** sein (FM `10.101.0.254/24`, DW `192.168.178.1/24`),
Transfernetz streichen, AllowedIPs `10.40.0.0/16`. **→ Ansatz machbar.** Configs `routeros/.secrets/wg-{fm,dw}.conf`
korrigiert. FM aktuell auf **IPsec** (Sicherheitsnetz); ap1-WG-Hub bleibt (inert).
- **⏳ Resume:** Klickanleitung `routeros/fritzbox-wg-lanlan-klickanleitung.md` — FB-WG als **LAN-LAN mit FB-LAN-IP als
Interface-Adresse** neu anlegen, Echt-Host-Test gegen `10.101.0.10`, IPsec erst nach grünem Verify abschalten.
**Port 51821** hält FB-51820-WG (DW) intakt.
- **Empfehlung:** **Hybrid** — **WireGuard Site-to-Site-Backbone** (BF/hAP = WG-**Hub**, FM/DW = FritzBox-**Spokes**, hub&spoke, **KEINE Zusatz-HW**) **+ WARP für Remote-User** (ergänzt, ersetzt nicht).
- **WARP kann FBs NICHT direkt** ansprechen → bräuchte Connector-Host hinter der FB (an reinen-FB-Standorten FM/DW unattraktiv).
- **Vorab-Check (User, entscheidend):** WAN je Standort — **public/dynamisch (OK: DynDNS/MyFRITZ) vs. CGNAT/DS-Lite am BF-Hub (= K.O. → dann CF/WARP-Pfad, CGNAT-immun)**.

View File

@@ -4,13 +4,14 @@
> gated: permanenter FB-Bridge-Mode (AP4.1) hängt an diesem TP.
> **Reihenfolge fix: VPNs migrieren → Liwest-Anruf (Bridge) → FB wird Modem.**
> ## ⏸ STATUS 2026-06-16: PAUSIERT — FM auf IPsec zurück
> Phase-A-Hub auf ap1 steht (s.u.). **Phase-B-Versuch FM gescheitert + revertiert:** `.conf` importiert,
> Handshake grün, IPsec voreilig aus → FM nicht erreichbar. **Diagnose-Fehler:** nur FB-eigene `.254` gepingt
> (antwortet aus Tunnel-IP `10.255.255.2` → OS verwirft); **echte FM-LAN-Hosts nie getestet** → NAT-These unbewiesen.
> Research (Bouni) sagt: FB↔MikroTik-LAN-LAN **ohne NAT geht**. User hat **FM auf IPsec zurückgestellt** (FB-WG aus),
> ap1-WG-Hub bleibt (inert). **Wiederaufnahme via Klickanleitung `routeros/fritzbox-wg-lanlan-klickanleitung.md`**
> (Echt-Host-Test ZUERST, dann FB-LAN-LAN-Check, IPsec bleibt Sicherheitsnetz).
> ## ⏸ STATUS 2026-06-16: PAUSIERT — FM auf IPsec, ROOT CAUSE gefunden (Ansatz machbar)
> Phase-A-Hub auf ap1 steht (s.u.). **Phase-B FM gescheitert → revertiert; Ursache jetzt klar:**
> Echt-Host-Test (Ping realer `10.101.0.10`) → Antwort aus `10.255.255.2` ⇒ **FB masqueradet den Tunnel.**
> **Grund:** `.conf` hatte eine **Transfernetz-Adresse** (`10.255.255.2/32`) → FRITZ!OS = Einzelgerät-Modus = NAT.
> **AVM nutzt Proxy-ARP statt Transfernetz** → FB-WG-Interface-`Address` muss die **FB-LAN-IP** sein
> (FM `10.101.0.254/24`, DW `192.168.178.1/24`), Transfernetz streichen, AllowedIPs `10.40.0.0/16`.
> Configs `routeros/.secrets/wg-{fm,dw}.conf` korrigiert. FM auf **IPsec** (Sicherheitsnetz), ap1-Hub inert.
> **Wiederaufnahme:** `routeros/fritzbox-wg-lanlan-klickanleitung.md` (FB-LAN-LAN mit LAN-IP, Verify gegen `10.101.0.10`).
## Zielbild
- **ap1 (hAP ax², 7.23.1) = WireGuard-Hub** (nativ). FM & DW = FritzBox-Spokes (hub-&-spoke, keine Zusatz-HW).

View File

@@ -1,98 +1,64 @@
# FritzBox WireGuard als LAN-LAN-Kopplung (FM-Spoke → ap1-Hub) — Klick-Anleitung
# FritzBox WireGuard als LAN-LAN-Kopplung (FM/DW-Spoke → ap1-Hub) — Klick-Anleitung
> **Methode:** Claude erklärt Absicht + Klickpfad, **du klickst** an der FritzBox. FB = **FM-Standort**
> (`10.101.0.0/24`, GW `10.101.0.254`), aktuell wieder produktiv über **IPsec**. Hub = ap1 (BF).
> ⚠️ **FRITZ!OS-Labels sind versionsabhängig** — wo ich unsicher bin, steht die **Absicht** dabei; nimm das
> passende Menü, nicht das wörtliche Label. Bezieht sich auf FRITZ!OS 7.5x/8.x (WireGuard).
> **Methode:** Claude erklärt Absicht + Klickpfad, **du klickst** an der FritzBox. Beispiel FM-Standort
> (`10.101.0.0/24`, GW `10.101.0.254`), aktuell produktiv über **IPsec**. Hub = ap1 (BF).
> ⚠️ FRITZ!OS-Labels sind versionsabhängig — wo unsicher, zählt die **Absicht**.
## Was wir wollen (in einem Satz)
Die FM-FritzBox so per **WireGuard** an den ap1-Hub koppeln, dass **echte LAN-Hosts** (`10.101.0.x`) und
das **BF-LAN** (`10.40.0.0/16`) sich gegenseitig mit ihren **realen IPs** erreichen — **kein NAT/Masquerade**,
echtes Site-to-Site-Routing. Das war beim letzten Versuch vermutlich genau die Lücke („NetBIOS ging nicht").
## 🎯 ROOT CAUSE (bestätigt 2026-06-16) + der Fix
**Messung:** Ping auf realen FM-Host `10.101.0.10` über WG → Antwort kam aus **`10.255.255.2`** (Tunnel-IP) → **die FB
masqueradet den Tunnel.** Ursache: unsere `.conf` hatte als Interface-`Address` eine **Transfernetz-IP**
(`10.255.255.2/32`) → FRITZ!OS behandelt das als **Einzelgerät** und NAT't.
## ⚠️ Bevor du klickst — Sicherheit (FM ist produktiv!)
- **IPsec bleibt an** — das ist das Sicherheitsnetz. **Erst** abschalten, wenn der Echt-Host-Test (Teil 4) grün ist.
- WG läuft **parallel** zu IPsec (anderer Mechanismus, kein Konflikt). Wir testen WG, ohne IPsec zu opfern.
- ap1-Seite ist fertig und verifiziert (Hub `wg-hub` UDP 51821, Peer `peer1`, Route, Firewall) — **hier nichts ändern**
außer der einen Route in Teil 3.
**AVM-Modell:** FRITZ!OS nutzt für WG-LAN-LAN **kein Transfernetz, sondern Proxy-ARP**. Die WG-Interface-Adresse der
FB **muss ihre eigene LAN-IP** sein → dann routet die FB ihr LAN **ohne NAT**, echte Host-IPs.
## Eckdaten (zum Eintragen)
| Feld | Wert |
|---|---|
| Hub-Endpoint | `xvbeo64jqlqd9gfo.myfritz.net:51821` |
| Hub-Public-Key | `P/bztIk13cAmLHbN6oHGGnWAKLZsqR5TXAbFP+NGGBk=` |
| FM-Tunnel-IP (diese FB) | `10.255.255.2/32` |
| Remote-Netz (BF, „erreichbare Netze") | `10.40.0.0/16` (+ Tunnelnetz `10.255.255.0/24`) |
| MTU / Keepalive | `1412` / `25` |
| FM-Spoke-`.conf` (vorbereitet) | `routeros/.secrets/wg-fm.conf` |
> **DER FIX (eine Zeile):** FB-WG-Interface-`Address` = **`10.101.0.254/24`** (FM-LAN-IP), **nicht** `10.255.255.2/32`.
> Transfernetz `10.255.255.0/24` **komplett streichen**.
## Eckdaten (FM; DW analog)
| Feld | Wert FM | Wert DW |
|---|---|---|
| **WG-Interface-Address (FB)** | **`10.101.0.254/24`** (LAN-IP!) | **`192.168.178.1/24`** (LAN-IP!) |
| Erreichbare Netze / AllowedIPs (→Hub) | `10.40.0.0/16` | `10.40.0.0/16` |
| Hub-Endpoint | `xvbeo64jqlqd9gfo.myfritz.net:51821` | dito (DW: CGNAT → wählt ausgehend) |
| Hub-Public-Key | `P/bztIk13cAmLHbN6oHGGnWAKLZsqR5TXAbFP+NGGBk=` | dito |
| MTU / Keepalive | `1412` / `25` | `1412` / `25` |
| Vorbereitete `.conf` | `routeros/.secrets/wg-fm.conf` | `routeros/.secrets/wg-dw.conf` |
## ⚠️ Sicherheit (FM ist produktiv!)
- **IPsec bleibt an** = Sicherheitsnetz. Erst abschalten, wenn der Echt-Host-Test grün ist.
- WG läuft parallel zu IPsec (kein Konflikt). ap1-Seite ist fertig — dort nichts ändern.
---
## Teil 0 — Erst messen, ob überhaupt was kaputt ist (WICHTIG)
Beim letzten Versuch haben wir nur die FB-**eigene** IP `10.101.0.254` gepingt — die antwortet aus der Tunnel-IP
`10.255.255.2`, was das OS verwirft. Das **beweist keinen** Fehler. **Echt-Host-Test zuerst:**
## Teil 1 — Bestehende (falsche) FM-WG-Verbindung entfernen
`Internet → Freigaben → Reiter „VPN (WireGuard)"` → die FM-Verbindung **löschen** (sie hat die falsche
Transfernetz-Adresse → NAT).
1. WG an der FM-FB wieder **aktivieren** (die in Teil 1 inspizierte/erstellte Verbindung), IPsec **an lassen**.
2. Von einem **BF-VLAN10/20-Host** (Gateway = ap1) einen **realen FM-LAN-Host** ansprechen — **nicht** die `.254`:
- z.B. `ping 10.101.0.10` oder im Browser/Explorer `\\10.101.0.10` (SMB per **IP**).
3. Sag mir den Host — ich schaue parallel auf ap1 mit `torch wg-hub` + sourced
`/ping 10.101.0.10 src-address=10.40.20.1` und prüfe die **Quell-IP der Rückpakete**:
- **Reale `10.101.0.X`** → es war nie kaputt, nur das `.254`-Artefakt → direkt zu Teil 4 (Cutover).
- **`10.255.255.2`** → echtes NAT/Forward-Problem → Teil 1–3 abarbeiten.
## Teil 2 — Neu als LAN-LAN-Kopplung anlegen
`„Verbindung hinzufügen"` → Typ **„Netzwerke koppeln" / „LAN-LAN"** wählen (**nicht** „Einzelnes Gerät").
- Falls FRITZ!OS dort nur den **FB↔FB**-Assistenten anbietet: stattdessen **benutzerdefinierte/importierte Config**
und **`routeros/.secrets/wg-fm.conf`** importieren — die hat jetzt die korrekte `Address = 10.101.0.254/24`.
- **Kernpunkt:** Die WG-Interface-Adresse dieser Verbindung muss **`10.101.0.254/24`** sein (die FB-LAN-IP),
erreichbares Netz Richtung Hub = **`10.40.0.0/16`**. **„Gesamten Internetverkehr über VPN" = AUS.**
- ⚠️ Falls der Import eine LAN-IP als Interface-Adresse **ablehnt** (Überlapp mit dem LAN): dann den AVM-Wizard
„Netzwerke koppeln" nutzen und dort die **lokale FB-IP** als Verbindungs-IP eintragen (das ist genau der
Proxy-ARP-Weg). Sag mir, was die UI anbietet — dann lotse ich Feld für Feld.
- **Public-Key** der Verbindung notieren → mir geben, falls FRITZ!OS einen **eigenen** Key erzeugt
(dann gleiche ich `peer1` auf ap1 ab; aktuell steht dort der Key aus unserer `.conf`).
---
## Teil 1 — Bestehende WG-Verbindung inspizieren
**Klickpfad:** `Internet → Freigaben → Reiter „VPN (WireGuard)"` → die FM-Verbindung auswählen/bearbeiten.
Prüfe drei Dinge:
1. **Modus = Netzwerk-Kopplung, nicht Einzelgerät.**
Absicht: Die Verbindung darf **nicht** „dieses eine Gerät einwählen + gesamten Internetverkehr" sein.
→ Falls es eine Option **„gesamten Internetverkehr über die VPN-Verbindung senden"** gibt: **AUS**.
2. **Erreichbare/erlaubte Netze (AllowedIPs).**
Es muss **`10.40.0.0/16`** (BF) + **`10.255.255.0/24`** (Tunnel) enthalten — **nicht** nur die Hub-IP oder `0.0.0.0/0`.
Wenn die FB beim Import die AllowedIPs gekürzt hat → das ist die Ursache.
3. **Public-Key der FM-FB notieren** (steht in der Verbindungs-/Schlüsselansicht).
→ Den brauche ich, **falls** die FB einen **eigenen** Key erzeugt hat (statt dem aus unserer `.conf`).
Schick ihn mir; ich gleiche `peer1` auf ap1 ab.
> Wenn alles oben schon stimmt und Teil 0 trotzdem `10.255.255.2` zeigte → die FB routet ihr LAN nicht in den
> Tunnel. Dann Verbindung in **Teil 2** sauber neu anlegen.
---
## Teil 2 — WG-Verbindung als LAN-LAN neu/korrekt anlegen
Nur nötig, wenn Teil 1 einen falschen Modus/AllowedIPs zeigt.
1. Alte FM-WG-Verbindung **löschen**.
2. `Internet → Freigaben → VPN (WireGuard) → „Verbindung hinzufügen"`.
3. Verbindungstyp wählen, der **zwei Netze koppelt** (LAN-LAN / „Netzwerk koppeln"), **nicht** „Einzelnes Gerät".
- Falls FRITZ!OS nur den FB↔FB-Assistenten anbietet: stattdessen **eigene/importierte Konfiguration** nutzen
und die Datei **`routeros/.secrets/wg-fm.conf`** importieren (enthält die korrekten AllowedIPs `10.40.0.0/16`).
4. Falls manuell statt Import — Werte aus „Eckdaten" oben eintragen:
Endpoint, Hub-Public-Key, Tunnel-IP `10.255.255.2`, erreichbare Netze `10.40.0.0/16` + `10.255.255.0/24`,
Keepalive 25, MTU 1412.
5. **„Gesamten Internetverkehr über VPN" AUS.** Speichern.
6. **Public-Key** der neuen Verbindung notieren → mir geben (für `peer1`-Abgleich auf ap1).
---
## Teil 3 — ap1-Begleitänderung (mache ich)
Damit ap1 auch die Tunnel-IPs selbst adressieren kann (Diagnose + saubere Rückwege):
- Route **`10.255.255.0/24 → wg-hub`** auf ap1 ergänzen.
- Falls FB neuen Key hat: `peer1`-Public-Key aktualisieren.
> Sag Bescheid — das sind zwei nicht-disruptive Befehle, die ich per MikroMCP setze.
---
## Teil 3 — ap1-Abgleich (mache ich, falls nötig)
- Falls FB neuen Key erzeugt: `peer1`-Public-Key aktualisieren.
- peer1 allowed-address bleibt `10.101.0.0/24` (Transfernetz-/32 ist obsolet, schadet aber nicht).
> Sag Bescheid — nicht-disruptiv per MikroMCP.
## Teil 4 — Verifizieren, dann erst IPsec abschalten
1. **Echt-Host-Test** wie Teil 0 → muss **reale `10.101.0.X`** zeigen, beide Richtungen:
- BF-Host → FM-Host (Ping + SMB/445 per IP).
- FM-Host → BF-Host (z.B. NAS) per IP.
2. **Namensauflösung** per IP/DNS testen, **nicht** über Netzwerkumgebung/Broadcast (NetBIOS routet nicht).
3. Erst wenn **beide Richtungen grün** sind: **IPsec für FM auf der BF-FritzBox deaktivieren** → erneut testen.
4. Bleibt es grün → FM ist migriert. **DW** läuft danach nach demselben Muster (CGNAT → wählt ausgehend, Keepalive).
1. WG aktiv (IPsec an lassen). Ich pinge von ap1 sourced `10.40.20.1` → **`10.101.0.10`** + `torch wg-hub`:
- **Quelle = `10.101.0.10`** → ✅ kein NAT mehr, echtes LAN-LAN → weiter.
- Quelle = `10.255.255.2` → noch NAT → Adresse/Modus in Teil 2 nochmal prüfen.
2. Gegenrichtung: FM-Host → BF-Host (NAS) per IP; **SMB/445 per IP** (NetBIOS-Lehre: per IP/DNS, kein Broadcast).
3. Beide Richtungen grün → **IPsec für FM auf der BF-FB deaktivieren** → erneut testen.
4. Stabil → FM migriert. **DW** danach gleich (Address `192.168.178.1/24`, CGNAT → ausgehend/Keepalive).
## Rollback
- Jederzeit: WG an der FM-FB deaktivieren + **IPsec wieder aktivieren** → Ausgangszustand.
- ap1-Seite unverändert lassen (inert ohne aktive Spoke-Gegenstelle).
- WG an der FM-FB deaktivieren + IPsec aktivieren → Ausgangszustand. ap1-Seite unverändert lassen (inert).