TP10 đ WG-Hub auf ap1 gebaut (Phase A); Cutover-Runbook FM/DW
ap1 = WireGuard-Hub (wg-hub, UDP 51821, MTU 1412, keine IF-IP). Port 51821 statt 51820, damit der FB-eigene WG-Server (laufender DW-Tunnel) parallel intakt bleibt. 2 Peers vorkonfiguriert: FM 10.101.0.0/24 (war IPsec), DW/Geli 192.168.178.0/24 CGNAT (war WG). Routen + Firewall (input/forward) gesetzt; NAT unverĂ€ndert (Egress wg-hub != masquerade-Interface). docs/tp10-vpn-migration.md: As-built + Phase-B-Cutover-Runbook (FB-Import, L3-Verify, NetBIOS-Lehre, Parallelphase, DDNS-Ăbergabe fĂŒr Bridge-Mode). Spoke-.conf mit Private-Keys liegen gitignored in routeros/.secrets/. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -117,7 +117,14 @@ Kontrolle: MikroMCP (MikroTik) live · ALLNET = Klickanleitungen · Omada â Co
|
||||
**Empfehlung:** VRRP nur fĂŒr **MAIN/INFRA**, sonst ap2 als **Kalt-Ersatz** + Backup. DHCP/DNS schon redundant (Split + 2 Resolver).
|
||||
- Abh.: TP4. (Research erledigt, s. TP-R + Config-Skizze im Report.)
|
||||
|
||||
### TP10 â Multi-Site VPN âž Research fertig (`docs/research/vpn-comparison.md`)
|
||||
### TP10 â Multi-Site VPN âž đĄ Phase A erledigt (Hub gebaut), Cutover offen (`docs/tp10-vpn-migration.md`)
|
||||
- **â
Phase A (2026-06-16):** ap1-WG-**Hub** `wg-hub` live (UDP **51821**, MTU 1412, keine IF-IP). 2 Peers
|
||||
vorkonfiguriert: **FM** `10.101.0.0/24` (war IPsec) = `peer1` · **DW/Geli** `192.168.178.0/24` CGNAT (war WG) = `peer2`.
|
||||
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 (Cutover, offen):** `.conf` je FB importieren â Handshake/L3-Verify (FM: SMB per IP wg. NetBIOS-Lehre)
|
||||
â erst dann alten AVM-Tunnel (IPsec/WG) abschalten. Parallelphase, reversibel. **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)**.
|
||||
|
||||
67
docs/tp10-vpn-migration.md
Normal file
67
docs/tp10-vpn-migration.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# TP10 â Multi-Site-VPN-Migration (2Ă AVM-S2S â 2Ă WireGuard, Hub auf ap1)
|
||||
|
||||
> Stand 2026-06-16 · Research: `docs/research/vpn-comparison.md` · Plan: `~/.claude/plans/pure-wibbling-graham.md`
|
||||
> gated: permanenter FB-Bridge-Mode (AP4.1) hÀngt an diesem TP.
|
||||
> **Reihenfolge fix: VPNs migrieren â Liwest-Anruf (Bridge) â FB wird Modem.**
|
||||
|
||||
## Zielbild
|
||||
- **ap1 (hAP axÂČ, 7.23.1) = WireGuard-Hub** (nativ). FM & DW = FritzBox-Spokes (hub-&-spoke, keine Zusatz-HW).
|
||||
- Ablösung der **2 produktiven AVM-LAN-LAN-Tunnel** auf der BF-FB â **2Ă WireGuard auf ap1**:
|
||||
- **FM** `10.101.0.0/24` (GW .254) â war **IPsec**.
|
||||
- **DW/Geli** `192.168.178.0/24` (GW .1, **CGNAT**, Antennengemeinschaft GeroldsgrĂŒn) â war **WireGuard**.
|
||||
|
||||
## â
As-built auf ap1 (Phase A erledigt, 2026-06-16)
|
||||
| Objekt | Wert |
|
||||
|---|---|
|
||||
| Interface `wg-hub` | Listen **UDP 51821**, MTU 1412, **keine IF-IP**, running |
|
||||
| Hub-Public-Key | `P/bztIk13cAmLHbN6oHGGnWAKLZsqR5TXAbFP+NGGBk=` |
|
||||
| Endpoint (fĂŒr Spokes) | **`xvbeo64jqlqd9gfo.myfritz.net:51821`** (MyFRITZ-FQDN) |
|
||||
| Peer FM (`peer1`) | pub `dzRY0lnnUygijChWe5wXZmXPeNcbdALpqBptA3fyiVE=`, allowed `10.255.255.2/32,10.101.0.0/24`, Endpoint leer |
|
||||
| Peer DW (`peer2`) | pub `FqYZLztQ/qME5VDie5QLGH++5299WJiE1dPpQnPbzUw=`, allowed `10.255.255.3/32,192.168.178.0/24`, Endpoint leer |
|
||||
| Route | `10.101.0.0/24` â wg-hub · `192.168.178.0/24` â wg-hub (beide active) |
|
||||
| Firewall | input accept udp/51821 · forward accept in/out wg-hub (TP5-Vorarbeit) |
|
||||
| NAT | **keine Ănderung nötig** â masquerade ist out-interface bridge/ether1; Tunnel-Egress = wg-hub â nie NATed |
|
||||
|
||||
**Port 51821 (statt 51820):** Die BF-FB hĂ€lt ihren eigenen WG-Server auf 51820 fĂŒr den **noch laufenden DW-Tunnel**.
|
||||
51821 fĂŒr den Hub vermeidet die Kollision wĂ€hrend der Parallelphase.
|
||||
|
||||
**Spoke-Configs (Private-Keys, NICHT im Git):** `routeros/.secrets/wg-fm.conf`, `routeros/.secrets/wg-dw.conf`.
|
||||
|
||||
## â
Vorbedingung (User erledigt)
|
||||
- **FB-Portfreigabe** UDP **51821** â `10.40.41.1` (ap1) gesetzt.
|
||||
|
||||
## Phase B â Cutover (pro Spoke, Parallelphase) â OFFEN
|
||||
> Pro Standort: neuen WG-Tunnel hochziehen, **verifizieren**, erst dann den alten AVM-Tunnel abschalten.
|
||||
|
||||
### B1 â FM zuerst (alter IPsec-Tunnel bleibt parallel an)
|
||||
1. `routeros/.secrets/wg-fm.conf` in die **FM-FritzBox** importieren:
|
||||
`Internet â Freigaben â VPN (WireGuard) â Verbindung hinzufĂŒgen â eigene Konfiguration importieren`.
|
||||
- â ïž Falls FRITZ!OS keinen Import mit vorgegebenem Key erlaubt: FB-WG-Verbindung manuell anlegen, FB-**Public-Key**
|
||||
ablesen und melden â wird in `peer1` auf ap1 eingetragen (`manage_wireguard_peer` set public-key).
|
||||
2. **Handshake prĂŒfen:** `list_wireguard_peers` â `peer1` last-handshake aktuell, rx/tx > 0.
|
||||
3. **L3-Verify (NetBIOS-Lehre, s.u.):** Ping ap1 â ein Host in `10.101.0.0/24`; Gegenrichtung FM â BF-Host (NAS);
|
||||
**SMB per IP (TCP 445)** testen, **nicht** Netzwerkumgebung/Broadcast.
|
||||
4. GrĂŒn â **IPsec-Tunnel** fĂŒr FM auf der BF-FB deaktivieren â erneut prĂŒfen.
|
||||
|
||||
### B2 â DW/Geli danach (alter FB-WG-Tunnel auf 51820 bleibt parallel an)
|
||||
5. `routeros/.secrets/wg-dw.conf` in die **DW-FritzBox** importieren (CGNAT â wĂ€hlt ausgehend, Keepalive 25).
|
||||
6. Handshake + L3-Verify (Ping/SMB per IP in `192.168.178.0/24` â BF).
|
||||
7. GrĂŒn â alten **DW-WG-Server/Tunnel** auf der BF-FB abbauen.
|
||||
|
||||
## NetBIOS / Namensauflösung (FM â bekannter Stolperstein)
|
||||
FrĂŒherer FM-WG-Versuch scheiterte an âNetBIOS nicht geroutet". NetBIOS-Namensauflösung lĂ€uft ĂŒber **Broadcasts
|
||||
(UDP 137/138)**, die ĂŒber einen *gerouteten* Tunnel grundsĂ€tzlich nicht traversieren â kein Routing-Bug.
|
||||
â **L3 zuerst per IP beweisen** (Ping + SMB/445); Namensauflösung per **IP oder DNS** lösen (statische EintrĂ€ge),
|
||||
nicht ĂŒber Broadcast-Browsing. Unser Design fĂŒhrt beide Richtungen in AllowedIPs/Routes â unicast muss laufen.
|
||||
|
||||
## Phase C â Abschluss (nach beidseitig grĂŒn, â„1 Tag stabil)
|
||||
8. TP5-Firewall auf ap1 finalisieren (WG-Regeln behalten).
|
||||
9. **DDNS-Ăbergabe:** MyFRITZ lĂ€uft ĂŒber die FB, entfĂ€llt evtl. im Bridge-Mode â ap1 braucht eigenes DDNS
|
||||
(`/ip cloud` mynetname / DynDNS); Spoke-Endpoints dann auf ap1-FQDN umstellen.
|
||||
â ïž PrĂŒfen, ob `/ip cloud` trotz device-mode=home lĂ€uft (scheduler/fetch geblockt).
|
||||
10. **Liwest-Anruf** fĂŒr FB-Bridge-Mode â FB wird Modem, ether1 = WAN, Portfreigabe entfĂ€llt.
|
||||
11. Entblockt: NAS/Controller-IP-Migration (IP-Plan Phase 3) + Wegfall Double-NAT.
|
||||
|
||||
## RĂŒckbau (falls nötig)
|
||||
- ap1-Seite vollstÀndig reversibel: Peers/Routen/Firewall via `manage_*` `action=remove`, `wg-hub` löschen.
|
||||
- Alte AVM-Tunnel erst nach Verifikation abschalten â jederzeit reaktivierbar.
|
||||
Reference in New Issue
Block a user