Esta idea empezó hace algún tiempo, cuando desde ISN nos planteamos la posibilidad de disponer de un router en la nube que nos permitiese poder dar servicio a determinados clientes de una manera más profesional. Ahora bien, ¿Qué solución debemos implementar?, ¿Cómo hacerlo?. Estas fueron algunas de nuestras preguntas a la hora de llevar cabo esta tarea.

¿Qué solución llevar a cabo?

Una idea teníamos clara desde ISN, queríamos contar con un router Mikrotik virtualizado para esta tarea. Las razones son diversas: versatilidad de configuraciones, coste económico, y si me apuras, que ISN es un entusiasta de Mikrotik!

En ISN nos sentimos muy cómodos trabajando con Mikrotik en nuestro día a día, por lo que estamos muy familiarizados con todos sus productos. Además, impartimos cursos de formación de Mikrotik, para preparar a los alumnos en las diferentes certificaciones oficiales de Mikrotik como por Ejemplo: MTCNA (Mikrotik Certified Network Associate) de la cual estamos certificados. Si quieres más información ponte en contacto con info@isnum.com

Retomando por donde iba, nuestro siguiente punto a tratar era; ¿cuál sería el sistema operativo base?, es decir, dónde iba alojarse el router Mikrotik virtualizado. Hay varias opciones que nos permitirían llevarlo a cabo.., que a continuación os indicamos. Adelantamos, que no hay una solución mejor que otra, simplemente dependerá de cuál vaya a ser el uso que queramos darle, y de cuáles son nuestras necesidades reales.eales.

  • Sistema con entorno gráfico: Podemos utilizar cualquier programa de virtualización disponible del mercado, VirtualBox, HyperV (propio de sistemas operativos Microsoft), o de pago como VMware, que corra sobre un sistema anfitrión base ( Windows,Linux,etc..). Son soluciones muy cómodas en su mayoría, y ciertamente potentes (dependerá si son virtualizaciones de tipo de I, o II). Aunque, siempre «perdamos» un poco de capacidad de proceso por usar este tipo de programas de virtualización, no nos debe de importar demasiado. En general, los recursos que demanda un router Mikrotik no son excesivos.., y nos bastará con crear una máquina virtual con 256 MB de RAM, y un procesador lógico, para obtener un rendimiento aceptable, pero claro está dependerá de los usos que queramos darlo. El principal inconveniente de esta opción sería el propio gasto que se genera como consecuencia de la compra de una licencia de Windows, si es que optamos por Microsoft.

    En cuanto a la propia licencia de Mikrotik, puedes adquirirla a través de la página de mikrotik.com. Hay varias imágenes donde poder elegir. La licencia es de pago pero, puedes empezar usando licencias trial para probar
  • Sistema sin entorno gráfico: Aquí, la opción más clara es usar una distribución de tipo Linux: Debian, Ubuntu, etc. Ya adelantamos que esta fue nuestra elección. Eso sí, debemos de apoyarnos de un script para poder «convertir» una distribución Linux a un router mikrotik. Las ventajas en este caso son claras: mayor control sobre lo que estás haciendo a nivel de líneas de comando, y menor coste. El inconveniente, es que se debe tener unos conocimientos mínimos en sistema Linux (tampoco muchos).

¿Cómo llevarlo a cabo?

Una vez elegido el sistema operativo base, deberemos elegir cual será nuestro proveedor en la nube que mejor se adapte a nuestras necesidades.

