Files
bf-infra/docs/firmware-flash-runbook.md

85 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Firmware-Flash ALL-SG8316M (1.0 → 2.2.1) + Plan-B-Recovery
> ⚠️ Erst ausführen, wenn ALLE Pre-Flight-Punkte erfüllt sind. Flash = Werks-Reset der Config.
> Quelle Defaults: ALLNET QIG. Annahme: Flash setzt Switch auf Werk → **192.168.1.1 / admin / admin**.
## Werks-Defaults (Recovery-Anker)
| | |
|---|---|
| Default-IP nach Flash | **192.168.1.1** /24 |
| Default-Login | **admin / admin** |
| FW-Image | `switch/firmware/2.2.1/all-sg8316m-version_2.2.1_vmlinux.bix` (5,1 MB) |
| Aktuell (PRE) | IP 10.40.41.239, FW 1.0, nur VLAN1, Ports Hybrid/PVID1 |
## Warum „du bist dann auch offline"
Claude erreicht den Switch über **10.40.41.239**. Nach dem Flash lebt er auf **192.168.1.1** in einem
anderen Subnetz → für Claude nicht mehr erreichbar, **bis** jemand physisch eine Verbindung ins
192.168.1.x-Netz herstellt. **Recovery ist daher bewusst menschen-ausführbar** (GUI), Skript optional danach.
## Pre-Flight-Checkliste (HARTE Voraussetzungen)
- [ ] **Physisch am Switch** (Reset-Knopf erreichbar, Konsole-Zugang am Standort).
- [ ] **Direkt angestöpselter Laptop** an einem Switch-Port (nicht über WLAN/Remote).
- [ ] Laptop kann **Zweit-IP `192.168.1.2/24`** setzen (macOS: `sudo ifconfig en0 alias 192.168.1.2 255.255.255.0`).
- [ ] **Stabile Stromversorgung** des Switches (idealerweise USV) — Stromausfall **während** des Flashs = Brick-Risiko #1.
- [ ] FW-Image lokal vorhanden ✅ + Hash notiert (s.u.).
- [ ] PRE-Scrape vorhanden ✅ (`switch/state-PRE/`) → Soll-Config bekannt.
- [ ] Recovery-Skript bereit: `sg8316m.sh` kann Mgmt-IP zurücksetzen + VLANs/Ports anlegen (set_ip/add_vlans/…).
- [ ] **Zeitfenster** angekündigt: BF-LAN droppt ~1–2 Min beim Reboot; Re-Config danach wenige Min.
- [ ] Mentaler Worst-Case akzeptiert: €~96-Switch, im äußersten Notfall Ersatz.
## Flash-Durchführung (GUI empfohlen — sichtbarer Fortschritt)
1. Browser auf `http://10.40.41.239` → **Maintenance → Upgrade Manager** (cmd=4363).
2. Upgrade Method = **HTTP**, Upgrade Type = **Image**, Datei = `…2.2.1_vmlinux.bix` → **Upgrade**.
3. **NICHT** Strom/Netz trennen, bis der Switch von selbst neu startet. Geduld (mehrere Minuten).
- Scripted-Alternative (nur wenn bewusst gewählt):
`curl -F "type=0" -F "http_file=@switch/firmware/2.2.1/all-sg8316m-version_2.2.1_vmlinux.bix" -F "cmd=4364" http://10.40.41.239/cgi-bin/httpupload.cgi`
## Post-Flash — erwarteter Zustand
- Switch auf **192.168.1.1**, Login **admin/admin**, **leere Config** (nur VLAN1, Ports default).
- 10.40.41.239 weg (erwartet, kein Fehler).
## Recovery-Szenarien
### A) Normalfall: Flash OK, Switch auf 192.168.1.1 (= erwartet) — RECOVERY ÜBER MAC MINI
Voraussetzung: Mac mini trägt Zweit-IP **192.168.1.2/24** auf en0 (L2-benachbart, verifiziert).
Siehe `switch/recovery/README.md`. Claude führt **vom Mac mini aus** (per SSH-Tunnel) aus — **kein**
manuelles IP-Suchen, kein Laptop:
```
ssh 10.40.41.167 "curl -sS -X POST \
--data mode=0 --data ip=10.40.41.239 --data netmask=255.255.255.0 \
--data gateway=10.40.41.254 --data cmd=518 \
http://192.168.1.1/cgi-bin/dispatcher.cgi"
```
Danach Switch wieder auf .239 → Claude fährt VLANs/Ports/Mgmt-VLAN auf + `save`.
(Repo muss dafür NICHT auf dem Mac mini liegen — der curl-Einzeiler reicht via SSH.)
### B) Switch reagiert NICHT auf 192.168.1.1 (Loader/Recovery)
1. **30 Sek warten**, erneut pingen (Boot dauert).
2. **Factory-Reset-Knopf** ~10 Sek halten → erneut 192.168.1.1 prüfen.
3. Manche Realtek-Loader haben **TFTP-Recovery**: PC auf feste IP, TFTP-Server mit dem Image bereithalten,
Switch beim Boot ziehen lassen. (Für SG8316M nicht dokumentiert → nur als letzter Versuch; Setup s.u.)
4. Wenn weiterhin tot → Hardware-Defekt, Ersatz.
### C) Flash bricht mit Fehler ab, Switch noch auf 10.40.41.239 / FW 1.0
- Kein Reboot passiert → alte FW läuft weiter. Image-Datei/Hash prüfen, ggf. erneut versuchen oder abbrechen.
## TFTP-Recovery vorbereiten (optional, für Szenario B)
- macOS hat `launchctl`-tftpd, oder `dnsmasq --enable-tftp`. Image in TFTP-Root legen.
- **Nur** relevant, wenn der Loader es unterstützt — vorher recherchieren, nicht blind versuchen.
## Image-Integrität
- SHA256 (verifiziert 2026-06-05):
`e3f160983e8b17962dc70a52360b7f560c92da8197928d702f5266027a0fc7fc`
- Vor Flash erneut prüfen: `shasum -a 256 switch/firmware/2.2.1/all-sg8316m-version_2.2.1_vmlinux.bix`
## Recovery-Skript (Felder verifiziert)
- IP setzen (cmd=518): `POST mode=0 ip=<ip> netmask=<mask> gateway=<gw> cmd=518` → in `sg8316m.sh set-ip`.
- Schnell-Recovery nach Flash:
`SW_HOST=192.168.1.1 SW_USER=admin SW_PASS=admin ./sg8316m.sh set-ip 10.40.41.239`
danach `.secrets` zurück auf .239, dann `add-vlans 10,20,30,40,100` + Port-Config + `save`.
## Abbruch-Kriterien (lieber nicht flashen)
- Kein physischer Zugang ODER kein direkt-gekabelter Laptop → **verschieben**.
- Switch an instabilem Strom (kein USV, Gewitter, Bauarbeiten) → **verschieben**.
- Kein Zeitpuffer für ~15–30 Min Bastel-Risiko → **verschieben**.