LLM-Server: IPv6 deaktiviert (host_baseline) + Swift-Repin und wget-4-Download nach Live-Befunden
Betreiberentscheidung 31.10.2026 (GNAI-002 Abschnitt 6): Der KI-Host wird kohärent IPv4-only betrieben. host_baseline verwaltet /etc/sysctl.d/99-ghostnet-disable-ipv6.conf (all+default), wendet es bei Änderung an und verifiziert den Laufzeitwert. Anlass: hängender get_url- Download durch AAAA-Antworten ohne nutzbare IPv6-Route (Messungen im Dokument; Pi-hole filtert AAAA nicht, der Host nutzt Pi-hole nicht). model_store nach Live-Befunden: Swift-Repin auf Repository-Revision 98a6100 (alte Revision entfernt, Datei laut Herausgeber-SHA256SUMS unverändert; GNAI-010 v0.5) und Download über wget -4 mit expliziter SHA-256-Verifikation vor dem atomaren Move. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
| 2026-09-21 | 0.3 | spektr / Codex | je Modell ein festes Quadlet vorgesehen; Swift und Unsloth durch kontrollierten Stop/Start gegenseitig ausgeschlossen; Router-Modus zurückgestellt |
|
||||
| 2026-09-21 | 0.2 | spektr / Codex | Unsloth UD-Q6_K als zweites installiertes Modellprofil und kontrollierten Profilwechsel für A/B-Tests ergänzt |
|
||||
| 2026-09-21 | 0.1 | spektr / Codex | erstes technisches Profil für Swift Q6_K, 128k, Q8-KV, rootless Quadlet und gestufte MTP-Abnahme erstellt |
|
||||
| 2026-10-31 | 0.5 | spektr / Mistral Vibe | Swift-Repository-Revision aktualisiert: `eb0e3a7…` wurde vom Herausgeber aus dem Repository entfernt (resolve liefert 404); Repin auf den aktuellen `main`-Commit `98a6100…`. Die Q6_K-Datei ist laut Herausgeber-SHA256SUMS unverändert (`7f4de8…`), der Vision-Projektor ebenfalls (`daa111…`); beide Prüfsummen bleiben unverändert und werden beim Download verifiziert. |
|
||||
|
||||
---
|
||||
|
||||
@@ -80,11 +81,11 @@ Testing zur Recherche aufgelöst, aber nicht in ein freigegebenes Profil
|
||||
| Feld | Wert |
|
||||
| --- | --- |
|
||||
| Repository | `ukisai/Swift-Qwen3.8-27B-GGUF` |
|
||||
| Repository-Revision | `eb0e3a7dc70643c2ab920f5133750d02c20849ff` |
|
||||
| Repository-Revision | `98a6100719e3aafa186041089b71c7b48390dbe1` (am 31.10.2026 repinnt; die ursprüngliche Revision `eb0e3a7dc70643c2ab920f5133750d02c20849ff` wurde vom Herausgeber entfernt, die Datei-Inhalte sind laut Prüfsummen unverändert) |
|
||||
| Datei | `Swift-Qwen3.8-27B-Q6_K.gguf` |
|
||||
| veröffentlichte Größe | 22,9 GB |
|
||||
| SHA-256 | `7f4de8abd5446c08b0f975a1b38e43d02639f4ae9ecdd2ddfd5c5b0f612bda59` |
|
||||
| Download | `https://huggingface.co/ukisai/Swift-Qwen3.8-27B-GGUF/resolve/eb0e3a7dc70643c2ab920f5133750d02c20849ff/Swift-Qwen3.8-27B-Q6_K.gguf` |
|
||||
| Download | `https://huggingface.co/ukisai/Swift-Qwen3.8-27B-GGUF/resolve/98a6100719e3aafa186041089b71c7b48390dbe1/Swift-Qwen3.8-27B-Q6_K.gguf` |
|
||||
| API-Alias | `swift-qwen3.8-27b-q6k` |
|
||||
|
||||
Die Prüfsumme stammt aus der vom Herausgeber veröffentlichten
|
||||
@@ -123,7 +124,7 @@ Für eine spätere Vision-Stufe ist vorgesehen:
|
||||
| Datei | `mmproj-Swift-Qwen3.8-27B-F16.gguf` |
|
||||
| veröffentlichte Größe | 928 MB |
|
||||
| SHA-256 | `daa1116c9422fa390cc8688495da0e91781f92841dfc3b31a378ff252571745a` |
|
||||
| Download | `https://huggingface.co/ukisai/Swift-Qwen3.8-27B-GGUF/resolve/eb0e3a7dc70643c2ab920f5133750d02c20849ff/mmproj-Swift-Qwen3.8-27B-F16.gguf` |
|
||||
| Download | `https://huggingface.co/ukisai/Swift-Qwen3.8-27B-GGUF/resolve/98a6100719e3aafa186041089b71c7b48390dbe1/mmproj-Swift-Qwen3.8-27B-F16.gguf` |
|
||||
|
||||
Der Projektor wird erst heruntergeladen und mit `--mmproj` eingebunden, wenn
|
||||
die Vision-Teststufe ausdrücklich aktiviert wird.
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
| 2026-09-18 | 1.3 | spektr | GPU-Abnahme auf nachweisbare Geräteerkennung begrenzt; Firmwarepaket präzisiert. |
|
||||
| 2026-09-19 | 1.4 | spektr | Getrennte SSH-Zugänge für `ghost` und `ghost-agent` als erfolgreich getestet übernommen. |
|
||||
| 2026-09-22 | 1.5 | Codex | In die hostbezogene Struktur `platform/ghostnet-ai/` verschoben und Geltungsbereich präzisiert. |
|
||||
| 2026-10-31 | 1.6 | spektr / Mistral Vibe | Betreiberentscheidung IPv4-only: IPv6 wird auf dem Host über die `host_baseline`-Rolle systematisch deaktiviert (Abschnitt 6); Anlass war der hängende Modell-Download am 31.10.2026 durch den Halbdual-Stack-Zustand. |
|
||||
|
||||
---
|
||||
|
||||
@@ -157,3 +158,46 @@ Vor der Übergabe an das KI-Team (Phase 2) muss das System folgende Punkte beste
|
||||
## 5. Lesender Teilabgleich des bestehenden Hosts am 18.09.2026
|
||||
|
||||
Per SSH wurden Debian 13.6, Hostname `ghostnet-ki`, Intel Core i5-13600K, 62 GiB nutzbarer RAM und zwei AMD Navi-21-GPUs mit PCI-ID `1002:73bf` beobachtet. `lsblk` zeigt eine 1,8-TiB-NVMe mit EFI-, ext4-Root- und Swap-Partition; `df -h /` zeigte 1,8 TiB Dateisystemgröße. `lspci` bestätigt die Gerätefamilie, aber weder das genaue Kartenmodell noch ROCm-Funktion und ReBAR-Leistung. BIOS-Version, XMP, Firmwarestand und Restore wurden nicht geprüft.
|
||||
|
||||
---
|
||||
|
||||
## 6. Betreiberentscheidung: IPv6 auf dem Host deaktiviert (31.10.2026)
|
||||
|
||||
**Entscheidung (Betreiber, 31.10.2026):** Der KI-Host wird bewusst IPv4-only
|
||||
betrieben. IPv6 wird über die `host_baseline`-Rolle systematisch deaktiviert
|
||||
(`/etc/sysctl.d/99-ghostnet-disable-ipv6.conf` mit
|
||||
`net.ipv6.conf.all.disable_ipv6 = 1` und
|
||||
`net.ipv6.conf.default.disable_ipv6 = 1`).
|
||||
|
||||
**Anlass:** Während der ersten Modell-Downloads am 31.10.2026 hing der
|
||||
Ansible-`get_url`-Download auf dem Host minutenlang ohne TCP-Verbindung und
|
||||
ohne Datenträgeraktivität, obwohl dieselbe URL vom Host aus mit `wget -4` in
|
||||
Sekunden erreichbar war. Messungen dazu:
|
||||
|
||||
| Prüfung | Ergebnis |
|
||||
| --- | --- |
|
||||
| Host-Netzwerk | nur link-lokales IPv6 auf `enp8s0`; keine globale Adresse, keine IPv6-Default-Route |
|
||||
| Resolver des Hosts | Fritzbox `10.0.0.1` und `1.1.1.1` (der Host nutzt Pi-hole zu diesem Zeitpunkt nicht) |
|
||||
| AAAA-Antworten | Fritzbox, 1.1.1.1 und Pi-hole `10.0.0.14` liefern alle AAAA-Records; AAAA wird nirgends gefiltert |
|
||||
|
||||
Programme mit IPv6-Präferenz (wie Pythons `urllib`) laufen bei dieser
|
||||
Inkonsistenz aus AAAA-Antworten ohne nutzbare IPv6-Route in Timeouts oder
|
||||
Hänger; die 302-Weiterleitung der Hugging-Face-Downloads zum
|
||||
CloudFront-CDN traf genau darauf. Die Download-Rolle `model_store` erzwingt
|
||||
daher zusätzlich IPv4 (`wget -4`) und verifiziert die SHA-256 explizit.
|
||||
|
||||
**Einordnung:** Die Entscheidung beendet diesen Halbdual-Stack-Zustand
|
||||
zugunsten eines kohärenten IPv4-only-Betriebs. Sie erhält die dokumentierte
|
||||
Sicherheitseigenschaft „keine IPv6-Exposition" (GNAI-007 Offenpunkt O7,
|
||||
teilbestätigt am 31.10.2026) und entspricht dem bestehenden
|
||||
LAN-Betriebsmodell. Eine echte Dual-Stack-Einführung (Fritzbox-Präfix,
|
||||
Router Advertisements, Firewall-Regeln, neue Perimeter-Abnahme) bleibt ein
|
||||
eigener Netzwerk-Sprint und ist für den KI-Stack nicht erforderlich. Ein
|
||||
optionales Folgeziel ist die Umstellung des Host-Resolvers auf Pi-hole, um
|
||||
Split-DNS konsistent auch auf dem Host zu nutzen; das ist ein separater
|
||||
kleiner Schritt und kein Bestandteil dieser Entscheidung.
|
||||
|
||||
**Umsetzung:** `llm-server/host/ansible/roles/host_baseline` verwaltet die
|
||||
Drop-in-Datei, wendet sie bei Änderung über `sysctl --system` an und
|
||||
verifiziert den Laufzeitwert `net.ipv6.conf.all.disable_ipv6 = 1`. Ein
|
||||
zweiter Lauf muss `changed=0` melden.
|
||||
|
||||
Reference in New Issue
Block a user