routeros-qemu-chr
Ejecutar MikroTik RouterOS CHR en QEMU
MikroTik RouterOS CHR proporciona un router virtual completo para pruebas y desarrollo, pero la configuración requiere navegar por las opciones de QEMU, los controladores VirtIO y las configuraciones de firmware. Esta habilidad proporciona orientación completa para ejecutar CHR con aceleración, configuración adecuada de VirtIO e integración con la API REST.
Descargar el ZIP de la skill
Subir en Claude
Ve a Configuración → Capacidades → Skills → Subir skill
Activa y empieza a usar
Pruébalo
Usando "routeros-qemu-chr". Boot CHR with KVM acceleration and REST API on port 9180
Resultado esperado:
QEMU se inicia con aceleración de hardware. RouterOS arranca en ~5 segundos. Respuesta HTTP 200 de http://127.0.0.1:9180/ confirma disponibilidad. API REST accesible en http://127.0.0.1:9180/rest/ con credenciales admin.
Usando "routeros-qemu-chr". Enable KVM on GitHub Actions Ubuntu runner
Resultado esperado:
Regla udev creada en /etc/udev/rules.d/99-kvm4all.rules. Permisos de dispositivo KVM actualizados a 0666. QEMU abre /dev/kvm exitosamente para aceleración de hardware. Tiempo de arranque reducido de ~30s a ~5s.
Usando "routeros-qemu-chr". Configure port forwarding for RouterOS services
Resultado esperado:
Puertos de host mapeados: 9180→80 (API REST), 9122→22 (SSH), 9728→8728 (API), 9729→8729 (API-SSL), 9291→8291 (WinBox). Servicios accesibles desde el host mediante puertos localhost.
Auditoría de seguridad
Riesgo bajoDocumentation 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.
Problemas de riesgo alto (4)
Problemas de riesgo medio (3)
Problemas de riesgo bajo (2)
Factores de riesgo
⚙️ Comandos externos (3)
🌐 Acceso a red (2)
📁 Acceso al sistema de archivos (2)
Puntuación de calidad
Lo que puedes crear
Pruebas automatizadas de API REST de RouterOS en CI
Ejecutar RouterOS CHR como fixture de prueba en CI para validar llamadas a la API REST, generar esquemas RAML y probar configuraciones YAML de /app sin configuración manual del router.
Entorno de desarrollo y aprendizaje
Iniciar una instancia CHR con licencia gratuita para explorar características de RouterOS, probar reglas de firewall, experimentar con bridging y aprender conceptos de redes sin hardware de producción.
Pruebas multi-arquitectura
Probar configuraciones de RouterOS en arquitecturas x86_64 y aarch64 usando QEMU con firmware apropiado (SeaBIOS para x86, UEFI para ARM) y opciones de aceleración.
Prueba estos prompts
Ayúdame a configurar RouterOS CHR en QEMU. Necesito descargar la imagen estable más reciente e iniciarla con aceleración KVM y el puerto 9180 para la API REST.
Escribe un workflow de GitHub Actions que descargue RouterOS CHR, lo inicie con KVM si está disponible (con fallback a TCG), espere el arranque y luego ejecute pruebas de API REST.
Configura QEMU para iniciar RouterOS CHR aarch64 en macOS Apple Silicon. Incluye la configuración de pflash UEFI y la configuración explícita del dispositivo virtio-blk-pci.
RouterOS CHR falla al iniciar con una pantalla en blanco. La imagen de disco usa if=virtio en aarch64. ¿Qué podría estar mal y cómo lo soluciono?
Mejores prácticas
- Usar -device virtio-blk-pci explícito en lugar de atajo if=virtio en aarch64 para evitar la trampa MMIO que causa fallos de arranque silenciosos
- Verificar la escritura en /dev/kvm (no solo la existencia) antes de habilitar KVM, y siempre hacer fallback a TCG correctamente en caso de que KVM no esté disponible
- Usar patrones de reenvío de puertos como tcp::9180-:80 en lugar de codificar IPs localhost para hacer la configuración portable y reutilizable
Evitar
- No usar if=virtio en arquitectura aarch64 - esto se resuelve como MMIO que RouterOS no soporta, causando fallos de arranque silenciosos
- No omitir la verificación de permisos de KVM - /dev/kvm puede existir pero no ser legible, y QEMU no hace fallback silencioso a TCG en errores de permiso
- No usar git pull && git push en builds CI concurrentes - usar el patrón retry-with-rebase para evitar rechazos de push por condiciones de carrera