Configuración del cliente VPN WireGuard en Mikrotik RouterOS
Cómo configurar MikroTik RouterOS como cliente VPN de WireGuard
Esta guía describe cómo configurar Mikrotik RouterOS como cliente para conectarse a un servidor WireGuard VPN. Antes de nada, debes tener en cuenta que la opción con la configuración de WireGuard en RouterOS está disponible desde la versión RouterOS 7.0. Puedes comprobar la versión actual de tu RouterOS a través de la interfaz web del router o con el programa WinBox.
- Puedes comprobar la versión actual de RouterOS en System - RouterBOARD - Upgrade Firmware.

Si la versión de RouterOS es inferior a la 7, debes actualizar el dispositivo a la versión actual.
Enlaces de interés:
- Tras verificar/actualizar a RouterOS 7, debes descargar la configuración de WireGuard. Selecciona el pedido VPN deseado en el área de cliente y descarga el archivo de configuración.

- El archivo descargado tendrá un nombre similar a fnx-wg-79224.conf y contendrá lo siguiente:

- El siguiente paso es cargar el archivo de configuración en el dispositivo.
Selecciona el menú Files - Upload e indica el archivo de configuración que deseas subir.


El archivo de configuración cargado aparecerá en la lista de archivos del dispositivo.

Pasamos ahora a la importación de la configuración WireGuard y a la configuración necesaria para enrutar correctamente el tráfico a través de la conexión VPN.
1. Importación de la configuración WireGuard.
- Ve al menú WireGuard, selecciona WG Import, elige tu configuración WG en la lista desplegable y haz clic en el botón WG Import.

- Tras importar la configuración correctamente, WireGuard mostrará Interface y Peer ya configurados.


- También se asignará una dirección IP a la interfaz creada.

2. Creación de la tabla de enrutamiento para los paquetes marcados del tráfico VPN WireGuard.
Por defecto, RouterOS utiliza la tabla de enrutamiento «main» para añadir rutas al FIB (Forwarding Information Base, la base de información de reenvío usada para tomar decisiones sobre el envío de paquetes y que contiene una copia de la información de enrutamiento necesaria).
Necesitaremos una tabla de enrutamiento personalizada, que debe definirse en el menú Routing-Tables para añadir las rutas WireGuard al FIB.
Ve al menú Routing-Tables, pulsa +, rellena el campo Name con el valor wg_mark y asegúrate de marcar la casilla FIB.

3. Creación de listas de direcciones y reglas de marcado de paquetes para el enrutamiento WireGuard VPN.
Para el enrutamiento marcado de la interfaz WireGuard es necesario crear Address Lists que utilizará WireGuard VPN y una regla de marcado de paquetes (Mangle). Estas variarán según la forma en que desees tunelizar el tráfico VPN:
- Si quieres tunelizar todo el tráfico VPN — sigue el punto 3.1 (todos los sitios se abrirán a través de la VPN).
- Si necesitas un tunelizado selectivo, por ejemplo para eludir restricciones de acceso a algunos sitios — sigue el punto 3.2.
3.1 Tunelizado completo del tráfico VPN WireGuard en Mikrotik.
Ahora prepararemos la lista de direcciones que usarán WireGuard. En el caso del tunelizado completo, es necesario especificar la IP de la red local del router para que todos los dispositivos conectados a ella usen WireGuard VPN para acceder a los sitios.
Ve a IP-Firewall-Address Lists y pulsa +, luego rellena los campos Name y Address. En el campo Name escribe full_wg, en el campo Address introduce la dirección IP de la red local del router (192.168.88.0/24 por defecto). Haz clic en OK.

Añade una regla de marcado de paquetes yendo a IP-Firewall-Mangle, haz clic en +, luego rellena los campos Chain, Src Address List, Action, New Routing Mark y haz clic en OK.


3.2 Tunelizado selectivo del tráfico VPN WireGuard en Mikrotik.
Para el tunelizado selectivo, deberás crear nuevas listas de direcciones en IP-Firewall-Address Lists de forma similar al punto 3.1. En estas listas debes especificar los nombres de los sitios o sus direcciones IP a los que accederás a través de la VPN. Mikrotik reconoce automáticamente las direcciones de los sitios indicados y añade (actualizando al expirar el TTL) sus IPs en las Address Lists.
Ve a IP-Firewall-Address Lists y pulsa +, luego rellena los campos Name y Address. En el campo Name escribe block_wg, en el campo Address introduce el nombre del sitio de interés o su dirección IP. Haz clic en OK.
Para otros sitios en las nuevas listas, deberás especificar el mismo Name que para el primero, pero rellenar Address con un nombre de sitio o IP diferente.

Añade una regla de marcado de paquetes yendo a IP-Firewall-Mangle, haz clic en +, luego rellena los campos Chain, Dst Address List, Action, New Routing Mark y haz clic en OK.


Tras seguir la guía hasta el final, comprueba tu VPN en https://2ip.io/ — mostrará la dirección IP de tu servidor, ya que este recurso fue incluido en la lista mencionada. Si abres https://whoer.net/ru, whoer mostrará tu IP real.
Si el sitio bloqueado sigue sin abrirse, añade dos entradas en la lista de direcciones para el mismo sitio: una con www. y otra sin www.
4. Creación de una regla de enrutamiento para WireGuard VPN.
Crea una nueva regla de enrutamiento para la interfaz WireGuard con la tabla de enrutamiento creada anteriormente (sección 2.3).
Para ello, ve a IP-Routes, pulsa +, luego rellena los campos Gateway, Distance, Routing Table.

También debes reducir la prioridad del cliente DHCP predeterminado.
Para ello, ve a IP-DHCP Client, selecciona la entrada del cliente DHCP existente, cambia el valor del campo Add Default Route a Special Classless y establece el valor Default Route Distance = 2 en la pestaña Advanced.


Habilitación de la conexión WireGuard VPN en Firewall-NAT.
Por defecto, el Firewall no gestiona la conexión de la interfaz WireGuard: debes añadir manualmente una regla de masquerade.
Para ello, ve a IP-Firewall-Nat, haz clic en +, luego rellena los campos Chain, Out. Interface, Action y haz clic en OK.


5. Añadir la interfaz WireGuard a la lista WAN.
Ve a Interface - Interface list.

La configuración de WireGuard en RouterOS ha finalizado. Comprueba tu conexión VPN en https://whoer.net/ru o https://2ip.io/
6. Fix de MTU para Mikrotik WireGuard (mss clamp to pmtu).
Si tu Mikrotik con WireGuard instalado abre los sitios lentamente o directamente no abre algunos, debes establecer el valor de MTU correcto (¿cómo determinar el tamaño óptimo de MTU?), o puedes utilizar el fix de MTU.
Info
¡Usa este punto solo en caso de problemas graves con la carga de sitios!
Abre la consola de Mikrotik haciendo clic en New Terminal.

Ejecuta el siguiente comando:
/ip firewall mangle
add action=change-mss chain=forward new-mss=clamp-to-pmtu out-interface=wg1 protocol=tcp tcp-flags=syn
Reinicia Mikrotik pulsando el botón Reboot y luego Yes. También puedes usar el comando /system reboot en el terminal.
Se añadirá la siguiente regla IP-Firewall-Mangle, que soluciona el problema de WireGuard lento e inestable en Mikrotik.

Info
Si tienes dificultades con la configuración o tienes preguntas adicionales, siempre puedes contactar con nuestro equipo de soporte a través del sistema de tickets.