- teilprojekte.md: neuer TP14 (Docker-Cutover NAS+pve) + Querverweise TP11 (Track-B/C) + Reihenfolge #3. - NAS ep14 â auf vlan20-Macvlan; CF-Ingress v116; Root-Cause Config-Only-Macvlan-Falle dokumentiert. - Handoff docs/nas-vlan20/handoff/README.md: paste-fertige Anschlussstatements Session AâE (sequenzielle Sessions, keine parallelen Branches â geteilte Live-Infra). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
312 lines
33 KiB
Markdown
312 lines
33 KiB
Markdown
# BF-Netzwerk â Teilprojekte (kanonische Steuerung, Stand 2026-06-10)
|
||
|
||
> **Zweck:** Das groĂe Netz-Projekt in **einzeln durchziehbare Teilprojekte (TP)** zerlegt â jedes mit klarem Scope,
|
||
> aktuellen Entscheidungen, Abhängigkeiten und Status. Jedes TP ist so geschnitten, dass es eine frische Session
|
||
> **mit sauberem Kontext** straight abarbeiten kann. Architektur/Historie: `~/.claude/plans/ich-will-das-delegieren-atomic-sunrise.md`.
|
||
|
||
## Kanonisches VLAN-Modell (gĂźltig â Ăźberschreibt ältere Tabellen)
|
||
| VLAN | Name | Subnetz (Ziel) | Zweck |
|
||
|---|---|---|---|
|
||
| 10 | MAIN | 10.40.10.0/24 | Trusted (Handy/Laptop/Apple Watch) |
|
||
| 20 | INFRA | 10.40.20.0/24 | NAS/VMs/Docker/HA |
|
||
| 30 | IOT | 10.40.30.0/24 | Smart-Home (HA-managed), Waage, Fitness-Tracker |
|
||
| **40** | **MEDIA** | 10.40.40.0/24 | **Sonos, AppleTV, TV, VuPlus, Cast-Ziele** (getauscht ggĂź. frĂźher) |
|
||
| **50** | **UNTRUSTED** | 10.40.50.0/24 | **Spielekonsole, eBook-Reader, Low-Trust-Internet** |
|
||
| 90 | GUEST | 10.40.90.0/24 | nur Internet |
|
||
| 99 | MGMT | 10.40.99.0/24 | Switch/AP/Hypervisor-Mgmt |
|
||
| 100 | WAN | (Arris-Transfer) | zum Arris-Kabelmodem (Liwest, Bridge-Mode, Public-IP an ap1) |
|
||
IP-BlĂścke: `.1â10` Router/APs (ap1=.1, ap2=.2) ¡ `.11â20` Switches (ALLNET=.11, Omada=.12). GW je VLAN = `.1`.
|
||
|
||
## Ist-Stand (Kurz)
|
||
ALLNET-Core `.11` (FW2.2.1, VLANs 10/20/30/40/50/90/99/100; GE1/GE2/GE8 Trunk; **TP1 â
2026-06-15**). Omada-Switch `.12` (adopted, **TP2 â
2026-06-15**; Trunk-ALL auf P1+P2, Access-Profile auf P3-P8; Profile noch PVID=1 bis Omada-PVID-Fix).
|
||
Omada-Controller **`.175`** (DS923/macvlan, mbentley 6.2, đ˘ live). omada-mcp **`.176`** (pve-LXC, StreamableHTTP, đ˘ live, 84 read-Tools; Controller-API v2 intern via christoph@emsenhuber.com).
|
||
2Ă hAP ax² (7.23.1): ap1 `.1` (ALLNET P1) â **TP4 â
2026-07-01: Router + WAN-Edge** (VLAN-Subinterfaces, DHCP, DNS, NAT, Public-Edge). ap2 `.2` (Omada P2 â Trunk).
|
||
**Edge-Cutover â
2026-07-01:** FB6660 physisch entfernt (Liwest-Kabelmodemtausch, kein ZurĂźck), Arris-Kabelmodem im Bridge-Mode; WAN = `sw1 gi16 Access VLAN100 â gi15 Trunk â ap1 ether2 â vlan100 auf bridge` (**NICHT** ether1); ap1 hält Public-IP direkt (Liwest, kein CGNAT), Double-NAT weg. Telefonie war auf der FB und wird nicht weitergefĂźhrt. Vorarbeit: TP10-Kern durch (2026-06-27, WG-Hub live) â Bridge-Gate vorher gelĂśst. Runbook: `routeros/wan-cutover-runbook.md`.
|
||
Kontrolle: MikroMCP (MikroTik) live ¡ ALLNET = Klickanleitungen ¡ Omada â Controller + omada-mcp đ˘.
|
||
**Nächster Schritt: Omada-PVID-Fix** (MAINâPVID10, INFRAâPVID20, untagNetworkIds bereinigen) + IP-Migration Geräte + TP5 Deny-by-default fertigziehen (Sonos-/HA-/mDNS-Holes und WAN-Input-Seal stehen bereits).
|
||
> đŻ **Ziel: sauberes System âfrom scratch", keine Leichen/Altlasten.** Migrations-Session-Endstand = **VLAN1 + altes cudy-WLAN komplett weg** (VLAN1 nur noch Mgmt, `defconf`-Client-DHCP zurĂźckgezogen, cudy-Uplinks aufs Ziel-Client-VLAN getaggt oder cudy abgebaut). **Unterpunkte/Aufräum-Liste bei Migration:** (a) die Interim-Härtung ap2 `wifi1/wifi2 frame-types=admit-only-vlan-tagged` (TP3.1, 2026-07-06) bleibt gĂźltig â verschwindet automatisch mit VLAN1; (b) `st-main rrm/wnm` = reines Roaming-Provisorium, prĂźfen ob nach Migration noch nĂśtig; (c) **cudy1 = verbleibender aktiver VLAN1-Leak** (Dual-DHCP-Race, Doku Memory `project_vlan1_dhcp_incident`). Bis dahin sind diese Griffe KrĂźcken, kein Zielzustand.
|
||
> â ď¸ **HW-Constraint hAP ax²:** 1 GB RAM, aber nur **128 MB Flash + KEIN USB** â **Container auf dem Router NICHT praktikabel**.
|
||
> Folge: **native RouterOS-Features bevorzugen** (z.B. Built-in-mDNS statt Container); Container (mDNS-Reflector, BIND9-DNS, Omada-Controller) laufen auf **NAS/pve**, nicht am hAP.
|
||
|
||
---
|
||
|
||
## Teilprojekte
|
||
|
||
### TP1 â ALLNET Core-Switch finalisieren ⸠â
FERTIG (2026-06-15)
|
||
- â
GE8 Trunk (native vlan1, tagged 10/20/30/40/50/90/99/100) â war bereits aktiv.
|
||
- â
VLAN 40 umbenannt: UNTRUSTED â **MEDIA** (`switch/cli/04-vlan50-media-untrusted.cli`).
|
||
- â
VLAN 50 angelegt + benannt: **UNTRUSTED**.
|
||
- â
GE1/GE2 (AP-Trunks) um VLAN 50 ergänzt; GE8 auto-includiert (Trunk).
|
||
- Ergebnis: Core trägt alle VLANs (10/20/30/40/50/90/99/100) an P1/P2/P8.
|
||
|
||
### TP2 â Omada Access-Switch + Controller ⸠â
FERTIG (2026-06-15)
|
||
- â
Omada Controller 6.2.10.17 auf DS923 (macvlan `.175`): `omada/docker-compose.yml`, Stack via Portainer endpointId=14. **Wizard abgeschlossen** (configured=true), Creds in `mcp/omada/.env`.
|
||
- â
pve-mcp (samik081) in Claude Code eingetragen (`~/.claude/settings.json`, SSE `.173:3000`).
|
||
- â
omada-mcp **live** auf **pve-LXC (`.126`, endpointId=2), ipvlan-IP `.176`**, Stack Id=200, URL in `~/.claude/settings.json`.
|
||
- **Transport:** StreamableHTTP `http://10.40.41.176:3000/mcp` (Health `/health` â 200). Settings-Bug (doppelter Eintrag) behoben 2026-06-15.
|
||
- **Auth:** Omada **Open API Client-Credentials**. Creds in `mcp/omada/.env`. Token-Format: `Authorization: AccessToken=<token>` (nicht Bearer). OMADA_TOOL_CATEGORIES=all (alle 84 read-Tools aktiv; write fĂźr VLANs/Ports nicht im MCP implementiert â direkte Open API oder Controller-UI).
|
||
- omadac_id=`adbef8faâŚ`, site_id=`6a2fe68eâŚ`.
|
||
- â
**VLANs im Controller:** 1/10/20/30/40/50/90/99/100 â alle angelegt, Switch adopted (switchConsistent=true).
|
||
- â
**Port-Plan (ES208G, alle 8 Ports konfiguriert):**
|
||
| Port | Name | Profil | Gerät | Status |
|
||
|------|------|--------|-------|--------|
|
||
| 1 | uplink | Trunk-ALL | â ALLNET GE8 | â
korrekt |
|
||
| 2 | ap2 | Trunk-ALL | hAP ax² #2 | â
korrekt |
|
||
| 3 | Port3 | Access-MAIN | â (frei) | â ď¸ PVID=1 |
|
||
| 4 | dock/monitor | **Access-MAIN** | Docking-Station | â ď¸ PVID=1 ¡ **Lifeline-Port, nicht anfassen** |
|
||
| 5 | drucker | Access-MAIN | Drucker | â ď¸ PVID=1 |
|
||
| 6 | Port6 | Access-MAIN | â (frei) | â ď¸ PVID=1 |
|
||
| 7 | macmini | Access-INFRA | Mac mini | â ď¸ PVID=1 ¡ **fixe IP 10.40.41.x, nicht anfassen** |
|
||
| 8 | ds923+ | Access-MAIN | NAS (2. Port) | â ď¸ PVID=1 ¡ **nicht anfassen** |
|
||
- â ď¸ **Profile-PVID-Constraint (bis TP4 offen):** NAS, Mac mini und andere Geräte haben fixe IPs im
|
||
Bereich `10.40.41.x` (VLAN-1-Subnetz der FritzBox). Solange diese nicht auf VLAN-10/20-Subnetze migriert
|
||
sind, muss `nativeNetworkId=Default(VLAN 1)` in allen Access-Profilen bleiben â sonst kein DHCP, kein
|
||
Internet fßr diese Geräte. Fix nach TP4.
|
||
- â ď¸ **Bekannter Fehler `untagNetworkIds` (Analyse 2026-06-15 via Controller-API v2):**
|
||
Access-MAIN hat `untagNetworkIds=[VLAN1, VLAN20, VLAN10]` (3 untagged!) statt `[VLAN10]`.
|
||
Access-INFRA hat `untagNetworkIds=[VLAN20, VLAN1]` statt `[VLAN20]`. Geräte erhalten Frames
|
||
aus mehreren VLANs ungetaggt â Inter-VLAN-Tests verfälscht. Fix erst sinnvoll nach TP4 zusammen
|
||
mit PVID-Korrektur.
|
||
- **Sichere Testports (kein kritisches Gerät):** P3, P5, P6.
|
||
- â
Portainer-AblĂśsung: **Komodo** empfohlen (einzige Option mit nativem MCP `mcp-server-komodo`). Eigener Task.
|
||
- Abh. erfĂźllt: TP1 (GE8 Trunk â
).
|
||
- **â TP4 wird vorgezogen:** Alle VLANs im Controller definiert (status=false = kein Management-IP, normal).
|
||
Traffic läuft noch auf VLAN 1 bis TP4 die L3-Interfaces + DHCP-Server je VLAN aktiviert.
|
||
|
||
### TP3 â WLAN / CAPsMAN ⸠â
KERN FERTIG (2026-06-18) â `routeros/tp3-capsman.rsc`
|
||
- â
**5 sichtbare SSIDs live, beide APs, beide Bänder, je SSIDâVLAN** (wifi datapath vlan-id):
|
||
`dirtyvader-main`(10, WPA3-only, FT), `-iot`(30, **nur 2,4 GHz**, WPA2+3), `-media`(40, WPA2+3, **FT=no** wg. Sonos),
|
||
`-untrusted`(50, WPA2+3), `-guest`(90, WPA2+3). Alt-SSIDs `install*`/`BF-Main`/`wv*` entfernt. Temp-PSK (User setzt echte).
|
||
- â
**CAPsMAN-Architektur:** ap1=Manager+AP (lokale Radios), ap2=CAP (dynamisch via Provisioning, `remote-cap=Ok`).
|
||
**Kernlektion:** Der Manager kann seine **eigenen** Radios NICHT Ăźber CAPsMAN provisionieren â ap1 lokal zuweisen
|
||
(Master via `set` + statische Slave-VAPs), ap2 zieht Master+Slaves dynamisch. Ein CAP hält **keine** Eigen-Config.
|
||
- â
**Kanal-Plan (non-DFS, ßberlappungsfrei):** ap1 ch36/5180 + ch1/2412 ¡ ap2 ch149/5745 + ch11/2462.
|
||
(Auto-Channel hatte beide APs auf 5500-DFS/2437 gelegt = Co-Channel â fix gepinnt. ap2-Kanaländerung braucht
|
||
`remote-cap provision`-Push.) `bound`-Problem damit obsolet/sauber gelĂśst.
|
||
- â
**Sonos-Migration abgeschlossen (2026-07-02):** alle 10 Sonos auf `dirtyvader-media`/VLAN 40 mit MAC-fest
|
||
reservierten DHCP-Leases in `dhcp-v40`. Household geschlossen, iOS-App findet alle Geräte (mDNS via Repeater).
|
||
Inventar/IPs = SSoT `docs/sonos-inventar.md` (IPs haben sich verschoben â Arc jetzt `.199`, Arbeitszimmer-Paar auf `.191/.192`).
|
||
- **Vertagt:** hidden `dirtyvader-infra`(20)+`-mgmt`(99) (Mgmt verkabelt). **TP8:** eine 802.1X-SSID
|
||
(`dirtyvader-secure`) mit FreeRADIUS-Dynamic-VLAN â dann PSK-`main`/`infra` einstampfen (Konsolidierung).
|
||
- **SSID-Strategie-Entscheid (BegrĂźndung):** unterschiedl. WPA-Typ/Band erzwingen separate SSIDs; âalles in 1 SSID
|
||
per Auth" nur via 802.1X (Geräte ohne EAP wie Sonos/TV/IoT brauchen ohnehin PSK) â Hybrid in TP8.
|
||
- **Mesh = NEIN** (beide APs wired-trunk â Loop-Risiko). DoH-Upstream = Cloudflare Gateway (seit TP4 aktiv).
|
||
- Abh. erfĂźllt: TP4 â
(L3/VLAN-Interfaces). Folge: TP8 (802.1X), Sonos-Migration.
|
||
|
||
### TP3.1 â ap2 VLAN-Trunk-Fix ⸠â
Config live (2026-07-01) â `routeros/tp3.1-ap2-vlan.rsc`
|
||
- **Root Cause:** ap2 (CAP, local forwarding) hatte `bridge vlan-filtering=no` â `datapath.vlan-id` wurde nie
|
||
auf die Leitung geschrieben â **ALLE** WLAN-Clients auf ap2 (main/media/iot/âŚ) egressten **ungetaggt in VLAN1**
|
||
(defconf/`10.40.41.x`) statt ins Ziel-VLAN. Symptom: iPhone (VLAN10) im OG âverbunden, aber sporadisch kein
|
||
WLAN-Symbol" â beim Roaming ap1âap2 sprang es VLAN10âVLAN1 (Subnetz-Flip â Abbruch). Sonos-Terrasse landete
|
||
auf ap2 fälschlich auf `10.40.41.183`. TP3 âein CAP hält keine Config" gilt nur fĂźr Manager-Forwarding â hier
|
||
local forwarding, daher **braucht ap2 doch VLAN-Config**.
|
||
- â
**Fix (wie ap1):** ap2-Bridge `vlan-filtering=yes`; VLAN1 untagged=bridge,ether2 (Mgmt), VLANs 10/30/40/50/90
|
||
tagged auf ether2. Da nur die Master-Radios wifi1(5G)/wifi2(2.4G) Bridge-Ports sind (Slave-VAPs forwarden Ăźber
|
||
den Master), zusätzlich **wifi1/wifi2 als tagged-Member** je Client-VLAN (wifi1: 10/40/50/90, wifi2: 10/30/40/50/90).
|
||
CAPsMAN legt diese auf dem CAP **nicht** automatisch an â manuell gesetzt. Danach `remote-cap provision`.
|
||
- **Lockout-Risiko gehandhabt:** ap2-Mgmt (10.40.41.2) untagged VLAN1 blieb erhalten; kein Scheduler (device-mode=home)
|
||
â Recovery = Power-Cycle OG. AusgefĂźhrt im leeren-registration-table-Fenster.
|
||
- âł **Offen â funktionaler OG-Test durch User:** Handy auf `dirtyvader-main` im OG â Lease muss `dhcp-v10`/`10.40.10.x`
|
||
sein (nicht `defconf`/`10.40.41.x`). Falls kein DHCP: Omada-Port-2-Trunk (tagged 10/30/40/50/90) prĂźfen.
|
||
- Abh.: TP3 â
, TP4 â
(Bridge-VLAN-Muster gespiegelt). Config ap2-lokal (nicht CAPsMAN-verwaltet).
|
||
- đ **Interim-Härtung 2026-07-06 (Migrations-Provisorium, fliegt mit VLAN1 raus):** Symptom âkein DHCP auf
|
||
`dirtyvader-main`, Altnetz ebenso, nichts geändert". Diagnose via MikroMCP (ap1+ap2): **Dual-DHCP-Race** â dieselben
|
||
Main-MACs (`56:71:6C:22:E6:A9`, `F2:62:4C:E1:AF:09`, `C0:C7:DB:DE:71:BE`) hielten gleichzeitig eine korrekte
|
||
VLAN10-Lease (`dhcp-v10`/`10.40.10.x`) **und** eine VLAN1-Lease (`defconf`/`10.40.41.18x`); `defconf` und `dhcp-v10`
|
||
boten parallel â `offering ... without success` + Minutentakt-Flapping. `bridge`-ARP auf ap1 = 333 Einträge (flache
|
||
VLAN1 lebt voll weiter; IoT/Shelly untagged auf `10.40.41.2xx`). **Griff:** auf ap2 die Master-Radio-Bridge-Ports
|
||
`wifi1`/`wifi2` von `frame-types=admit-all` auf **`admit-only-vlan-tagged`** â untagged Main/Slave-Frames werden
|
||
verworfen statt in VLAN1 gedumpt (im Zielbild ohnehin korrekt, daher kein RĂźckbau nĂśtig, verschwindet mit VLAN1).
|
||
`ether2` bleibt `admit-all` (VLAN1-Mgmt/Trunk, kein Lockout). **Rollback:** `frame-types=admit-all` auf beiden Ports.
|
||
â ď¸ **Rest-Leak bleibt: cudy1 (altes WLAN)** bridged Clients weiter untagged in VLAN1 â nur per Switch-Port-Tag bzw.
|
||
Alt-WLAN-Abbau (Migration) zu schlieĂen, NICHT auf der MikroTik-Seite. Zusätzlich `st-main rrm=yes wnm=yes` (802.11k/v,
|
||
behandelt nur das Roaming-Symptom). SSoT-Detail: Memory `project_vlan1_dhcp_incident`.
|
||
|
||
### TP3.2 â WLAN Coverage / P750W-Discovery ⸠Ⳡteil-erledigt (2026-07-02) â `docs/wifi-p750w-coverage-and-map.md`
|
||
- â
**Brother P750W (VLAN30) gelĂśst:** DHCP-`client-id`-Fix (matcht Ăźber MAC â feste `10.40.30.5`); **an ap1 gepinnt**
|
||
(geordnete wifi-access-list `accept w2-iot` â blanket `reject`, Ăźberlebt ap2-Re-Provision) â dozende Legacy-Clients
|
||
nur am co-located-GW ap1 per ARP erreichbar, CAP ap2 nicht; mDNS `vlan30` in `mdns-repeat-ifaces`+5353 â in MAIN
|
||
auffindbar. Druck+Selbsttest OK. Web-UI `http://10.40.30.5/general/information.html`.
|
||
- â
**Nebenbei:** `multicast-enhance=enabled` (iot+media), Guest `ft=yes`, INFRA-SSID(20) angelegt (**nur ap2**),
|
||
Steering-Profil `st-main`/`neighbor-group=bf-main` auf beide Main-Configs.
|
||
- **Nomenklatur:** dynamische ap2-CAP-Slaves (`wifi13â22`) nicht praktikabel umbenennbar (`name-format` unzuverlässig)
|
||
â Map dokumentiert statt umbenannt. Backups `bf-ap{1,2}-pre-nomen-20260702.backup`/`.rsc` auf den Geräten.
|
||
- âł **Offene Coverage-Arbeit â ausgelagert nach TP3.3** (Fortsetzung in neuer Session).
|
||
|
||
### TP3.3 â WLAN Coverage-Kur ⸠đ TODO (Fortsetzung, neue Session) â `docs/wifi-p750w-coverage-and-map.md`
|
||
**Problem:** Kanten/Terrasse grenzwertig â Clients (iPhone/iPad) landen bei **â76..â89 dBm** und springen zwischen
|
||
allen 4 Main-Radios (ap1-5G/2,4G â ap2-5G/2,4G) â â0â1 Striche + häufiger Abriss"; **Terrasse auch mittags** schlecht.
|
||
FT kaschierte das bisher als âRoaming" statt âschwache Abdeckung".
|
||
|
||
**Bereits geklärt/erledigt (nicht nochmal aufrollen):**
|
||
- NICHT config-verursacht (ap1 kein Reboot, RF-Konfig unverändert). **TX schon am AT-Max** (18/15 dBm, EIRP-Deckel â kein Hebel).
|
||
- Kanalplan intern Ăźberlappungsfrei (ap1 ch1/ch36, ap2 ch11/ch149). **Steering** `st-main`/`neighbor-group=bf-main`
|
||
auf beiden Main-Configs gesetzt (hilft Client-Entscheidung, macht Signal aber nicht stärker).
|
||
- **ap1-only ist vom Tisch** (echte FunklĂścher) â beide APs nĂśtig, aber besser platziert.
|
||
|
||
**Offene Arbeit:**
|
||
1. **Dead-Spot-Kartierung** (Tageslicht): User stellt sich in jeden Problempunkt (Terrasse zuerst, entfernte Räume,
|
||
dicke Wand) â je Punkt `registration-table` + `monitor` (Signal je Radio/Band/AP). Zusätzlich Nachbar-WLAN-Scan
|
||
`/interface/wifi/scan` je AP (**stĂśrend** â wirft Clients kurz ab) gegen Abend-Congestion. Output â SSoT-Doku.
|
||
2. **Remediation nach Befund:** Platzierung (ap2 Richtung Schwachseite umstellen / **3. AP** / Outdoor-Unit / Kabelweg);
|
||
Roaming-Feintuning (802.11v `transition`-Schwellen ab 7.21, Band-Overlap reduzieren); Kanalplan aus Scan nachziehen.
|
||
3. **INFRA(20) auf ap1 ergänzen** (fehlt â sendet nur auf ap2): lokaler `w2-`/`w5-infra`-Slave analog w2-/w5-media.
|
||
4. Danach Re-Walk-Test (wie 2026-07-02, aber mit Kartierung als Baseline).
|
||
|
||
**Sicherheitsnetz:** Backups `bf-ap{1,2}-pre-nomen-20260702.backup`/`.rsc` auf den Geräten. Kontext-Memory `project_wifi_coverage`
|
||
+ `ref_wifi_powersave_multicast`. Abh.: TP3 â
, TP3.1 â
, TP3.2 â
.
|
||
|
||
### TP4 â Router-Cutover (hAP#1 = Router + WAN-Edge) ⸠â
FERTIG (2026-07-01)
|
||
- â
**Bridge VLAN-Filtering aktiviert** (`vlan-filtering=yes`); VLAN-Tabelle: VLAN1 untagged bridge+ether2, VLANs 10/20/30/40/50/90/99/100 tagged bridge+ether2.
|
||
- â
**VLAN-Subinterfaces:** vlan10/20/30/40/50/90/99 auf bridge; je GW `.1` (10.40.10.1 ⌠10.40.99.1).
|
||
- â
**DHCP:** dhcp-v10âŚdhcp-v99 je auf eigenem VLAN-Interface, pools .100-.200, GW+DNS = VLAN-GW.
|
||
- â
**DNS:** RouterOS-nativ, allow-remote-requests=yes. **Upstream seit 2026-06-16: DoH Cloudflare Gateway** (`use-doh-server=https://px35ynlol3.cloudflare-gateway.com/dns-query`, verify-doh-cert, `servers=1.1.1.1` als Bootstrap; FB-Upstream abgelÜst). Statische Einträge fßr alle Infra-Hosts unter `bf.lan` (13 Einträge, Transition-IPs bis PVID-Fix).
|
||
- â ď¸ Auto-Suffix `.lan` (RouterOS-Einschränkung, kann nicht auf leer gesetzt werden) â TP5-Cleanup.
|
||
- â
**NAT:** srcnat masquerade out-interface=vlan100 (ap1 = Public-Edge; kein Double-NAT mehr). Fallback-Konfig fĂźr ether1 bleibt reversibel dokumentiert (`routeros/wan-cutover-runbook.md`).
|
||
- â
**Routing-Tabelle:** 0.0.0.0/0 via Liwest-Gateway auf vlan100; alle 7 VLAN-Subnetze als Connected-Routes aktiv.
|
||
- â
**Edge-Cutover vollzogen (2026-07-01):** FritzBox 6660 physisch weg (Liwest hat gegen ein Arris-Kabelmodem im Bridge-Mode getauscht â kein ZurĂźck). WAN = `Arris â sw1 gi16 Access VLAN100 â gi15 Trunk â ap1 ether2 â vlan100 auf bridge` (**NICHT** ether1). ap1 hält Public-IP direkt (Liwest, kein CGNAT). **WAN-Input-Seal live** (TP10-seal-Regeln: est/inv/dhcp/icmp/lan/wandrop im `input`-Chain, `list_firewall_rules` 2026-07-02 verifiziert). Telefonie war auf der FB und wird nicht weitergefĂźhrt (User-Bestätigung 2026-07-02).
|
||
- **DNS-Entscheidung** (Technitium **und** externer BIND verworfen): RouterOS-DNS als Resolver, keine DHCPâDNS-Auto-Registrierung (soweit mĂśglich). Infra-Hosts als statische `/ip dns static`-Einträge unter `bf.lan`; dynamische Clients bewusst ohne Namen. Filtering/DNSSEC via DoH-Upstream (TP3). HA: 2. Resolver auf ap2, statische Einträge beidseitig pflegen.
|
||
- Abh.: TP1 â
. TP3-Abhängigkeit entfällt (WLAN läuft weiterhin ßber FB bis TP3).
|
||
- **ErmĂśglicht jetzt:** PVID-Fix in Omada-Profilen (MAINâPVID10, INFRAâPVID20), untagNetworkIds-Bereinigung, DHCP-Reservierungen fĂźr NAS/macmini/pve auf neue VLAN-Subnetze migrieren.
|
||
|
||
### TP5 â Firewall & Inter-VLAN-Policy ⸠ⳠTEIL-LIVE (Sonos/HA-Holes + WAN-Seal gebaut, Deny-by-default steht aus)
|
||
- **Deny-by-default + least-privilege** (Ziel). MAINâINFRA nur Whitelist-Dienste; MAINâMEDIA allow (+mDNS); UNTRUSTED/GUEST nur Internet; MGMT isoliert; Router-input gehärtet.
|
||
- â
**Bereits live** (verifiziert `list_firewall_rules` 2026-07-02):
|
||
- `forward accept vlan10âvlan40` â TP5: MAINâMEDIA (AirPlay/Sonos)
|
||
- `forward accept vlan20âvlan40` â TP5: INFRAâMEDIA (HAâSonos)
|
||
- `input accept udp/5353 vlan10/vlan20/vlan30/vlan40` â mDNS-Repeater (TP7-Anschluss)
|
||
- `forward accept vlan90âvlan40` + `input accept udp/5353 vlan90` â **GUESTâMEDIA (Sonos/Cast), permanent** (TP7.2, 2026-07-03)
|
||
- **WAN-Input-Seal komplett** (TP10-seal-est/inv/dhcp/icmp/lan/wandrop + WG-Hub UDP/51821 accept)
|
||
- âł **Offen:** Deny-by-default am Ende von `forward` (aktuell noch permissiv nach fasttrack); UNTRUSTED/GUEST auf Internet-only pinnen; MGMT isolieren; IoTâINFRA-Whitelist bauen.
|
||
- **IoTâINFRA-RĂźckmeldung (deine Frage):** IoT darf **aktiv** zu INFRA-Diensten initiieren â Firewall-Allow IoTâINFRA NUR auf **MQTT (1883/8883), HA-API, InfluxDB (8086)** o.ä.; Antworten via established/related; IoTâMAIN bleibt deny. So pusht ein Sensor Daten an HA/MQTT/Influx, ohne dass IoT âfrei" ist.
|
||
- Abh.: TP4 â
.
|
||
|
||
### TP5.1 â DNS-Visibility & Flow-Observability fĂźr Low-Trust-Geräte (Airfryer-Fall) ⸠vorgemerkt
|
||
- **Kontext (2026-07-08/09):** Airfryer âairschreier" (Philips/Versuni, ESP, `10.40.30.180`) bekam per DHCP-Option 6 `dns 1.1.1.1` als Override, weil das OTA-Update Ăźber den ap1-DoH-Gateway-Pfad nicht durchging (DoH-Latenz beim primitiven ESP-Stack â **kein** Content-Block, via Gateway-Logs bewiesen, s. `memory/ref_esp_ota_doh_not_block`). Nebenwirkung: public **1.1.1.1 = anonymer Consumer-Resolver â accountgebundener Gateway-DoH** (`px35ynlol3.cloudflare-gateway.com`) â **DNS-Sicht auf das Gerät weg**, Gerät umgeht zudem die Filterung.
|
||
- **(a) DNS-Redirect statt Geräte-Override** (der dauerhafte Fix): dst-nat âUDP/53 (+TCP/53) von Low-Trust-Src â auf einen *plain* Resolver umbiegen" gibt **Logging zurĂźck UND** funktionierendes OTA (kein langsamer DoH-Pfad fĂźrs Gerät). Redirect-Ziel-Optionen: (i) ap1-Resolver mit *nicht*-DoH-Upstream fĂźr dieses Src-Set, (ii) direkt public 1.1.1.1 (dann nur Flow-Logging), (iii) eigener plain-Resolver. Sauberer als âGerät verschwindet auf 1.1.1.1". Verortung: Teil des UNTRUSTED-Internet-only-Pinnings (TP5-âOffen"); Entscheidung v50-DNS-Policy (gefiltert vs. plain) hängt dran.
|
||
- **(b) Live-Torch als Ad-hoc-Observability:** DNS ist bei direktem 1.1.1.1 blind, **Flows nicht** (NATen Ăźber ap1). `torch` auf `vlan30`/`vlan50` gefiltert auf die Geräte-IP zeigt Ziel-IPs live (Versuni â AWS `eu-west-1` IoT erkennbar). Voraussetzung: Gerät aktiv. Merkregel: Airfryer nur online wenn er kocht â Capture ans Einschalten koppeln.
|
||
- **Abh.:** UNTRUSTED-Move des Airfryers (Kandidat, s. VLAN50) + TP5-Deny-by-default. Kein Blocker.
|
||
|
||
### TP6 â QoS/CAKE + Call-Quality-A/B-Test ⸠DAS Ziel
|
||
- **CAKE am WAN-Upload** (~85â95 % Linerate) â Bufferbloat weg. Verifikation waveform.com â A/A+.
|
||
- â ď¸ **Vor âErfolg":** A/B-Test, denn Kollegen-Befund sagt DE-Calls = **internat. Pfad ATâDE**, nicht Heimnetz â ggf. **WARP** statt/zusätzlich CAKE. Nicht am einen Telefonat festmachen.
|
||
- Abh.: TP4.
|
||
|
||
### TP7 â Media-Discovery (mDNS) fĂźr VLAN 40 ⸠â
FERTIG (2026-07-02) â `docs/tp7-mdns.md`
|
||
- â
**Built-in mDNS-Repeater** aktiv: `/ip/dns set mdns-repeat-ifaces=vlan10,vlan20,vlan40,vlan30,vlan90,bridge`
|
||
(RouterOS 7.23.1; `vlan90`+`bridge`=VLAN-1 seit TP7.2 2026-07-03). MAIN/INFRA/IOT/GUEST/VLAN1 â MEDIA. Reversibel (Feld leeren).
|
||
Realbestand: MAIN=iOS-Client + MacBook, INFRA=Home Assistant, MEDIA=10Ă Sonos (siehe `docs/sonos-inventar.md`).
|
||
- â
**Funktional durchgetestet (2026-07-02):** iOS-Sonos-App (vlan10) **und** Home Assistant (vlan20) finden die
|
||
9 online-Sonos per `_sonos._tcp.local.` (Bonjour) automatisch. Household nicht mehr gesplittet.
|
||
- â
**TP5-Anschluss live:** `forward accept vlan10âvlan40` + `forward accept vlan20âvlan40` + `input accept udp/5353`
|
||
auf vlan10/20/30/40 sind gebaut (mit âTP5:"-Kommentar), damit Discovery + Steuerung + Streaming ohne Umwege gehen.
|
||
- â ď¸ **SSDP/Cast (UDP 1900) bewusst NICHT gebaut** (bräuchte Reflector-Container auf NAS/pve; hAP hat kein USB/Flash).
|
||
Konsequenz: **macOS-Desktop-Sonos-App nutzt SSDP â quert die VLAN-Grenze NICHT** und findet die Sonos nicht.
|
||
iOS-App (mDNS) und HA-Integration decken den Nutzungsbedarf ab; Spotify Connect läuft ßber Cloud.
|
||
- Abh.: TP4 â
, TP5 (Sonos-Holes) â
live.
|
||
|
||
### TP7.1 â SSDP-Reflector (macOS-Sonos-App Ăźber VLAN-Grenze) ⸠vorgemerkt
|
||
- **Bedarf:** macOS-Desktop-Sonos-App auf VLAN 10 findet die Sonos in VLAN 40 nicht (Discovery per SSDP UDP 1900,
|
||
RouterOS reflektiert kein SSDP). iOS-App + HA decken den Alltag ab, aber User will die Desktop-App nutzen.
|
||
- **LĂśsung:** kleiner SSDP-Reflector-Container mit Bein je Ziel-VLAN. Auf **NAS oder pve** (nicht am hAP, 128 MB
|
||
Flash + kein USB). Kandidaten: `bkupreck/ssdp-repeater`, `scyto/multicast-relay`, oder eigenes Python-Skript.
|
||
- **Scope:** vlan10 â vlan40 (MacBook â Sonos). Optional vlan20 â vlan40 falls HA je SSDP-Discovery brauchen sollte
|
||
(aktuell nicht â HA nutzt zeroconf/mDNS).
|
||
- **Anschluss TP5:** `input accept udp/1900` auf den bedienten VLANs (falls Router-lokal reflektiert wird) bzw.
|
||
Container-Port-Freigaben je Bein.
|
||
- **Alternative (verworfen):** macOS-Client temporär in VLAN 40 hängen (unpraktikabel fßr Alltagsnutzung).
|
||
- Abh.: TP7 â
. Kein Blocker fĂźr TP5-Deny-by-default.
|
||
|
||
### TP7.2 â HAâSonos static-host binding + VLAN1/GUEST-Discovery ⸠â
FERTIG (2026-07-03) â `docs/sonos-inventar.md`
|
||
- **Root Cause (widerlegt frĂźhere Doku):** HA-`media_player.*`-Sonos alle `unavailable`. HA sitzt **nicht** auf
|
||
VLAN 20, sondern noch auf `10.40.41.105` (VLAN-1-Transfernetz, IP-Migration steht aus). Der mDNS-Repeater
|
||
deckte VLAN 1 **nicht** ab, und die HA-Sonos-Integration ist **SSDP-abhängig** (`manifest dependencies:[ssdp]`,
|
||
soco 0.31.1) â quert die VLAN-Grenze nicht. Die alten âHA nutzt mDNS/zeroconf, fixed 2026-07-02"-Notizen waren falsch.
|
||
- â
**HA-Fix (discovery-unabhängig):** `sonos: media_player: hosts:` mit allen 11 Sonos-IPs + `advertise_addr: 10.40.41.105`
|
||
in `configuration.yaml` (Backup `.bak-sonos-20260703`). `advertise_addr` fixt die UPnP-Event-Callbacks trotz
|
||
HA-Multi-Homing (`.105`/`172.16.0.18`/docker). Core-Restart â alle 6 Online-Zonen `idle/playing` (Wohnzimmer-Push
|
||
verifiziert = Callbacks OK). Terrasse `.198` offline = kein Entity (kommt beim Einschalten). Kurzes Flapping direkt
|
||
nach Restart = Settling, danach stabil.
|
||
- â
**Nebeneffekt:** mit `bridge` im Repeater (s.u.) meldet HA jetzt âAutomatic discovery is working, hosts not needed"
|
||
â die statischen Hosts sind also Redundanz (GĂźrtel+Hosenträger), bleiben aber als Absicherung.
|
||
- â
**VLAN 1 (temp) + GUEST (perm) Discovery/Reach (User-Wunsch 2026-07-03):**
|
||
- mDNS-Repeater erweitert â `mdns-repeat-ifaces=vlan10,vlan20,vlan40,vlan30,vlan90,bridge` (VLAN-1-untagged=`bridge`).
|
||
- Firewall: `input accept udp/5353 vlan90` + `forward accept vlan90âvlan40` (ganzes MEDIA, beide Richtungen; User-Wahl).
|
||
VLAN 1/`bridge` brauchte nichts (schon via `TP10-seal-lan` + permissiver Forward).
|
||
- **Bewusst in Kauf:** flacher Repeater â Guests sehen auch MAIN/INFRA/IOT-mDNS-Announcements (Discovery-Leak;
|
||
echte Verbindungen regelt TP5-Deny-by-default).
|
||
- **Offen/später:** HAâVLAN 20 (IP-Migration nach Omada-PVID-Fix) â dann nur `advertise_addr` auf neue IP; macOS-Desktop-App
|
||
weiter via SSDP-Reflector TP7.1. Abh.: TP7 â
, TP5-Holes â
.
|
||
|
||
### TP8 â Identity & Access-Control ⸠research-gated
|
||
- **RADIUS = FreeRADIUS auf der NAS** (âď¸ User-Manager v5 kann **KEIN LDAP** â openldap nur via FreeRADIUS anbindbar).
|
||
- **EAP-TLS (Zert) je Gerät + dynamische VLAN-Zuweisung** (RADIUS-Attribut `Tunnel-Private-Group-ID`). **Einfachste Heim-Alternative:** pro VLAN eine SSID mit **WPA3-PSK** (kein RADIUS) â Abwägung Komfort vs. Admin-Aufwand.
|
||
- Abh.: TP3. (Research erledigt, s. TP-R.)
|
||
|
||
### TP9 â Gateway-/Router-HA ⸠research-gated
|
||
- **âWas, wenn ap1 ausfällt?"** â **VRRP** lĂśst Gateway-Failover je VLAN ~gratis (kreuzweise Master/Backup).
|
||
â ď¸ **Haken (nicht Last):** DHCP/Firewall/NAT/DNS mĂźssen auf **BEIDEN** APs **identisch** gepflegt sein, sonst âGateway up, Internet tot".
|
||
**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 ⸠â
KERN DURCH (2026-06-27) â beide WG live auf ap1-Hub (`docs/tp10-vpn-migration.md`)
|
||
> **Details/Cutover/Gotchas/Eckdaten â `docs/tp10-vpn-migration.md` (Single Source of Truth).** Research: `docs/research/vpn-comparison.md`.
|
||
- **â
KERN DURCH (2026-06-27) + EDGE-CUTOVER (2026-07-01):** beide AVM-Tunnel â **2Ă WireGuard mit Hub auf ap1** migriert. Live: `peer fm`
|
||
(`10.101.0.0/24`, bidirektional, myfritz-Endpoint) **und** `peer dw` (`10.95.10.0/24`, CGNAT-Dial-in) mit frischem
|
||
Handshake + Traffic. **Public-Edge direkt** â ap1 hĂśrt UDP/51821 auf `vlan100` (Edge-Cutover 2026-07-01), keine
|
||
FB-Portfreigabe mehr, kein Double-NAT. FM-IPsec gekillt, Gelis alter FBâFB-WG sauber geswappt.
|
||
- **â
DW/Geli on-site verifiziert (2026-06-27):** Geli auf `10.95.10.0/24` renumbert, FB-WG single `10.95.10.1/24`,
|
||
Keepalive 25, Endpoint `bf4âŚ:51821`. End-to-End von macmini/Linz â Gelis 24/7-APs `10.95.10.246/.247` sauber
|
||
(echte LAN-IPs, **kein `10.255.255.x`**-NAT-Leak).
|
||
- **đĄ Root Cause (FM-PoC bewiesen):** FB masqueradet WG, wenn die Interface-`Address` eine **Transfernetz-IP** ist â
|
||
muss die **FB-LAN-IP** sein (AVM Proxy-ARP). War der SchlĂźssel zum sauberen LAN-LAN.
|
||
- **Hub:** `wg-hub` (UDP 51821, Key `P/bztâŚ`, MTU 1412, keine IF-IP). Endpoint = DDNS **`bf4.emsenhuber.net:51821`**
|
||
(Cloudflare, DNS-only â Public-IP). Apply gebĂźndelt in `routeros/tp10-cutover-apply.rsc`.
|
||
- â
**Permanenter Edge-Cutover durch (2026-07-01)** â Details in TP4 (WAN via sw1 vlan100, ap1 = Public-Edge,
|
||
WAN-Input-Seal live). BF-FB-eigenen WG-Server 51820 entfällt (FB physisch weg).
|
||
- **Offen:** DDNS-Auto-Updater fĂźr `bf4.emsenhuber.net` auf NAS/pve, damit der A-Record der Public-IP folgt
|
||
(falls Liwest sie tauscht). Aktuell manuell in Cloudflare gepflegt.
|
||
|
||
### TP11 â Monitoring & Mgmt-Control-Plane ⸠research-gated
|
||
- MikroMCP + omada-mcp + **SNMP/icinga-mikrotik**, RoMON, NTP, **E-Mail-Alerts**, Netwatch. â Teil von `docs/research/routeros-capabilities.md`.
|
||
- **CF-Tunnel #1033 Track A â
live (2026-06-30):** Round-Robin-1033er Ăźber 3 asymmetrische Connectors behoben
|
||
durch Reduktion auf pve-only Connector (NAS + macmini scheiterten an pve-lokalen/stalen Origins). SSoT:
|
||
`docs/cf-tunnel-mapping.md`. **Track B/C läuft Ăźber TP14** (Ingress bereits v116 .41â.20 fĂźr NAS;
|
||
pve-ConnectorâVLAN20 via TP14 Session B = #1033-Zielbild).
|
||
|
||
### TP12 â IPv6 (intern + extern, 3 Standorte) ⸠research-gated
|
||
- Konzept fĂźr FM/BF/DW. â TP-R.
|
||
|
||
### TP13 â âBotschafts-WLANs" ⸠fun, low-prio
|
||
- Nutzlose SSIDs mit Botschaft (âKanal 500 bitte nicht nutzen"), offenes WLAN mit Captive-Portal das auf **statische Info-HTML** zeigt (Nachbarschafts-WLAN-Tuning, Auto-Kanalwechsel). Idee: wer's sieht, kann auch stĂśren â Infoseite = beste Adresse. â ď¸ **Recht prĂźfen** (Impressum/TMG, StĂśrerhaftung bei offenem WLAN â User privat). RouterOS-Hotspot/Captive-Portal kann das.
|
||
|
||
### TP14 â Host/Container-IP-Migration VLAN1âVLAN20 (Docker-Cutover NAS+pve) ⸠ⳠWIP â `docs/nas-vlan20/RUNBOOK.md`, Handoff `docs/nas-vlan20/handoff/`
|
||
- â
**NAS (DS923, ep14) migriert (2026-07-09/10):** Docker von `default_external` (macvlan .41) auf **ein** `vlan20`-Macvlan (10.40.20.0/24, gw .1, parent `ovs_eth0`); DSM-Cutover `.20.10`; Portainer-Endpoint `.20.10:9001`. **Root-Cause der Dauerfehler** = Portainer **Config-Only-Macvlan-Falle** (`Driver:null`, kein Container-Attach) + Macvlan-Parent-Exklusivität (`default_external` muss weg fßr `vlan20`) + `default_internal` (172.18) weg. Container laufen auf `.20.x`.
|
||
- â
**CF-Ingress v116 (2026-07-10):** 6 NAS-Origins .41â.20 (SSoT `docs/cf-tunnel-mapping.md` §8); `vw` 200 via Tunnel = pveâVLAN20-Routing steht (502 direkt nach Ingress-PUT = transient).
|
||
- đ **Session A â NAS-Rest:** Restcontainer starten (oc-stack/112, default/72, nginx/101, oc-central/160, oc-charlie/158, oc-johnny2/150); gitea(111)+drawio(107) deployen; **pve-mcp NEU als Stack** (`.20.173`, Spec `docs/nas-vlan20/inspect_pve-mcp.json`); omada-controller Inform-Adr â `10.40.20.175` (sonst sw2 âDisconnected").
|
||
- đ **Session B â pve-Docker-LXC (.126, ipvlan!):** `default_external`(ipvlan eth0)â`vlan20`(ipvlan); adguard .16/.17, omada-mcp .176 â `.20.x`; LXC-IP `.126â.20.126` (â ď¸ Portainer-URL wandert). CF-Connector landet in VLAN20 = **lĂśst TP11-Track-B/C** (#1033-Zielbild).
|
||
- đ **Session C â Dormante Stacks vlan20-tauglich + Referenz-Sweep:** transform core/openclaw/openclaw2/oc20260307/openspeedtest/speedtest_tracker/technikscheiss; ap1 bf.lan-DNS + CLAUDE.md + `~/.claude.json` + `docs/ip-plan.md` .41â.20.
|
||
- đ **Session D â CF-Access-Profil (nicht cutoff-kritisch):** CF-Token hat jetzt `Access: Service Tokens: Write` â `claude-mcp` rotieren â Secret in `mcp/cloudflare/.env`. Memory `ref-cf-access-claude-profile`.
|
||
- â ď¸ **Abh./Reihenfolge:** verzahnt mit Omada-PVID-Fix/IP-Migration (Reihenfolge #3); **TP5 ZULETZT** (erst wenn alle Origins/Connectoren in VLAN20).
|
||
|
||
### TP-R â Router-Capabilities-Sweep ⸠FERTIG (`docs/research/routeros-capabilities.md`)
|
||
- **Leitsatz: nativ vor Container, NAS vor Router** (128MB-Flash-Limit).
|
||
- **Sofort nativ (~0 RAM):** RoMON ¡ Netwatch ¡ Scheduler + Auto-Backup/Mail ¡ SNMPâexternes Monitoring ¡ **mDNS-Repeater** ¡ spectral-scan ¡ **CAPsMAN + 802.11r/k/v (Fast-Roaming statt Mesh)** ¡ Back-to-Home/WireGuard.
|
||
- **Auf NAS:** FreeRADIUS(+LDAP) ¡ NPM ¡ icinga/Grafana ¡ CF-Tunnel.
|
||
- **Weglassen:** LoRa (keine HW) ¡ OpenFlow ¡ CALEA ¡ **ZeroTier (CPU-Fresser bis ~60 % â WireGuard)** ¡ lokales `dude`.
|
||
- âď¸ **Korrektur Reverse-Proxy:** RouterOS **7.22+ HAT** einen nativen (`/ip/reverse-proxy`, ACME/SNI) â aber **ersetzt NPM NICHT** (kein WebSocket/gRPC/Sticky, nur IPv4-Backends, TLS frisst Router-CPU) â NPM bleibt auf NAS.
|
||
- Speist TP8/9/11/12.
|
||
|
||
---
|
||
|
||
## Reihenfolge / Abhängigkeiten
|
||
1. ~~**TP1 (GE8) â TP2 (Omada Controller).**~~ â
erledigt 2026-06-15.
|
||
2. ~~**TP4 (Router-Cutover L3-Infra + WAN-Edge).**~~ â
erledigt 2026-06-15 (L3) + 2026-07-01 (Edge-Cutover, FB physisch weg).
|
||
3. **Jetzt: Omada-PVID-Fix** â Omada Access-Profile korrigieren (PVID 10/20, untagNetworkIds bereinigen, sicher P3/P5/P6 zuerst), dann IP-Migration NAS/macmini/pve auf VLAN-Subnetze + DNS-Einträge updaten. **IP-Migration NAS/pve = TP14** (NAS â
2026-07-10, pve đ Session B).
|
||
4. **Dann:** TP5 (Deny-by-default fertigziehen â Sonos-/HA-/mDNS-Holes + WAN-Input-Seal stehen bereits; **TP5.1 = DNS-Redirect + Live-Torch fĂźr Low-Trust-Geräte/Airfryer hängt dran**) â TP6 (QoS/CAKE).
|
||
~~TP7 (mDNS)~~ â
2026-07-02 (inkl. HA/vlan20), ~~TP3 (WLAN/CAPsMAN)~~ â
2026-06-18, ~~TP3.1 (ap2-VLAN-Trunk)~~ â
2026-07-01,
|
||
~~TP3.2 (P750W/Discovery)~~ â
2026-07-02, ~~Sonos-Migration~~ â
2026-07-02 (alle 10 auf VLAN 40).
|
||
âł **TP3.3 (WLAN-Coverage-Kur) offen** â Fortsetzung neue Session (`docs/wifi-p750w-coverage-and-map.md`).
|
||
5. ~~**TP10 (VPN)**~~ â
Kern durch (2026-06-27) + Edge-Cutover (2026-07-01) â DURCH. Offen nur: DDNS-Auto-Updater.
|
||
6. **Nachgelagert/Research-getrieben:** TP8 (Access), TP9 (HA), TP11 (Monitoring + CF-Tunnel-Track-B/C), TP12 (IPv6), TP13 (SpaĂ).
|