Christoph Emsenhuber a0a650eb48 TP25 Fund E Hebel 1: ft-over-ds=no auf sec-main, Messung laeuft
Ein Hebel, sonst nichts. 2026-08-31 08:09 am Manager crs326-core:
  /interface wifi security set [find name="sec-main"] ft-over-ds=no
  /interface wifi capsman remote-cap provision [find]
ft=yes bleibt -- FT laeuft weiter over-the-air, nur nicht mehr over-the-DS.
Nimmt exakt die Aenderung vom 2026-08-17 zurueck.

Abnahme (Lease, nicht Registration-Table):
- Manager, alle vier aktiven Master-VAPs cap-wifi3/4/5/6: ft=true ft-over-ds=false
- alle 3 CAPs state=Ok, alle VAPs running=yes AM CAP gelesen
- iPhone nach 71 s zurueck auf dirtyvader-main, frische Lease 10.40.10.196,
  auth-type=ft-wpa3-psk, -54 dBm; 30 Clients gesamt zurueck
- Log 08:13:20 zeigt sauberes "roamed to" zwischen zwei APs -> Roaming intakt
- Geraete-Backup vorher: pre-tp25-funde-ftoverds.backup

Governance: Transaktion TP25-fund-e-ft-over-ds OFFEN (Scope wifi-security,
Ablauf 2026-09-03). Compliance steht deshalb ABSICHTLICH auf 134/135; der Diff
ist exakt ft-over-ds=yes->no, kein Kollateral-Drift durch die Re-Provisionierung.
Das GC-Template wird erst beim COMMIT nachgezogen -- vorher gruen machen wuerde
den laufenden Versuch unsichtbar machen, und gc-transaktion.py verweigert den
Commit ohnehin, solange der Scope driftet. 135/135 kommt nach der Messung zurueck.

Messstand nach 25 min: weiter 93, letzter reauthenticating 07:34:43 (vor dem
Eingriff). Logging nachweislich lebendig (593 wireless-Zeilen heute, beide SSIDs).
Noch kein Ergebnis, nur ein sauberer Schnitt.

Drei Funde:
- cap-wifiN-Karte hat sich beim Re-Provisionieren VERSCHOBEN: ap2 war 1/2 ->
  jetzt 3/5, ap3 war 5/6 -> jetzt 4/6, ap1 hat 1/2 bekommen. Wer die 07:xx-Zeilen
  gegen die neuen liest, ordnet dem falschen AP zu.
- Korrektur am Vormittagsbefund: main unterscheidet sich in ZWEI Attributen, nicht
  einem -- es ist auch die einzige SSID ohne wpa2-psk. Die Kontrollgruppe trennt FT
  und WPA3-only nicht. Wenn Hebel 1 und 2 beide nichts bewegen, ist
  authentication-types der naechste Kandidat, NICHT signal-range.
- gc-transaktion.py rief sshpass -p auf (Passwort in argv, Klasse vom 2026-08-22).
  Auf SSHPASS-Env + -e umgestellt, weil das Skript laufen musste. Fuenf weitere
  Dateien unter routeros/ haben dasselbe Muster und sind bewusst NICHT angefasst
  (Stop-Bedingung; gehoert zu TP30). Entwarnung: /export auf 7.24 gibt Passphrasen
  gar nicht aus (live geprueft), die Transaktionsakte im Git ist sauber.

Nebenbei: .gitignore hatte docs/nas-vlan20/stacks/ MIT Schraegstrich -- im Worktree
liegt dort ein Symlink auf den Haupt-Checkout, der war damit nicht ignoriert.

Doku an allen drei Stellen nachgezogen (Quick-Index, TP25-Abschnitt, Ist-Stand-Block)
plus CLAUDE.md-Pflichtlektuere und neuer Handoff mit Entscheidungstabelle fuer 09-01.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 08:19:31 +02:00

bf-infra

