Configuración de router Mikrotik - Capítulo 3
Instalación de contenedores docker
Vamos a instalar docker en nuestro router, para ello:
- veremos que esté en una version por encima de la 7.5 de router OS y que nuestro equipo tenga arquitectura arm, arm64 o x64. Lo comprobaremos entrando a nuestro Mikrotik por winbox, en el menú pulsaremos en new terminal y escribiremos /system resource print o yendo al menú lateral y pulsando en system y después en resources
- nos vamos a la pagina de descarga de mikrotik https://mikrotik.com/download y nos descargamos el paquete de software extra acorde a la arquitectura del procesador de nuestro equipo. En mi caso para la arquitectura ARM
- descomprimimos el archivo zip y buscamos el paquete llamado container
- Arrastramos hasta la venta de winbox y lo soltamos y debemos de ver una ventana tal que así
- para instalar el paquete, abrimos un terminal en winbox y escribimos /sys reboot y confirmamos con Y y al reiniciarse, ya tendremos instalado docker en nuestro equipo
- Cuando nuestro equipo se haya reinciado, veremos que ya tenemos un botón nuevo en nuestro menú lateral, llamado Container
- Ahora autorizamos el modo de uso de Container mediante el comando /system/device-mode/update container=yes y nos pedirá que pulsemos en botón físico de reset en nuestro equipo para confirmar. Los hacemos con una pulsación simple. Una vez reiniciado todo estará 100% funcional.
Debido a que los equipos que no son profesionales, no tienen capacidad de poner almacenamiento en sun interior y debido a la poca memoria que tienen los routers, necesitamos pornerle un dispositivo de almacenamiento adicional a nuestro equipo.
Para ello, si tu equipo tiene entrada USB, podemos ponerle un pendrive y debemos formatearlo en EXT3 o EXT4. Lo podemos hacer desde nuestro equipo del siguiente modo.
- Introducimos el pendrive en nuestro equipo
- Vamos a System y luego a Disks y pulsamos en este último
- Seleccionamos nuestro pendrive y le damos a Format Drive
- En la ventana que se nos abre, abrimos el desplegable y seleccionamos EXT4 y pulsamos en Start
Esperamos a que se formatee y ya estaremos listo para empezar con la instalación de contenedores.
Configuración de una red virtual para nuestro contenedor
Para hacer esto, vamos a crear un nuevo bridge para nuestros dockers. Para ello nos vamos a bridge, apretamos en el símbolo + y le damos el nombre de dockers y la guardamos con OK
Damos un rango de red a nuestro bridge, entrando en IP -> Addresses y poniendo el rango de la red y seleccionando en el desplegable la interface dockers. Confirmamos con OK
Ahora creamos la ethernet virtual para nuestro contenedor. Para elllo vamos a Interface y en la pestaña VETHpulsamos en +
En el cuadro, vamos a dar una dirección a nuestra ethernet virtual que será la primera IP disponible, en mi caso he puesto la 10.0.0.2/24 y en gateway ponemos la direccion de nuestra subred creada, es decir en mi caso, 10.0.0.1. Confirmamos con OK.
Y ahora la asignamos como puerto a nuestro bridge. Para ello vamos a Bridge seleccionamos la pestaña Ports y pulsamos en +
En interface, seleccionamos la VETH creada, y en Bridge seleccionamos el de dockers creado anteriormente. Confirmamos con OK
Si queremos asegurarnos que está funcionando, podemos pulsar sobre New Terminal y escribir ping 10.0.0.2 Nos debe dar ping. Salimos con Control + C
Y por último creamos una regle de NAT para darle internet a los contenedores. Para ello vamos a IP -> Firewall nos vamos a la pestaña de NAT y pulsamos en +
Y vamos configurando las siguientes opciones. En Src Address ponemos la red que hemos creado para los dockers, en mi caso 10.0.0.0/24, pulsamos en la pestaña de Action y despeglamos su menú para seleccionar masquerade
Configurando pihole
Vamos a proceder a instalar pihole como bloqueador de publicidad.
Para ello y como paso previo vamos a configurar las variables que nos interesan. Pulsamos en container y dentro de la ventana que se nos abre, vamos a ir a la pestaña Envs
Añadiremos las tres que necesitamos que van a ser:
- la zona horaria, mediante TZ y ponemos Europe/Madrid
- el password, mediante WEBPASSWORD y le damos un valor superseguro.
- y por último el usuario, mediante DNSMASQ_USER y le damos nuestro usuario que queramos
Estas variables las identificaremos mediante el nombre pihole_envs
Ahora procedemos al mapeo de las carpetas para mantener las configuraciones. Para ello nos vamos a la pestaña de Mounts y añadimos en este caso las dos que nos hacen falta.
Al igual que hacemos en nuestro NAS, por ejemplo en el Synology, tendremos que configurar una ruta de origen, que será nuestro pendrive; y una ruta de destino, que será la carpeta mapeada del contenedor.
Tenemos que mapear dos carpetas del contenedor en este caso, como son la carpeta /etc/dnsmasq.d y la carpeta /etc/pihole
Pulsaremos en + y en la ventana que nos sale damos un nombre, y la ruta de destino
¿Y la ruta de origen? Pues si vemos cuando formateamos el pendrive, vemos que nos creó un slot que se llama usb1-part1 así que nuestra ruta de origen será /usb1-part1/etc-dnsmasq.d para la primera ruta a mapear y /usb1-part1/etcpara la segunda
Por último, tenemos que configurar de dónde se traen las imágenes de docker y dónde queremos que se guarden para que no ocupen espacio en nuestro mikrotik, que es algo que es escaso.
Para ello, vamos a la pestaña Container y pulsamos sobre el botón Config
En Registry URL le ponemos la siguiente direccion https://registry-1.docker.io y creamos una carpeta para la descarga de estas imágenes en el directorio Tmp dir que en mi caso va a ser una carpeta del pendrive que llamaré pull. Pulsamos en OK
Por ultimo dentro de la pestaña Container pulsamos en + para, esta vez sí, iniciar la instalación del contenedor.
En esta pestaña tenemos que rellenar:
- la imagen del contenedor (si no la sabemos la buscamos en https://hub.docker.com). En este, la imagen es pihole/pihole:latest
- En interface la Veth que habiamos creado
- En Envlist el nombre que le dimos a las variables creadas en Envs, en nuestro caso pihole_envs
- Bajamos hasta Root Dir donde tenemos que poner la carpeta que vamos a crear en el pendrive, en este caso /usb1-part1/pihole
- En Mounts seleccionamos nuestra primera ruta de mapeo creada y pulsamos en el icono de añadir otra y ponemos la segunda.
Y al pulsar sobre Apply el Status debe cambiar de none a extracting y cuando termine a stopped
Pulsamos en OK, seleccionamos nuestro contenedor y pulsamos en Start
Ya está funcionando, ¿cómo lo sé? Pues me voy a la web de administración, en mi caso 10.0.0.0.2:80/admin e introduzco la contraseña.
Si todo está correcto ya solo que da configurarlo.
Mi nombre es David Rodríguez, apasionado por un millón de cosas que lleven placas y chips dentro. Puedes encontrarme como @_Bilito en twitter y en grupo de Telegram de Synology NAS https://t.me/synologyNAS Tengo un canal de youtube que complementa al blog https://www.youtube.com/@_Bilito y que me harías un gran favor si te subscribes. También colaboro en podcast como Bateria 2x100 https://pod.link/1115144939 y además hemos comenzado otra aventura en otro podcast Detras del Mostrador https://pod.link/1657695301