Marcio Cunha

Cómo configurar NAT y Hairpin NAT en routers MikroTik

Aprende a resolver problemas de acceso interno a servidores locales usando la IP pública de tu MikroTik con reglas de NAT y Hairpin NAT.

Marcio Cunha•5 min
También disponible en:PortuguêsEnglish
Resumen
  • El NAT tradicional traduce direcciones IP privadas locales a una dirección IP pública válida en internet.
  • El Hairpin NAT soluciona el fallo donde equipos internos no pueden acceder a un servidor local usando la IP pública del router.
  • La regla de Destination NAT redirige las conexiones entrantes en puertos públicos hacia la IP interna del servidor.
  • La regla de Source NAT enmascara el tráfico interno para que el servidor responda de vuelta directamente al router.
  • El orden correcto de las reglas de Firewall y NAT en MikroTik previene fallas de enrutamiento y cuellos de botella.

Por qué los equipos internos fallan al acceder a servidores locales

Quien administra redes corporativas o homelabs estructurados ya ha vivido la siguiente frustración: configurar un servidor web, de archivos o de base de datos en la red local, publicarlo a través del router usando una IP pública o dominio de DNS dinámico, y descubrir que todo funciona a la perfección para usuarios externos, pero falla rotundamente para cualquiera conectado a la misma red interna. En la práctica, cuando un ordenador de la empresa intenta acceder al servidor corporativo usando la dirección externa, la conexión simplemente expira. Este comportamiento ocurre porque los paquetes de datos salen hacia la IP pública, el router los reenvía a internet, pero el tráfico de retorno nunca se enruta correctamente de vuelta a la máquina de origen dentro de la misma subred.

Para entender el problema a fondo, conviene recordar cómo funciona la Traducción de Direcciones de Red tradicional. El router actúa como un traductor universal entre las IPs privadas internas y la IP pública proporcionada por el proveedor de internet. Cuando los paquetes salen hacia la web, el router reemplaza la IP emisora interna por su propia IP pública. Cuando llega la respuesta, invierte el proceso. Este mecanismo es vital para conservar direcciones IPv4, pero crea una trampa lógica cuando el origen y el destino de una conexión residen físicamente en la misma red local, obligando al router a procesar un tráfico que teóricamente no debería salir al exterior.

Qué es Hairpin NAT y cómo resuelve este problema

El Hairpin NAT, también conocido como NAT Reflection o Loopback NAT, resuelve exactamente esta anomalía de enrutamiento. En la práctica, obliga al router a tratar el tráfico que se origina en la red local y apunta a su propia IP pública como si viniera de internet, provocando una nueva traducción de direcciones. Sin esta regla configurada, el ordenador interno envía un paquete a la IP pública, el servidor lo recibe, pero nota que el emisor está en la misma red local y trata de responder directamente a la IP local del ordenador. El ordenador, que esperaba una respuesta de la IP pública consultada, descarta la conexión por un conflicto de paquetes.

Cuando aplicamos Hairpin NAT en MikroTik, el router intercepta este intento de acceso interno, alterando tanto la IP de destino como la IP de origen del paquete. Hace creer al servidor que la solicitud provino del propio router y, al responder, el router intercepta la respuesta de nuevo y la devuelve al cliente con la IP pública original. Así, la comunicación ocurre de forma transparente para ambos extremos, permitiendo utilizar exactamente el mismo dominio externo al trabajar desde casa, un café o la oficina. Para profundizar en el comportamiento de paquetes y diagnósticos avanzados, vale la pena revisar la guía técnica sobre cómo reflejar tráfico de red con RSPAN y Wireshark, esencial para inspeccionar el flujo exacto en la capa de enlace.

Paso a paso para crear reglas de Destination NAT

Antes de implementar Hairpin NAT, debemos asegurar que el reenvío de puertos clásico, conocido como Destination NAT o dst-nat, funcione correctamente para el tráfico de internet. Esta regla le indica a MikroTik qué hacer cuando un paquete llega a un puerto público. Usemos como ejemplo práctico la publicación de un servidor web interno que escucha en el puerto 443 con IP privada 192.168.10.50. En la terminal de MikroTik RouterOS, ejecutamos el comando para crear esta regla fundamental.

/ip firewall nat
add chain=dstnat action=dst-nat to-addresses=192.168.10.50 to-ports=443 \
    protocol=tcp dst-port=443 in-interface-list=WAN comment="Publicar Servidor Web Interno"

En la práctica, esta línea de código instruye al router a interceptar todo el tráfico TCP que llega por la interfaz conectada a internet (identificada por la lista WAN) en el puerto 443, reescribiendo el destino hacia la IP interna del servidor. Es crucial asegurar que el parámetro in-interface-list sea correcto para evitar interferencias en el enrutamiento interno. Si tu red utiliza VLANs para separar sectores críticos, puedes consultar las directrices en cómo aislar tráfico IoT creando una VLAN en MikroTik, ayudando a proteger el entorno corporativo contra accesos no autorizados. Para profundizar en estos conceptos arquitectónicos en producción, consulte también nuestro análisis técnico sobre Cómo probar memorias RAM DDR4 con osciloscopio en el banco.

Implementando Hairpin NAT en MikroTik RouterOS

Con el Destination NAT configurado para internet, debemos añadir la segunda regla que cierra el ciclo para los dispositivos locales. Hairpin NAT requiere dos acciones simultáneas: además de redirigir el destino a la IP del servidor interno, debemos enmascarar la fuente del paquete usando la IP de la interfaz interna del router. Esto fuerza al servidor a responder al router en lugar de directamente a la máquina cliente, garantizando que el flujo de red cierre correctamente. El comando a continuación crea la regla de enmascaramiento específica para este escenario.

/ip firewall nat
add chain=srcnat action=masquerade protocol=tcp dst-address=192.168.10.50 \
    dst-port=443 out-interface=bridge-local comment="Hairpin NAT para Servidor Interno"

En esta regla, especificamos que cualquier tráfico TCP destinado a nuestro servidor interno en el puerto 443 que salga por la interfaz de red local (en este ejemplo, bridge-local) debe sufrir un enmascaramiento de origen. Es fundamental que el parámetro out-interface apunte exactamente a la bridge o interfaz física que conecta el router con los equipos de la red interna. Sin este cuidado, el router podría aplicar enmascaramientos indebidos, causando fallas generalizadas de conectividad en toda la empresa.

Tras aplicar los comandos en MikroTik, el siguiente paso crítico es validar si el acceso realmente funciona desde una máquina en la red local. Abre el navegador o usa una herramienta como curl apuntando directo a la IP pública o dominio del servidor. Si la página carga o la conexión se establece sin tiempo de espera, el Hairpin NAT opera perfectamente. Si falla, verifica que las reglas de firewall no estén bloqueando el tráfico o que no existan reglas conflictivas encima en la tabla NAT, ya que MikroTik procesa las reglas estrictamente de arriba hacia abajo.

Mantener organizadas las reglas de NAT en MikroTik previene dolores de cabeza futuros y facilita auditorías de seguridad. Añade siempre comentarios descriptivos y agrupa lógicamente los servicios publicados. Al dominar el Hairpin NAT, eliminas soluciones temporales como editar archivos hosts locales o desplegar servidores DNS internos complejos solo para resolver un problema de enrutamiento perimetral. Con una configuración limpia y bien probada, tu infraestructura gana robustez, flexibilidad y total transparencia para los usuarios finales sin importar dónde se conecten.