docs đ§ TP15 neu ausgerichtet + TP20/TP21: MikroTik-Ecosystem-Commit, Platform-Postgres, Nautobot Golden Config
Grundsatzentscheid 2026-07-14 (Christoph): - Ecosystem-Split nach Layer: MikroTik = Kabel+Routing (CAKE=Ziel #1), Omada = nur WLAN. - TP15: 2x CSS326-24G-2S+RM im Zulauf (SwOS-only â nicht in MikroMCP/Nautobot; kein PoE â EAP via Injektor; CRS-Swap-Flag offen). WLANâOmada-EAP, RouterâRB5009. A/B/C/D-Varianten = Archiv. - TP20 Platform-DB: 2-Tier (Postgres precious = Nautobot+Vaultwarden; MariaDB Tier-2 = HA-Recorder). Single-site-first, replication-ready (WAL/pgBackRestâGarage-S3). Vaultwarden migriert MariaDBâPG. - TP21 Nautobot Golden Config als config-as-code Control-Plane Ăźber RouterOS (ergänzt MikroMCP), Git-BackendâGitea, DBâTP20. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,9 @@
|
|||||||
> **Stand:** 2026-07-10 ¡ **Status:** Entwurf ¡ **Nächstes:** TP15 in teilprojekte.md
|
> **Stand:** 2026-07-10 ¡ **Status:** Entwurf ¡ **Nächstes:** TP15 in teilprojekte.md
|
||||||
> **Ziel:** ALLNET-Core + 2 Branch-Switches ablĂśsen, Energieeffizienz + zentrales Management + DC-USV-Konzept
|
> **Ziel:** ALLNET-Core + 2 Branch-Switches ablĂśsen, Energieeffizienz + zentrales Management + DC-USV-Konzept
|
||||||
|
|
||||||
|
> **â ď¸ ENTSCHEIDUNGEN 2026-07-14 (Ăźberschreiben Teile dieses Recherche-Docs):**
|
||||||
|
> Ecosystem-Commit **MikroTik** (Kabel+Routing) / **Omada nur WLAN**. **2Ă CSS326-24G-2S+RM im Zulauf** als Switches (â ď¸ **SwOS-only** â nicht in MikroMCP/Nautobot; **kein PoE** â EAPs via Injektor). WLAN â **Omada-EAP** (nicht hAP beÂł). Router â **RB5009** (mittelfristig). Die **A/B/C/D-Switch-Varianten unten sind damit Archiv**; DC-USV/Energie-Abschnitte bleiben gĂźltig. **SSoT = TP15/TP20/TP21 in `teilprojekte.md`** + Memory `project_mikrotik_commit_nautobot_gc`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 1. Ist-Stromverbrauch (Baseline)
|
## 1. Ist-Stromverbrauch (Baseline)
|
||||||
|
|||||||
@@ -321,18 +321,17 @@ FT kaschierte das bisher als âRoaming" statt âschwache Abdeckung".
|
|||||||
### TP14.5 â Session E: Freigabe-Gate â TP5-Firewall ⸠đ (ZULETZT)
|
### TP14.5 â Session E: Freigabe-Gate â TP5-Firewall ⸠đ (ZULETZT)
|
||||||
- Erst wenn TP14.1â14.3 durch (alle Origins/Connectoren in VLAN20) â dann TP5 (Deny-by-default) starten. Reines Reihenfolge-Gate, kein eigener Change.
|
- Erst wenn TP14.1â14.3 durch (alle Origins/Connectoren in VLAN20) â dann TP5 (Deny-by-default) starten. Reines Reihenfolge-Gate, kein eigener Change.
|
||||||
|
|
||||||
### TP15 â HW-Refresh: Core-Switch + OG-Verteiler ⸠đ PLANUNG â `docs/hw-refresh-requirements.md`
|
### TP15 â HW-Refresh: Switching + WLAN-Ecosystem + DC-USV ⸠đĄ ENTSCHIEDEN, Beschaffung läuft (2026-07-14) â `docs/hw-refresh-requirements.md`, Memory `project_mikrotik_commit_nautobot_gc`
|
||||||
- **Ziel:** ALLNET-Core (sw1, 5,8W) + 2 Branch-Switches (je 1,5W) ablĂśsen durch energieeffizientere, zentral managebare LĂśsung mit PoE + DC-USV.
|
- **đ§ Grundsatzentscheid (2026-07-14): Ecosystem-Split nach Layer.** **MikroTik = config-gemanagter Kern** (Routing/L3/CAKE + alle Switches), **Omada = ausschlieĂlich WLAN**. BegrĂźndung: Projektziel #1 **CAKE** nur RouterOS/OpenWrt/OPNsense (Omada-Gateway kann kein CAKE); WLAN = Schmerzpunkt â Omada-EAP; Switching = MikroTik. Grenze **âMikroTik = Kabel+Routing, Omada = Funk"** deckt sich mit den 2 bestehenden Control-Planes (MikroMCP + Omada-Controller). Verworfene Vollvarianten (Omada-only, MikroTik-only) samt BegrĂźndung + Ansible/Nautobot-Recherche â Memory.
|
||||||
- **Architektur:** Unten (Diele) = lĂźfterloser Core-Switch mit PoE, PoE-powered von oben (gepuffert). Oben (Arbeitszimmer) = Switch mit PoE + DC-USV (48V-Bus, LiFePO4).
|
- **đ Switches: 2Ă CSS326-24G-2S+RM im Zulauf (2026-07-14).** 24Ă1G + 2ĂSFP+, lĂźfterlos, DC-input (USV-tauglich). LĂśsen ALLNET-Core (sw1) + Omada-ES208G (sw2 raus aus Switching-Rolle) + Cudy ab.
|
||||||
- **Anbieter-Recherche:** MikroTik (RouterOS) â, TP-Link Omada, Ubiquiti UniFi, Netgear, Aruba Instant On, Zyxel, Cisco. **Favorit: MikroTik** (RouterOS, Config-as-Code, MikroMCP).
|
- â ď¸ **CSS = SwOS-only, KEIN RouterOS** â **auĂerhalb** MikroMCP/Nautobot-Golden-Config; VLANs statisch per SwOS-Web-UI. Die Config-as-Code-Grenze liegt damit am RouterOS-**Router**, nicht an den Switches. â ď¸ **kein PoE** â Omada-EAPs + Sonoff via **PoE-Injektoren**.
|
||||||
- **Kandidaten unten:** CRS318-16P-2S+OUT (16 PoE, lĂźfterlos, ~16W, ~âŹ286) â oder CRS326-24G-2S+RM (24 Ports, lĂźfterlos, ~10W, ~âŹ200) + PoE-Injektor.
|
- đŠ **Offener Flag (Switches âim Zulauf", noch änderbar):** wer die Switches *im* Golden-Config-Modell will â **CRS326-24G-2S+RM** (RouterOS, +~âŹ50/St.) statt CSS. Sonst CSS = bewusste, billigere SwOS-L2-Insel (fĂźr statische VLANs robust).
|
||||||
- **Kandidaten oben:** CRS328-24P-4S+RM (24 PoE, 4Ă SFP+, ~25W, ~âŹ400) â oder CRS418-8P-8G-2S+5axQ2axQ-RM (16 Port, 8 PoE, WiFi 6, ~19W, ~âŹ403).
|
- **đś WLAN â Omada EAPs** (ersetzt hAP-Funk + CAPsMAN): lĂśst CAP-ARP/Broadcast-Quirks (P750W-Fall), reifes 802.11k/v/r-Roaming, VLANâSSID im bereits laufenden Controller. hAP ax² werden Reserve. (Ersetzt die alte hAP-beÂł-Linie dieses Docs.)
|
||||||
- **WiFi:** hAP beÂł Media (WiFi 7, 5Ă 2,5G, ~âŹ179) als separater AP â vs. CRS418 (WiFi 6 integriert).
|
- **đ§ Router â RB5009 (mittelfristig):** L3/CAKE/Firewall vom hAP ax² lĂśsen (device-mode=home blockt scheduler/fetch; âAP=Router"-Fragilität) â dedizierte RouterOS-Box, in MikroMCP + Nautobot. hAP ax² danach nur noch WLAN/Reserve.
|
||||||
- **DC-USV:** MeanWell LRS-150-48 + DDR-120-48 + LiFePO4 20Ah (~âŹ190) â 48V-Bus, ~2,5h Laufzeit bei 100W.
|
- **đ DC-USV** (unverändert gĂźltig): MeanWell LRS-150-48 + DDR-120-48 + LiFePO4 20Ah (~âŹ190), 48V-Bus; CSS326 DC-input passt.
|
||||||
- **Energiebilanz:** Neue LĂśsung ~35â60W (je nach Variante) vs. IST ~15W (nur Switching). Jahreskosten +âŹ50â105.
|
- **Offen:** PoE-Injektor-Auswahl (EAP-Wattage); RB5009-Beschaffung; EAP-Modell (WiFi6 EAP6xx vs WiFi7 EAP7xx); Standort-Zuordnung der 2 Switches (Diele/OG) nach TP19-VLAN1-Retirement.
|
||||||
- **Offene Entscheidungen:** Variante (A/B/C/D), Mac mini auf USV?, PVE-Standort, WiFi-Strategie.
|
- **Hinweis:** die A/B/C/D-Switch-Varianten in `hw-refresh-requirements.md` sind durch die CSS326-Beschaffung Ăźberholt (Doc = Recherche-Archiv + USV/Energie-Referenz).
|
||||||
- **Nächster Schritt:** Entscheidungen treffen, dann Konfiguration + Bestellung.
|
- Abh.: TP14 â
(IP-Migration). Verzahnt: **TP20** (Platform-DB), **TP21** (Nautobot GC).
|
||||||
- Abh.: TP14 (IP-Migration VLAN1âVLAN20 sollte abgeschlossen sein, damit Ziel-IPs feststehen).
|
|
||||||
|
|
||||||
### TP16 â CF-Tunnel: Round-Robin killen + reziprokes HA ⸠â
KERN UMGESETZT (2026-07-10) â `docs/cf-tunnel-mapping.md §10`, #1033
|
### TP16 â CF-Tunnel: Round-Robin killen + reziprokes HA ⸠â
KERN UMGESETZT (2026-07-10) â `docs/cf-tunnel-mapping.md §10`, #1033
|
||||||
> **â
Umgesetzt (2026-07-10, eigene Session):** reziprokes **3-Tunnel-HA** live (bf-nas `70d6a4cf` / bf-pve `f7fdf3a6` / bf-mm `7a322261`), 6 Connectoren (2/Host, je Fremdhost), 19 FQDNs Loop-Smoke **0Ă530**, HA per Host-Ausfall-Sim bewiesen. Round-Robin-#1033 **strukturell weg**. As-Built = `docs/cf-tunnel-mapping.md §10`. **Offen: Schritt 5 Access-Strang (`vw` bypassâgeschĂźtzt via WARP, `hass`/`ha-mcp` 400/403 â iPhone-WARP-Enrollment) = user-gated; `gateway-dw` (WGâ404) klären.**
|
> **â
Umgesetzt (2026-07-10, eigene Session):** reziprokes **3-Tunnel-HA** live (bf-nas `70d6a4cf` / bf-pve `f7fdf3a6` / bf-mm `7a322261`), 6 Connectoren (2/Host, je Fremdhost), 19 FQDNs Loop-Smoke **0Ă530**, HA per Host-Ausfall-Sim bewiesen. Round-Robin-#1033 **strukturell weg**. As-Built = `docs/cf-tunnel-mapping.md §10`. **Offen: Schritt 5 Access-Strang (`vw` bypassâgeschĂźtzt via WARP, `hass`/`ha-mcp` 400/403 â iPhone-WARP-Enrollment) = user-gated; `gateway-dw` (WGâ404) klären.**
|
||||||
@@ -408,6 +407,25 @@ FT kaschierte das bisher als âRoaming" statt âschwache Abdeckung".
|
|||||||
- **Teardown-Sequenz (nach Prereqs):** VLAN1-Client-Sweep = leer (nur Mgmt bleibt) â cudy1/cudy2 stromlos/Reset/ausbauen â ap1 `defconf`/pool-v1-Client-DHCP zurĂźckziehen (VLAN1-Mgmt-Reachability fĂźr sw1/sw2/ap2 erhalten) â Interim-KrĂźcken aufräumen (ap2 `frame-types=admit-only-vlan-tagged` = auto-weg mit VLAN1; `st-main rrm/wnm` Roaming-Provisorium neu bewerten) â Inventar/`ip-plan`/DNS `.41âZiel` final.
|
- **Teardown-Sequenz (nach Prereqs):** VLAN1-Client-Sweep = leer (nur Mgmt bleibt) â cudy1/cudy2 stromlos/Reset/ausbauen â ap1 `defconf`/pool-v1-Client-DHCP zurĂźckziehen (VLAN1-Mgmt-Reachability fĂźr sw1/sw2/ap2 erhalten) â Interim-KrĂźcken aufräumen (ap2 `frame-types=admit-only-vlan-tagged` = auto-weg mit VLAN1; `st-main rrm/wnm` Roaming-Provisorium neu bewerten) â Inventar/`ip-plan`/DNS `.41âZiel` final.
|
||||||
- Abh.: **TP14 â
** (Hosts raus aus VLAN1), **TP17 â
** (Shellys raus). Verwandt: `project_vlan1_dhcp_incident` (cudy-Dual-DHCP-Leak), **VLAN99-MGMT-Cutover** (Folge-TP, entkoppelt), TP5 (Deny-by-default danach sauberer). SSoT hier + Runbook.
|
- Abh.: **TP14 â
** (Hosts raus aus VLAN1), **TP17 â
** (Shellys raus). Verwandt: `project_vlan1_dhcp_incident` (cudy-Dual-DHCP-Leak), **VLAN99-MGMT-Cutover** (Folge-TP, entkoppelt), TP5 (Deny-by-default danach sauberer). SSoT hier + Runbook.
|
||||||
|
|
||||||
|
### TP20 â Platform-Datenbank (Postgres Precious-Tier + MariaDB Tier-2) ⸠đ KONZEPT (2026-07-14) â Memory `project_mikrotik_commit_nautobot_gc`
|
||||||
|
- **AuslĂśser:** Mehrere Dienste brauchen zentrale DB (Nautobot-SoT [TP21], Vaultwarden, HA-Recorder). Grundsatzentscheid statt Nautobot-InsellĂśsung â âwir skalieren schneller als wir schauen kĂśnnen" (User).
|
||||||
|
- **â
2-Tier (User 2026-07-14):**
|
||||||
|
- **Tier-1 âPlatform-Postgres" (precious):** EIN Postgres-Cluster, getrennte DBs fĂźr **Nautobot + Vaultwarden**. **PG 16** (Nautobot-Matrix-safe; **Nautobot unterstĂźtzt kein MariaDB**, nur PG/MySQL-8 â Postgres ist gesetzt, nicht optional).
|
||||||
|
- **Tier-2 (Bestand):** **HA-Recorder + Vaultwarden laufen aktuell auf MariaDB.** HA **bleibt** MariaDB (Write-Churn, andere Zuverlässigkeitsklasse, single-site). **Vaultwarden migriert MariaDBâPostgres** (in Tier-1 hochgezogen). Engine-Split fällt sauber entlang der Tier-Grenze. *(Alternative, dokumentiert-aber-verworfen: vw auf MariaDB lassen + MariaDB-Repl â verworfen zugunsten EINER Replikations-/Backup-Mechanik im Precious-Tier.)*
|
||||||
|
- **â
Single-Site-first (User 2026-07-14):** jetzt nur BF-Primary. Nimmt das **2-Site-Quorum/Split-Brain**-Problem (bräuchte 3. Witness) vom Tisch. **ABER replication-ready ab Tag 1:** `wal_level=replica`, `archive_mode=on`, **pgBackRest (WAL+Base) â Garage-S3 (TP18)** = PITR sofort (DR auch ohne Standby) + späterer Standby = `pg_basebackup`, **kein** Primary-Umbau/Restart.
|
||||||
|
- **Substrat:** Postgres in **LXC auf pve** (DB-Klasse, nicht Docker).
|
||||||
|
- **Phase 2 (später):** Cross-Site-Standby fĂźr Vaultwarden â `db-platform-standby`-LXC am 2. Standort, Streaming-Replication Ăźber WG (TP10), manuelles Promote-Runbook. Patroni + Witness nur falls Auto-Failover gewĂźnscht.
|
||||||
|
- **Offene Sub-Steps:** Vaultwarden MariaDBâPG-Migration (`vw` .20.127); pgBackRest-Bucket in Garage (Abh. TP18-Startpfad â ); PG-Version final (16 vs 17).
|
||||||
|
- Abh.: **TP18** (Garage-S3 fĂźr Backups â mind. BF-Node â ), **TP10** (WG-Transport fĂźr Phase-2). **Blockt TP21.**
|
||||||
|
|
||||||
|
### TP21 â Nautobot Golden Config (config-as-code Control-Plane) ⸠đ KONZEPT (2026-07-14) â Memory `project_mikrotik_commit_nautobot_gc`
|
||||||
|
- **Ziel:** modellierter Control-Plane ßber den MikroTik-**RouterOS**-Kern: GUI-SoT + **Config-Compliance/Drift** + intended-config + Push. **Ergänzt** MikroMCP (interaktiv/Debug), **ersetzt es nicht** (deklarativ/DR/Compliance). Aus User-Recherche 2026-07-14: MikroTik in Golden Config **erstklassig** (`mikrotik_routeros` + `_api`, Nornir/NAPALM, backup+deploy).
|
||||||
|
- **Scope-Grenze (wichtig):** RouterOS in-model (ap1 heute / RB5009 kĂźnftig). **CSS326-Switches = SwOS = NICHT in Golden Config** (s. TP15-Flag); **Omada-WLAN = eigener Controller**. Golden Config deckt also den **RouterOS-Router**, nicht den ganzen Fabric. *(Wenn Switches in-model sollen â CRS statt CSS, TP15-Flag.)*
|
||||||
|
- **Stack:** `nautobot-docker-compose` (Django/gunicorn + Redis + Celery worker/beat) auf Docker-Host; **DB extern â Platform-Postgres (TP20)**; Redis lokal/ephemer; **Git-Backend (backups/intended/templates) â bestehendes Gitea** (`project_gitea_backup_state`).
|
||||||
|
- **PoC-Pfad:** Nautobot-Stack hoch â ap1 via RouterOS-API adoptieren â Backup + Compliance/Drift an *einem* Gerät zeigen â dann Templates/intended fĂźr VLAN-/Firewall-Standards.
|
||||||
|
- **Offen:** Nautobot- + GC-App-Version; ob OpenWrt je in-model muss (custom Nornir-Dispatcher â nur relevant falls Router doch OpenWrt+cake-autorate statt RB5009).
|
||||||
|
- Abh.: **TP20** (Postgres muss stehen), Gitea â
, RouterOS-Router (ap1 heute / RB5009 TP15).
|
||||||
|
|
||||||
### TP-R â Router-Capabilities-Sweep ⸠FERTIG (`docs/research/routeros-capabilities.md`)
|
### TP-R â Router-Capabilities-Sweep ⸠FERTIG (`docs/research/routeros-capabilities.md`)
|
||||||
- **Leitsatz: nativ vor Container, NAS vor Router** (128MB-Flash-Limit).
|
- **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.
|
- **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.
|
||||||
@@ -429,3 +447,4 @@ FT kaschierte das bisher als âRoaming" statt âschwache Abdeckung".
|
|||||||
âł **TP3.3 (WLAN-Coverage-Kur) offen** â Fortsetzung neue Session (`docs/wifi-p750w-coverage-and-map.md`).
|
âł **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.
|
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Ă).
|
6. **Nachgelagert/Research-getrieben:** TP8 (Access), TP9 (HA), TP11 (Monitoring + CF-Tunnel-Track-B/C), TP12 (IPv6), TP13 (SpaĂ).
|
||||||
|
7. **Foundation (2026-07-14):** **TP15** (MikroTik-Switching / Omada-WLAN, 2Ă CSS326 im Zulauf) ⼠**TP20 (Platform-Postgres, single-site replication-ready)** â **TP21 (Nautobot Golden Config)**. TP20 hängt an **TP18 â ** (Garage-Bucket fĂźr pgBackRest).
|
||||||
|
|||||||
Reference in New Issue
Block a user