Serie completa: Índice · Parte 1 · Parte 2 · Parte 3 · Parte 4
Referencia de comandos: Cheatsheet RouterOS — Proyecto ax³
Introducción
En la Parte 3 dejamos el hAP ax³ funcionando con un túnel WireGuard apuntando a un servidor de ProtonVPN en Barcelona. En esta cuarta y última parte, vamos a levantar un segundo túnel simultáneo hacia Marsella y usaremos Address Lists para enrutar el tráfico por dispositivo.
Este enfoque no solo nos permite organizar la red de forma granular, sino que separa una configuración doméstica de una infraestructura profesional: podremos añadir decenas de dispositivos y cambiar su país de salida con un solo clic, sin tocar el firewall.
Copia de seguridad
/system backup save name=ax3-dual-20261024-vpn-marsella-barcelona-OK /export compact file=ax3-dual-20261024-vpn-marsella-barcelona-OK
Fase 8 — El desafío del doble túnel
Configurar dos túneles VPN simultáneos hacia el mismo proveedor (ProtonVPN) nos obligará a sortear tres problemas que, si no se controlan, romperán la red:
- Conflicto de IP interna: ProtonVPN asigna la misma IP interna a todos los perfiles (ej.
10.2.0.2/32). - Conflicto de puerto: Dos interfaces WireGuard no pueden usar el mismo puerto de escucha local.
- El bucle del retorno: El tráfico de vuelta del nuevo túnel viene desde una subred interna (
10.3.0.0/24) que debe ser excluida del enrutamiento.
Paso 1 — Preparar el perfil de Marsella
Descarga el archivo WireGuard de ProtonVPN para Marsella y edítalo con un editor de texto:
# Original Address = 10.2.0.2/32 # Modificado Address = 10.3.0.2/32
Paso 2 — Importar y ajustar la interfaz
En WinBox, ve a WireGuard → Interface → + → Import from file y selecciona el archivo de Marsella.
- Name:
proton-vpn-marsella - Listen Port:
13232(distinto al 13231 de Barcelona). - MTU:
1380(ajustado para evitar fragmentación).
Paso 3 - Tabla de enrutamiento personalizada con FIB activado
El parámetro fib es fundamental para que las rutas de esa tabla se instalen en el Forwarding Information Table y el tráfico realmente se enrute.
/routing table add name=via-vpn-marsella fib
Paso 4 - Crear la tabla de rutas y el Kill Switch
/ip route add dst-address=0.0.0.0/0 gateway=proton-vpn-marsella routing-table=via-vpn-marsella distance=1 comment="Salida por Marsella" /ip route add dst-address=0.0.0.0/0 blackhole=yes routing-table=via-vpn-marsella distance=2 comment="Kill switch Marsella"
Paso 5 - El detalle de oro: Excluir la red interna del túnel
/ip firewall address-list add list=lan-directa address=10.3.0.0/24 comment="Red interna Marsella"
Paso 6 - Reglas de Firewall y NAT
# NAT (Masquerade para Marsella) /ip firewall nat add chain=srcnat action=masquerade src-address=192.168.88.0/24 out-interface=proton-vpn-marsella comment="NAT para Marsella" # Filter (Permitir LAN a Marsella) /ip firewall filter add chain=forward in-interface-list=LAN out-interface=proton-vpn-marsella action=accept comment="Permitir LAN a VPN Marsella" place-before=[find comment="Drop todo lo dems"]
Paso 7 - Address Lists y Mangle (La magia)
En lugar de reglas individuales, agrupamos los dispositivos en listas:
# Lista para Marsella /ip firewall address-list add list=vpn-marsella address=192.168.88.100 comment="pc100" add list=vpn-marsella address=192.168.88.101 comment="movil101" add list=vpn-marsella address=192.168.88.102 comment="tablet102" add list=vpn-marsella address=192.168.88.103 comment="portatil103" # Lista para Barcelona /ip firewall address-list add list=vpn-barcelona address=192.168.88.201 comment="portatil201" add list=vpn-barcelona address=192.168.88.202 comment="movil202" add list=vpn-barcelona address=192.168.88.203 comment="movil203"
Y creamos las reglas genéricas de Mangle (Marcar primero, Enrutar después):
# --- MARSELLA --- /ip firewall mangle add chain=prerouting src-address-list=vpn-marsella in-interface=bridge action=mark-connection new-connection-mark=conn-marsella passthrough=yes comment="Mangle: Marcar lista Marsella" /ip firewall mangle add chain=prerouting connection-mark=conn-marsella action=mark-routing new-routing-mark=via-vpn-marsella passthrough=no comment="Mangle: Enrutar lista Marsella" # --- BARCELONA (ESPAÑA) --- /ip firewall mangle add chain=prerouting src-address-list=vpn-barcelona in-interface=bridge action=mark-connection new-connection-mark=conn-barcelona passthrough=yes comment="Mangle: Marcar lista Barcelona" /ip firewall mangle add chain=prerouting connection-mark=conn-barcelona action=mark-routing new-routing-mark=via-vpn passthrough=no comment="Mangle: Enrutar lista Barcelona"
Address Lists funcionan
buscando la IP del dispositivo. Si el servidor DHCP de tu router le asigna mañana
una IP diferente al dispositivo (ej. pasa de la .100 a la .105), las reglas de Mangle no
lo reconocerán y se saltará la VPN.
Obligatorio: Ve a
IP → DHCP Server → Leases, busca los
dispositivos de tus listas, haz clic derecho y selecciona "Make Static"
(o usa el comando /ip dhcp-server lease make-static [find]). Así te
aseguras de que su IP nunca cambie y el enrutamiento sea siempre perfecto.
Paso 8 - Ajustar el MSS (Crucial para el rendimiento)
/ip firewall mangle add chain=forward protocol=tcp tcp-flags=syn out-interface=proton-vpn-marsella action=change-mss new-mss=1340 passthrough=yes comment="MSS para tunel Marsella (MTU 1380)"
Paso 9 - Limpiar conexiones y probar
/ip firewall connection remove [find src-address~"192.168.88.10"] /ip firewall connection remove [find src-address~"192.168.88.20"]
Comandos de verificación (El "Checklist" del Administrador)
Para asegurarte de que todo está fluyendo correctamente, ejecuta estas comprobaciones en el MikroTik:
# 1. ¿Los túneles están vivos y con handshake reciente? /interface wireguard peers print detail # 2. ¿Puede el router hacer ping a través de Marsella? (Debe ser 0% packet-loss) /ping 1.1.1.1 interface=proton-vpn-marsella count=3 # 3. ¿Está la tabla de rutas de Marsella activa y con su Kill Switch? /ip route print where routing-table=via-vpn-marsella # 4. ¿Están los dispositivos generando tráfico y con la marca correcta? /ip firewall connection print where src-address~"192.168.88.10" # (Fíjate en la columna CONNECTION-MARK: debería decir conn-marsella) # 5. ¿Están subiendo los contadores de las reglas de Mangle? /ip firewall mangle print stats
Resolución de problemas (Lo que aprendimos a golpes)
Si el túnel se levanta pero los dispositivos no tienen Internet, revisa estos cinco puntos:
- El "Peer Fantasma": Si al importar el archivo se creó una interfaz con un asterisco (ej.
*D) o un peer duplicado con la misma clave pública, el túnel se volverá loco y perderá paquetes. Elimina cualquier peer que no corresponda con su interfaz./interface wireguard peers remove [find name="peerX"]
- El conflicto de IP: Comprueba en
/ip address printque no existe ninguna interfaz llamadaunknown. Si existe, bórrala:/ip address remove [find interface=unknown]. - El firewall bloquea el retorno: Asegúrate de que tienes la regla de accept para
out-interface=proton-vpn-marsellaantes del Drop general en la cadenaforward. - El DNS: Si el ping por IP funciona pero las webs no cargan, es un problema de DNS. Asegúrate de que el dispositivo usa Pi-Hole (
192.168.88.244) y que el tráfico hacia esa IP no está siendo enrutado por error hacia la VPN (la reglalan-directalo evita). - Las IPs han cambiado: Si de repente un dispositivo deja de ir por la VPN, comprueba en
IP → DHCP Server → Leasesque sigue teniendo la misma IP que pusiste en la Address List. Si no lo hiciste en su momento, haz clic derecho y selecciona "Make Static".
El flujo de trabajo para alternar países
La ventaja de las Address Lists es que el cambio es instantáneo. Para pasar un dispositivo de Marsella a Barcelona:
- Ve a
IP → Firewall → Address Lists. - Busca su IP y cambia la columna
Listdevpn-marsellaavpn-barcelona. - Borra su sesión en el router para forzar el cambio:
/ip firewall connection remove [find src-address~"192.168.88.100"]
/ip firewall mangle print
Flags: D - DYNAMIC
0 D ;;; special dummy rule to show fasttrack counters
chain=prerouting action=passthrough
1 D ;;; special dummy rule to show fasttrack counters
chain=forward action=passthrough
2 D ;;; special dummy rule to show fasttrack counters
chain=postrouting action=passthrough
3 ;;; evita problemas de fragmentacion de paquetes
chain=forward action=change-mss new-mss=1452 passthrough=yes tcp-flags=syn protocol=tcp out-interface=pppoe-o2 log=no
log-prefix=""
4 ;;; No marcar Trafico LAN
chain=prerouting action=return dst-address-list=lan-directa log=no log-prefix=""
5 ;;; Mangle: Marcar lista Barcelona
chain=prerouting action=mark-connection new-connection-mark=conn-barcelona passthrough=yes src-address-list=vpn-barcelona
in-interface=bridge
6 ;;; Mangle: Marcar lista Marsella
chain=prerouting action=mark-connection new-connection-mark=conn-marsella passthrough=yes src-address-list=vpn-marsella
in-interface=bridge
7 ;;; Mangle: Enrutar lista Marsella
chain=prerouting action=mark-routing new-routing-mark=via-vpn-marsella passthrough=no connection-mark=conn-marsella
8 ;;; Mangle: Enrutar lista Barcelona
chain=prerouting action=mark-routing new-routing-mark=via-vpn passthrough=no connection-mark=conn-barcelona
9 ;;; MSS para tunel WireGuard (MTU 1420)
chain=forward action=change-mss new-mss=1380 passthrough=yes tcp-flags=syn protocol=tcp out-interface=proton-vpn
10 ;;; MSS para tunel Marsella (MTU 1380)
chain=forward action=change-mss new-mss=1340 passthrough=yes tcp-flags=syn protocol=tcp out-interface=proton-vpn-marsella
Conclusión de la serie: Con esta cuarta parte, el hAP ax³ deja de ser un simple router doméstico y se convierte en un verdadero concentrador de enrutamiento avanzado. Hemos eliminado el doble NAT, montado un sistema de VPN multi-región por dispositivo con Address Lists, asegurado el DNS con Pi-Hole y Unbound, y añadido failover (Kill Switch) a cada túnel. Una infraestructura de red de nivel profesional, documentada paso a paso y con un plan de reversión en cada fase.
Serie: este artículo es la Parte 4 de Proyecto ax³. Viene de la Parte 3 — Monopuesto, VPN y corte final.FreeBSD es genial!.
Volver al índice de la serie · Cheatsheet RouterOS

No hay comentarios:
Publicar un comentario