BF-Netzwerk-Infrastruktur (Caddy, AGH, MikroTik-Konfig, Dokumentation, MCPs). Aktiver Fork von bf-network-r6 (Claude-Code-Architektur, 2025-2026), ab August 2026 unter OpenCode und anderem LLM weitergepflegt.

Master-Struktur

Repo Rolle Stand
~/dev/bf-infra/ (lokal) Aktiver Master, Working-Copy kein Gitea-Remote (Sicherheitslücke, offen)
admin/bf-network-r6 (Gitea) Archiv, historischer Master read-only-Header, letzte aktive Commits 2026-08-25
admin/bf-golden-config (Gitea) Bot-Master (Nautobot 2×/Tag) intended/ + backups/, nicht manuell
admin/blaueblueten-n8n (Gitea) Master für terpene-Repo aktiv, lokal synchron

Was hier lebt

  • docs/teilprojekte.md — kanonische Steuerung (Ist-Stand, offene TPs, kritischer Pffad)
  • docs/teilprojekte-archiv.md — abgeschlossene TPs (Volltext)
  • docs/handoff-*.md — Session-Übergaben
  • caddy/Caddyfile — Reverse-Proxy BF (siehe TP34 für Migration zu Nautobot/GC)
  • nautobot/ — Skripte + Jinja-Template für Golden Config
  • mcp/ — MCP-Server-Inventar (SSoT gegen „1000 MCP-Leichen")
  • inventory/ — entfernt 2026-08-27 (Pipeline seit 2025-06 stale; Live-Daten via MikroMCP/CF/Portainer)

Status (2026-08-27)

  • L3 + WAN-Edge = crs326-core, alle 4 MikroTik auf RouterOS 7.24 (TP27)
  • Firewall deny-by-default seit 2026-08-18 (TP5)
  • WLAN via CAPsMAN auf dem Core seit 2026-08-17 (TP28)
  • Compliance 104/104 grün, 0 Drifts (Golden Config, TP22)
  • AdGuard-Paar agh-bf1/agh-bf2 aufgebaut, DHCP noch nicht umgestellt (TP23 Stufe 2 / TP31 Schritt 4)
  • Caddyfile Reverse-Proxy seit 2026-08-25 (TP31), 16 Sites BF-intern
  • terpene.teilzeitladen.xyz: Worker läuft auf Mac mini (10.40.20.167:8890), kein Caddy-Block, kein CF-Tunnel — Backfill via DB-Migration blockiert (Handoff 2026-08-27)

Übergangspfad von bf-network-r6 → bf-infra

  1. README + Strukturen aktualisiert (dieses File)
  2. bf-network-r6 im Gitea auf read-only, Header mit Verweis (deine Aktion)
  3. Inventar-Pipeline gelöscht (XLSX stale, MikroMCP/CF/Portainer liefern Live)
  4. Caddyfile-Master wandert zu Nautobot/GC (TP34, siehe Handoff 2026-08-27)
  5. bf-infra bekommt Gitea-Remote (offen, „später")

Werkzeuge (Stand 2026-08-27)

  • MikroMCP (RouterOS, 4 Geräte) — ~/.claude.json + opencode.jsonc
  • pve-mcp (Proxmox, 10.40.20.173) — opencode.jsonc
  • home-assistant (HA, 10.40.20.105) — opencode.jsonc
  • cloudflare (CF-API, OAuth) — opencode.jsonc
  • gitea-mcp (FQDN) — opencode.jsonc
  • komodo-mcp (geplant, Migration von Portainer) — ~/dev/bf-infra/mcp/komodo/
  • shelly-mcp (Client-lokal Interim, 127.0.0.1:3030) — vor Migration auf zentralen Container
Description
BF-Infrastruktur (Fork von bf-network-r6): MikroTik, Caddy, AGH, Nautobot/GC, MCPs. Master seit 2026-08-27.
Readme 21 MiB
Languages
Python 57.9%
RouterOS Script 33.8%
Jinja 6.6%
Shell 1.7%