Contenedores y ROSE-storage en RouterOS: el router como servidor de aplicaciones

RouterOS no es solo un router. Con el paquete container y ROSE-storage, se convierte en un servidor de aplicaciones que puede correr prácticamente lo que necesites.

Si venís del mundo de los routers tradicionales, la idea de ejecutar Pi-hole, Grafana o un servidor web directamente en tu MikroTik puede sonar extraña. Pero RouterOS v7 lo soporta de forma nativa, y con el paquete ROSE-storage, las posibilidades se disparan.

Dos piezas, un sistema

Container (/container) es la implementación de contenedores Linux de MikroTik. Compatible con imágenes de Docker Hub, GCR, Quay y cualquier registro OCI. No usa Docker Engine — RouterOS tiene su propio runtime, pero el resultado es el mismo: descargás una imagen, la ejecutás, y tenés tu aplicación corriendo.

ROSE-storage (RouterOS Enterprise) agrega funcionalidad de data center: iSCSI (initiator y target), NVMe-over-TCP, NFS v4, RAID (0, 1, 5, 10), cifrado de discos, sistemas de archivos Btrfs y XFS, y rsync. Compatible con arquitecturas arm, arm64, x86 y tile.

El requisito fundamental: almacenamiento

Los contenedores necesitan disco. Las imágenes se descargan, se extraen, y generan datos. El asistente /app/setup pide un disco local formateado en ext4 o btrfs. Si tu MikroTik tiene USB, microSD, SATA o NVMe, lo detecta como usb1, disk1 o nvme1 y listo.

Pero, ¿y si tu equipo no tiene almacenamiento físico? Ahí entra ROSE-storage.

Discos remotos como discos locales: NVMe-over-TCP e iSCSI

Tanto NVMe-over-TCP como iSCSI son protocolos de bloque. Esto significa que el disco remoto aparece en /disk exactamente igual que un NVMe conectado físicamente. Lo formateás, lo montás, y el sistema de Apps lo usa sin saber que está a 10 metros (o a 10 kilómetros, aunque no lo recomendamos) de distancia.

NVMe-over-TCP es la opción preferida: más rápido, menor latencia, diseñado para storage moderno. Puerto TCP/4420.

iSCSI es el clásico: más compatible con equipos legacy y NAS tradicionales. Puerto TCP/3260.

NFS v4 también está soportado, pero es filesystem, no bloque. No sirve para instalar contenedores. Sí sirve para compartir archivos entre equipos.

Montando storage remoto paso a paso

Del lado del servidor (el que tiene el disco físico):

/disk set disk1 nvme-tcp-export=yes nvme-tcp-port=4420

Del lado del cliente (el MikroTik que va a correr los contenedores):

/disk nvme-discover 192.168.1.100
/disk add type=nvme-tcp nvme-tcp-address=192.168.1.100 nvme-tcp-name=disk1
/disk format disk1 file-system=ext4
/app/settings set disk=disk1

El disco remoto ya está listo. El App Setup Wizard lo detecta automáticamente y podés instalar aplicaciones del catálogo sin tocar una línea de YAML.

¿Qué aplicaciones podés correr?

El catálogo de /app incluye aplicaciones pre-configuradas por MikroTik. Pero también podés crear tus propios contenedores con un archivo YAML:

name: iperf3
descr: Alpine Linux container running iperf3 server
image: alpine:latest
cmd: "apk add iperf3 && iperf3 -s"
network: lan
ports:
  - "5201:5201:tcp"
  • Pi-hole: Filtrado DNS a nivel de red, sin instalar nada en los clientes.
  • Grafana + Prometheus: Dashboard de monitoreo para tu red, conectado a los datos de RouterOS vía SNMP o API.
  • Servidor web ligero (nginx, Caddy): Hosteás un sitio estático, un panel de estado, o una documentación interna.
  • Cloudflare Tunnel (cloudflared): Exponés servicios locales a Internet sin abrir puertos, con certificado SSL automático.
  • Home Assistant: Automatización del hogar/laboratorio corriendo directamente en el router.

Lo que necesitás saber antes de arrancar

  • Container mode requiere acceso físico al botón de reset la primera vez (por seguridad). Una vez habilitado, todo se gestiona remoto.
  • Rendimiento mínimo recomendado del disco: 100 MB/s secuencial, 10K IOPS aleatorio. Verificable con /disk test.
  • Para discos remotos, la latencia importa. NVMe-over-TCP en LAN funciona excelente. Sobre WAN o enlaces inalámbricos, la experiencia se degrada rápido.
  • Arquitecturas: container funciona en arm, arm64 y x86. Dispositivos con CPU EN7562CT (como el hEX Refresh) solo soportan imágenes arm32v5, lo cual limita mucho el catálogo.
  • La seguridad corre por tu cuenta. Un contenedor comprometido puede exponer el sistema operativo del router. Usá imágenes de fuentes confiables.

¿Qué equipo necesito?

Cualquier MikroTik con arquitectura arm64 o x86 que tenga almacenamiento local (USB, microSD, SATA, NVMe) o acceso a storage en red vía ROSE-storage. Modelos recomendados para empezar:

  • hAP ax³: USB + microSD, Wi-Fi 6, buena RAM. Ideal para Pi-hole + VPN + dashboard.
  • RB5009UG+S+IN: USB + microSD + puerto SFP+. Para cuando necesitás más potencia.
  • CCR2004 / CCR2116: NVMe interno o storage por red. Para setups pesados con múltiples contenedores.

Incluso un hAP be lite (que no tiene almacenamiento físico) puede correr contenedores montando un disco remoto por NVMe-over-TCP desde un NAS o un servidor Linux en la misma red. No es el camino más común, pero funciona.

RouterOS dejó de ser solo un sistema operativo de ruteo. Con containers y ROSE-storage, es una plataforma de servicios. La pregunta ya no es "¿qué router compro?", es "¿qué servicios necesito correr en mi red, y qué MikroTik los soporta?".