Los pasos en nuestro caso, fueron los siguientes:

  • Primero elegir qué empresa vamos a optar para adquirir nuestro VPS (virtual private server). En nuestro caso, optamos por un servidor en OVH. Esto no responde a un criterio exclusivamente técnico. Para nosotros OVH, es un entorno cómodo y a nuestro parecer es una de las mejores soluciones del mercado. Hay varias opciones dentro del VPS, y serán tanto o más caras en función de las características técnicas que elijas.
  • Una vez escogido el VPS, el siguiente paso es escoger la distribución que deseas, y en nuestro caso fue un Ubuntu 19.10. Normalmente, hay varias versiones dentro de una misma distribución, porque dependiendo de qué es lo que vayas hacer, existen problemas de compatibilidad. No obstante, y siempre que se pueda, es preferible escoger la última versión para evitar problemas de seguridad, y ganar en estabilidad. Una vez hecho esto, nos llegará a nuestro correo la dirección IP del servidor, usuario y contraseña para acceder a nuestro VPS.
  • Una vez autentificados en el servidor, debemos de crear un fichero con el siguiente comando «vi script.sh «, y dentro escribiremos la siguiente configuración:

wget https://download.mikrotik.com/routeros/6.44.6/chr-6.44.6.img.zip -O chr.img.zip && \
gunzip -c chr.img.zip > chr.img && \
mount -o loop,offset=512 chr.img /mnt && \
ADDRESS=ip addr show esn3 | grep global | cut -d' ' -f 6 | head -n 1 && \
GATEWAY=ip route list | grep default | cut -d' ' -f 3 && \
echo «/ip address add address=$ADDRESS interface=[/interface ethernet find where name=ether1]
/ip route add gateway=$GATEWAY
/ip service disable telnet
/user set 0 name=root password=xxxxxx
» > /mnt/rw/autorun.scr && \
umount /mnt && \
echo u > /proc/sysrq-trigger && \
dd if=chr.img bs=1024 of=/dev/sda && \
echo «sync disk» && \
echo s > /proc/sysrq-trigger && \
echo «Sleep 5 seconds» && \
sleep 5 && \
echo «Ok, reboot» && \
echo b > /proc/sysrq-trigger

NOTA: Debemos de fijarnos bien en tres puntos de este script ya que, puede variar según cada caso.

  • En primer lugar, debemos de fijarnos en el nombre de nuestro disco. Para ello, podemos usar el comando «lsblk». En nuestro caso, era sda pero podría ser diferente como por ejemplo: xvda. En caso de ser diferente, debemos de cambiarlo en la siguiente línea dd if=chr.img bs=1024 of=/dev/sda && \
  • Fijarnos en el nombre del interface de red de nuestro vps. Para ello, usaremos el comando «ip addr show». En nuestro caso, era esn3 pero, igual que en el anterior punto, puede ser diferente. La línea donde debemos de cambiarlo es ADDRESS=ip addr show esn3 | grep global | cut -d' ' -f 6 | head -n 1 && \
  • Por último, podemos cambiar el enlace con la versión del RouterOS. Cuanto más actual mejor.

Una vez hechas estas consideraciones, podemos proceder a ejecutar el comando con el script que hemos hecho. El comando es «bash script.sh». Sí todo ha ido bien el servidor se reiniciará y, a partir de ese momento tendremos un router Mikrotik totalmente gestionable por nosotros mismos. Podremos gestionarlo desde la consola de comando y, también desde la herramienta por antonomasia para gestionar este tipo de router como es el winbox ( https://mikrotik.com/download )o de router como es el winbox ( https://mikrotik.com/download )

Importante: Una vez reiniciado el vps, el usuario y password serán los que por defecto hemos creado en la configuración del script (root/xxxxxx). En este punto, es muy recomendable que una vez hayamos entrado al dashboard del Mikrotik, realizar un bastionado del router, ya que por defecto viene con todos los servicios abiertos. Además, también es conveniente crear un nuevo usuario con privilegio de administrador, y dejar el existente como solo lectura o, incluso, eliminarlo. Esto último, podrás hacerlo desde el menú izquierdo System/users.

Bueno, aquí acabamos este post, esperamos que os haya gustado y os sirva para todas aquellas personas que tengan duda a la hora de implementar una solución de este tipo.

¡Muchas gracias!

Soporte ISN

¿Hablamos?

Si necesitas información acerca de nuestros servicios o quieres conocernos en persona, por favor, no dudes en ponerte en contacto con nosotros. Primera visita al cliente sin coste ni compromiso. Estaremos encantados de poder ayudarte.