routeros-qemu-chr
MikroTik RouterOS CHR in QEMU ausführen
MikroTik RouterOS CHR bietet einen voll funktionsfähigen virtuellen Router für Tests und Entwicklung, aber die Einrichtung erfordert die Navigation durch QEMU-Optionen, VirtIO-Treiber und Firmware-Konfigurationen. Diese Skill bietet vollständige Anleitung für die Ausführung von CHR mit Beschleunigung, korrekter VirtIO-Einrichtung und REST-API-Integration.
Die Skill-ZIP herunterladen
In Claude hochladen
Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen
Einschalten und loslegen
Teste es
Verwendung von "routeros-qemu-chr". CHR mit KVM-Beschleunigung und REST-API auf Port 9180 booten
Erwartetes Ergebnis:
QEMU startet mit Hardware-Beschleunigung. RouterOS bootet in ca. 5 Sekunden. HTTP-200-Antwort von http://127.0.0.1:9180/ bestätigt die Bereitschaft. REST-API unter http://127.0.0.1:9180/rest/ mit Admin-Anmeldedaten zugänglich.
Verwendung von "routeros-qemu-chr". KVM auf GitHub Actions Ubuntu-Runner aktivieren
Erwartetes Ergebnis:
udev-Regel erstellt unter /etc/udev/rules.d/99-kvm4all.rules. KVM-Geräteberechtigungen auf 0666 aktualisiert. QEMU öffnet /dev/kvm erfolgreich für Hardware-Beschleunigung. Bootzeit von ca. 30s auf ca. 5s reduziert.
Verwendung von "routeros-qemu-chr". Port-Weiterleitung für RouterOS-Dienste konfigurieren
Erwartetes Ergebnis:
Host-Ports zugeordnet: 9180→80 (REST-API), 9122→22 (SSH), 9728→8728 (API), 9729→8729 (API-SSL), 9291→8291 (WinBox). Dienste über Localhost-Ports vom Host aus zugänglich.
Sicherheitsaudit
Niedriges RisikoDocumentation and reference skill for running RouterOS CHR in QEMU. Static analysis flagged 343 patterns, but evaluation reveals these are false positives: shell backtick notation in markdown code examples (not execution), sudo in GitHub Actions CI (expected), MD5 references in kernel history docs (not actual usage), and legitimate acceleration detection commands. All network access targets MikroTik infrastructure for downloading CHR images. Risk level set to LOW due to external command patterns in documentation examples, but no actual malicious code present.
Probleme mit hohem Risiko (4)
Probleme mit mittlerem Risiko (3)
Probleme mit niedrigem Risiko (2)
Risikofaktoren
⚙️ Externe Befehle (3)
🌐 Netzwerkzugriff (2)
📁 Dateisystemzugriff (2)
Qualitätsbewertung
Was du bauen kannst
Automatisierte RouterOS REST-API-Tests in CI
RouterOS CHR als CI-Test-Fixture ausführen, um REST-API-Aufrufe zu validieren, RAML-Schemata zu generieren und /app-YAML-Konfigurationen ohne manuelle Router-Einrichtung zu testen.
Entwicklungs- und Lernumgebung
Eine Free-Lizenz-CHR-Instanz booten, um RouterOS-Funktionen zu erkunden, Firewall-Regeln zu testen, Bridging zu experimentieren und Netzwerkkonzepte ohne Produktionshardware zu erlernen.
Tests für mehrere Architekturen
RouterOS-Konfigurationen auf sowohl x86_64- als auch aarch64-Architekturen mit QEMU testen, unter Verwendung geeigneter Firmware (SeaBIOS für x86, UEFI für ARM) und Beschleunigungsoptionen.
Probiere diese Prompts
Helfen Sie mir, RouterOS CHR in QEMU einzurichten. Ich muss das neueste stabile Image herunterladen und es mit KVM-Beschleunigung und Port 9180 für die REST-API booten.
Schreiben Sie einen GitHub Actions Workflow, der RouterOS CHR herunterlädt, es mit KVM bootet, wenn verfügbar (Fallback auf TCG), auf den Boot wartet und dann REST-API-Tests ausführt.
QEMU konfigurieren, um RouterOS CHR aarch64 auf macOS Apple Silicon zu booten. Einschließlich der UEFI-pflash-Einrichtung und expliziten virtio-blk-pci-Gerätekonfiguration.
RouterOS CHR bootet nicht mit einem leeren Bildschirm. Das Festplattenimage verwendet if=virtio auf aarch64. Was könnte falsch sein und wie behebe ich es?
Bewährte Verfahren
- Verwenden Sie explizites -device virtio-blk-pci anstelle von if=virtio-Abkürzung auf aarch64, um die MMIO-Falle zu vermeiden, die lautlose Boot-Fehler verursacht
- Überprüfen Sie die Schreibbarkeit von /dev/kvm (nicht nur die Existenz), bevor Sie KVM aktivieren, und fallen Sie immer graceful auf TCG zurück, falls KVM nicht verfügbar ist
- Verwenden Sie Port-Weiterleitungsmuster wie tcp::9180-:80 anstatt Localhost-IPs fest zu kodieren, um die Konfiguration portabel und wiederverwendbar zu machen
Vermeiden
- Verwenden Sie if=virtio nicht auf aarch64-Architektur - dies löst zu MMIO auf, was RouterOS nicht unterstützt und lautlose Boot-Fehler verursacht
- Überspringen Sie die KVM-Berechtigungsprüfung nicht - /dev/kvm existiert möglicherweise, ist aber nicht lesbar, und QEMU fällt bei Berechtigungsfehlern nicht lautlos auf TCG zurück
- Verwenden Sie git pull && git push nicht in gleichzeitigen CI-Builds - verwenden Sie das Retry-with-Rebase-Muster, um Push-Ablehnungen aus Race Conditions zu vermeiden