From 65a61f7fb6bedb9d16505ca68e2be9fbf1a91f8e Mon Sep 17 00:00:00 2001 From: Christoph Emsenhuber Date: Sun, 30 Aug 2026 20:44:45 +0200 Subject: [PATCH] TP28 ap3 phase2: Selbstabnahme ins Log + Abnahme-Anleitung fuer den Manager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Das Skript endete bisher mit `vlan-filtering=yes` und einer Log-Zeile -- ohne jede Pruefung, ob der CAP wirklich CAP geworden ist. Neu, Punkt (6) VOR dem Scharfschalten: das Skript zaehlt seine eigenen wifi-Objekte und schreibt das Ergebnis per `:log info`. Bewusst nicht `:put` und bewusst nicht danach -- nach `vlan-filtering=yes` kann die Sitzung abreissen, eine Konsolenausgabe waere dann verloren. Das Log ueberlebt und ist ueber `/log print where message~"tp28-ap3"` nachlesbar. Sollwerte am Geraet gemessen, nicht angenommen (ap3 live, 2026-08-30): security=0 configuration=0 channel=0 datapath=1 radios-mit-manager=2 🔴 Erwartet ist ausdruecklich NICHT "alles 0": datapath MUSS 1 sein (dp-caps-slaves). Ein CAP mit 0 Datapaths ist der 14-Stunden-Ausfall vom 2026-08-18 -- Clients assoziieren und bekommen nie DHCP. security/configuration/channel=0 ist der harte Beleg, dass die Werks-Inline- Overrides weg sind: CAPsMAN haelt die Credentials, das Geraet haelt nichts. Gegenprobe am Bestand: ap2 zeigt dieselben 0/0. Dazu ein Abnahmeblock am Dateiende mit dem Schritt, der sich nicht im Skript pruefen laesst: `/interface wifi radio print` AM MANAGER muss zwei Zeilen mit CAP ap3@... zeigen (live: cap-wifi5 + cap-wifi6). Ohne diesen Schritt ist die Abnahme wertlos, denn `remote-cap print` meldet state=Ok schon beim blossen Verbinden -- ap1 steht seit 2026-08-30 genau so da: verbunden, gelistet, und trotzdem funkstill, weil keine Provisioning-Regel matcht. Am Geraet gegengeprueft: RouterOS kennt KEINEN ternaeren Operator, `a ? b : c` ist ein syntax error. Verdikt laeuft deshalb ueber :if/:set. Der komplette Block wurde am ap3 mit :put durchlaufen und meldet "=> OK". Co-Authored-By: Claude Opus 5 --- routeros/tp28-ap3-phase2-cap.rsc | 45 +++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/routeros/tp28-ap3-phase2-cap.rsc b/routeros/tp28-ap3-phase2-cap.rsc index f60dcc9..942713e 100644 --- a/routeros/tp28-ap3-phase2-cap.rsc +++ b/routeros/tp28-ap3-phase2-cap.rsc @@ -74,7 +74,50 @@ /interface wifi set [find name=wifi1] configuration.manager=capsman /interface wifi set [find name=wifi2] configuration.manager=capsman -# --- (6) ZULETZT scharf schalten. Vorher waere der Rest der Datei nicht angekommen. --- +# --- (6) Selbstabnahme INS LOG, nicht auf die Konsole. --- +# Sie steht bewusst VOR dem vlan-filtering: danach kann die Sitzung abreissen, und +# eine `:put`-Ausgabe waere dann verloren. `:log info` ueberlebt und ist spaeter +# ueber `/log print where message~"tp28-ap3"` nachlesbar. +# 🔴 Erwartet ist NICHT "alles 0": `datapath` MUSS 1 sein (dp-caps-slaves, s. Punkt 5). +# Ein CAP, der 0 Datapaths hat, ist der 14-Stunden-Ausfall vom 2026-08-18. +:local sec [:len [/interface wifi security find]] +:local cfg [:len [/interface wifi configuration find]] +:local dpt [:len [/interface wifi datapath find]] +:local chn [:len [/interface wifi channel find]] +:local mgr [:len [/interface wifi find where name~"^wifi[12]\$" and configuration.manager=capsman]] +# ⚠️ RouterOS kennt KEINEN ternaeren Operator (`a ? b : c` = syntax error, am +# 2026-08-30 am Geraet gegengeprueft). Verdikt deshalb ueber :if/:set. +:local verdikt "OK" +:if ($sec!=0 || $cfg!=0 || $chn!=0) do={ :set verdikt "ABWEICHUNG-lokale-wifi-objekte" } +:if ($dpt!=1) do={ :set verdikt "ABWEICHUNG-slaves-datapath" } +:if ($mgr!=2) do={ :set verdikt "ABWEICHUNG-manager-nicht-auf-radios" } +:log info ("tp28-ap3 abnahme: security=$sec/0 configuration=$cfg/0 channel=$chn/0 datapath=$dpt/1 radios-mit-manager=$mgr/2 => $verdikt") + +# --- (7) ZULETZT scharf schalten. Vorher waere der Rest der Datei nicht angekommen. --- /interface bridge set [find name=bridge] vlan-filtering=yes :log info "tp28-ap3 phase2: CAP aktiv, Manager-Suche auf vlan99, vlan-filtering=yes" + +# ===================================================================================== +# ABNAHME NACH DEM IMPORT -- zwei Orte, und der zweite ist der eigentliche Beweis. +# +# (a) AM ap3 selbst, das Ergebnis von Punkt (6): +# /log print where message~"tp28-ap3 abnahme" +# Sollwerte: security=0 configuration=0 channel=0 datapath=1 radios-mit-manager=2 +# security/configuration/channel = 0 belegt, dass die Werks-Inline-Overrides weg sind +# und der CAP nichts Eigenes haelt -- CAPsMAN haelt die Credentials, nicht das Geraet. +# Gegenprobe am Bestand (2026-08-30 gelesen): ap2 zeigt security=0, configuration=0. +# +# (b) 🔴 AM MANAGER crs326-core -- OHNE DIESEN SCHRITT IST DIE ABNAHME WERTLOS: +# /interface wifi radio print +# Erwartet sind ZWEI Zeilen mit CAP `ap3@...`, z.B. cap-wifi5 + cap-wifi6. +# Grund: `remote-cap print` meldet `state=Ok`, SOBALD der CAP verbunden ist -- auch +# dann, wenn er seine Radios gar nicht anbietet. Genau diese Verwechslung hat am +# 2026-08-30 in die radio-mac statt in `configuration.manager` schauen lassen. +# Und `state=Ok` ohne Provisioning-Regel bedeutet weiterhin Funkstille: so steht ap1 +# seit dem 2026-08-30 da -- verbunden, gelistet, und trotzdem sendet er nicht. +# +# (c) Erst danach die WLAN-Abnahme, die wirklich zaehlt: eine frische DHCP-Lease +# PRO SSID -- nicht die Registration-Table. Waehrend des Ausfalls am 2026-08-18 +# zeigte die 25 zufriedene IOT-Clients, die keine Adresse hatten. +# =====================================================================================