Webinar incia en

0 Días
0 Horas
0 Minutos
0 Segundos

Webinar Gratuito

Introducción a Protocolo IPv6 con MikroTik RouterOS

Qué es el protocolo GRE y su implementación en MikroTik RouterOS

Facebook
Twitter
LinkedIn
WhatsApp
Telegram

El protocolo GRE (Generic Routing Encapsulation) es un protocolo de túnel que permite encapsular distintos tipos de protocolos de nivel de red dentro de un túnel IP. Fue desarrollado inicialmente por Cisco y está descrito en los RFC 2784 y RFC 2890.

Su propósito principal es crear un canal virtual (túnel) a través de una red IP no confiable, para transportar tramas de protocolos distintos o para aislar topologías de red lógicas sobre la misma infraestructura física.

Al final del artículo encontrarás un pequeño test que te permitirá evaluar los conocimientos adquiridos en esta lectura

A continuación se detallan los aspectos más relevantes de GRE:

1. Funcionamiento Básico de GRE

1. Encapsulación

    • GRE toma un paquete “original” (que puede ser IPv4, IPv6, o incluso protocolos no IP como IPX o AppleTalk, aunque hoy en día se utilizan poco), y lo encapsula dentro de un nuevo encabezado (header) GRE, que a su vez va contenido dentro de un encabezado IP externo para que sea posible su enrutamiento a través de la red subyacente.

2. Cabecera GRE

    • Incluye campos para identificar el protocolo encapsulado (Protocol Type), el checksum (opcional), el campo de secuencia (opcional) y flags para indicar distintas opciones.
    • El uso de un campo Key (clave) opcional puede servir para distinguir diferentes flujos o para autenticar la sesión del túnel en algunos escenarios.

3. Cabecera IP Externa

    • Contiene las direcciones IP de origen y destino del túnel (es decir, los extremos del túnel GRE).
    • Normalmente, el protocolo en el campo de “Protocol” del encabezado IP se marca como 47 (identificador de GRE).

4. Transporte

    • El paquete encapsulado (con su propia dirección IP o su propio protocolo) viaja a través de la red física o lógica como un paquete IP con protocolo 47. Una vez que llega al otro extremo del túnel, se quita la cabecera GRE y se reenvía el paquete original al destino final.

2. Características Principales

1. Simplicidad

GRE es relativamente sencillo de implementar y configurar en la mayoría de los dispositivos de red, sobre todo en routers. No requiere un proceso muy complejo de negociación.

2. Encapsulación de Varios Protocolos

Permite encapsular prácticamente cualquier protocolo de capa de red. Esto lo hace útil para transportar protocolos antiguos o propietarios que no serían enrutables de otra forma en redes IP modernas.

3. Túneles Multipunto

Aunque normalmente se aplica para túneles punto a punto, GRE también puede llegar a utilizarse en configuraciones más complejas como VPNs o mGRE (Multipoint GRE).

4. Compatibilidad

Es compatible con diversas plataformas (Cisco, MikroTik, Linux, etc.). De hecho, en entornos Linux, se puede crear un túnel GRE fácilmente utilizando utilidades estándar (ip tunnel, por ejemplo).

3. Ventajas y Limitaciones

Ventajas

  • Flexibilidad: Permite transportar protocolos que no son IP (sobre todo en redes legadas o con requerimientos específicos).
  • Sencillez de configuración: Especialmente entre routers de distinto fabricante, ya que no requiere cifrado ni un proceso de establecimiento de sesión tan complejo como en otros protocolos de túnel.
  • Integración con otras Tecnologías: A menudo se combina con IPSec para agregar confidencialidad y autenticidad (GRE over IPSec o IPSec over GRE) y con ello obtener un túnel cifrado y seguro.

Limitaciones

  • Falta de Cifrado y Autenticación Nativos: GRE por sí mismo no proporciona seguridad. Se recomienda combinarlo con mecanismos de cifrado como IPSec cuando se necesita privacidad o autenticación.
  • Sobrecarga de Cabecera (Overhead): Cada paquete transportado en el túnel lleva cabeceras adicionales (IP + GRE), lo cual aumenta el tamaño del paquete y consume ancho de banda adicional.
  • Problemas de MTU (Maximum Transmission Unit): Por la sobrecarga de las cabeceras extras, existe el riesgo de fragmentación del paquete si no se ajustan adecuadamente los valores de MTU y MSS (TCP).

4. Casos de Uso Comunes

Conexión de Protocolos No-IP en Redes IP

Si necesitamos comunicar dos redes que ejecutan un protocolo de capa de red que no es IP (casos raros hoy en día, pero en entornos industriales o legacy puede darse), GRE permite encapsularlos a través de Internet u otra red IP.

Extensión de Redes L2TP/IPSec

Aunque L2TP o IPSec suelen emplearse para VPN, es común ver implementaciones donde se usa GRE como mecanismo de transporte intermedio o para tunelizar determinados segmentos de red.

Soporte para VRF (Virtual Routing and Forwarding)

En algunos despliegues de MPLS/VPN, GRE puede usarse para soportar túneles entre distintos VRFs para rutas que no pasan directamente por el núcleo MPLS.

Laboratorios y Pruebas

Se utiliza con frecuencia en entornos de laboratorios, para simular enlaces punto a punto y probar configuraciones de enrutamiento dinámico (e.g., OSPF, BGP) sin necesidad de un entorno físico complicado.

Redundancia y Alta Disponibilidad

Combinado con mecanismos de routing dinámico (por ejemplo, OSPF), si un enlace falla, el tráfico puede redirigirse automáticamente a otro túnel GRE disponible.

5. Implementación y Configuración (Ejemplo con Cisco IOS)

A modo ilustrativo, la configuración básica de un túnel GRE en Cisco IOS:

				
					# En el router A:
interface Tunnel0
  ip address 10.10.10.1 255.255.255.252
  tunnel source 192.168.1.1
  tunnel destination 203.0.113.2
  # Se puede habilitar opcionalmente keepalives para detección de caídas
  keepalive 10
				
			
				
					# En el router B:
interface Tunnel0
  ip address 10.10.10.2 255.255.255.252
  tunnel source 203.0.113.2
  tunnel destination 192.168.1.1
  keepalive 10
				
			
  • Aquí, 10.10.10.x es la subred virtual de la interfaz de túnel, mientras que 192.168.1.1 y 203.0.113.2 son las IP públicas o “reales” de cada extremo.
  • Los paquetes con destino a la red 10.10.10.0/30 se encapsulan en GRE y se envían al otro extremo.

6. GRE y Seguridad

  • Cifrado y Autenticación: Como se mencionó, GRE no ofrece cifrado ni autenticación nativamente. Para asegurar los datos, se acostumbra encapsular GRE dentro de IPSec (modo túnel o modo transporte). De esta manera, se obtiene la ventaja de la simplicidad de GRE, pero también se gana en confidencialidad e integridad de los datos.
  • Control de Acceso: Es buena práctica limitar el tráfico GRE en los firewalls o listas de control de acceso (ACL) solo entre IPs legítimas (origen y destino), para evitar que algún atacante genere o manipule tráfico GRE con fines maliciosos.

7. Otras Variantes: mGRE (Multipoint GRE)

Existe una extensión conocida como mGRE (Multipoint GRE) que permite un solo túnel para múltiples destinos dinámicos. Es típico en configuraciones de DMVPN (Dynamic Multipoint VPN), donde un router “hub” actúa como punto principal, y múltiples sitios “spoke” se conectan dinámicamente.

De esta manera, se forma una topología de túneles multipunto, facilitando la conectividad de todos los extremos sin necesidad de configurar un túnel punto a punto independiente entre cada par de routers.

En resumen

GRE (Generic Routing Encapsulation) es un protocolo de encapsulación muy utilizado en redes IP para crear túneles que transportan todo tipo de tráfico (IP o no IP) entre dos o más dispositivos. Ofrece versatilidad y facilidad de configuración, pero carece de cifrado o autenticación nativa.

Por ello, cuando se requiere seguridad, se combina con IPSec u otras tecnologías de cifrado. Es sumamente común en entornos corporativos y de ISP, además de usarse ampliamente en laboratorios de aprendizaje y entornos de prueba por su flexibilidad.

Para escenarios donde se requiere un entorno de interconexión simple y transparente, GRE sigue siendo una opción muy popular. Su facilidad de implementación, compatibilidad y eficiencia (a pesar del overhead de encapsulación) le otorgan un papel importante en la comunicación y extensión de redes a nivel empresarial.

Implementación de GRE en MikroTik RouterOS

Submenú: /interface gre
Estándares: RFC1701

GRE es lo mismo que IPIP y EoIP, los cuales se desarrollaron originalmente como túneles sin estado (“stateless”). Esto significa que si el extremo remoto del túnel se cae, todo el tráfico que se enviaba a través de esos túneles quedará “encerrado en un agujero negro” (blackholed).

Para resolver este problema, RouterOS ha añadido la característica de “keepalive” para los túneles GRE.

Nota: El túnel GRE añade una sobrecarga de 24 bytes (4 bytes de cabecera GRE + 20 bytes de cabecera IP). Un túnel GRE solo puede transportar paquetes IP e IPv6 (tipo Ethernet 800 y 86dd).

No se debe usar la opción “Check gateway” = “arp” cuando se utiliza un túnel GRE como gateway de ruta.

Qué es el protocolo GRE y su implementación en MikroTik RouterOS

Propiedades

Propiedad

Descripción

allow-fast-path (yes / no; Valor predeterminado: yes)

Indica si se permite el procesamiento FastPath. Debe desactivarse si se utiliza un túnel IPsec.

clamp-tcp-mss (yes / no; Valor predeterminado: yes)

Controla si se debe cambiar el tamaño de MSS para los paquetes TCP SYN recibidos. Cuando está habilitado, el router ajustará el tamaño MSS para los paquetes TCP SYN recibidos si el tamaño MSS actual excede la MTU de la interfaz del túnel (tomando en cuenta la sobrecarga de TCP/IP). El paquete encapsulado que se recibe seguirá teniendo el MSS original, y solo tras la decapsulación se modifica el MSS.

comment (string; Valor predeterminado: “”)

Descripción breve del túnel.

disabled (yes / no; Valor predeterminado: no)

Habilita o deshabilita el túnel.

dont-fragment (inherit / no; Valor predeterminado: no)

Indica si en los paquetes relacionados se configura la marca DF (“Don’t Fragment”).

no = se fragmenta si es necesario,
inherit = usa la marca “Don’t Fragment” del paquete original.

(Sin “Don’t Fragment”: inherit = el paquete puede fragmentarse).

dscp (inherit

integer [0-63]; Valor predeterminado: inherit)

ipsec-secret (string; Valor predeterminado: “”)

Cuando se especifica un secreto (secret), el router añade un peer IPsec dinámico a la dirección remota con una clave compartida (pre-shared key) y una política por defecto (fase2 usa sha1/aes128cbc).

keepalive (integer [tiempo],integer [reintentos]; Formato: KeepaliveInterval,KeepaliveRetries; Valor predeterminado: 10,10)

El parámetro de keepalive del túnel establece el intervalo de tiempo en el que el túnel permanecerá activo (tendrá el estado “running”) incluso si el extremo remoto del túnel está caído. Si tras el número configurado de reintentos (retries) el túnel no responde, entonces se elimina la marca de “running”.

Los parámetros se especifican en el formato KeepaliveInterval,KeepaliveRetries, donde:
KeepaliveInterval = Intervalo de tiempo.
KeepaliveRetries = Número de reintentos.

Por defecto, keepalive está establecido en 10 segundos y 10 reintentos.

l2mtu (integer [0..65535]; Valor predeterminado: 65535)

Unidad Máxima de Transmisión a nivel de Capa 2.

local-address (IP; Valor predeterminado: 0.0.0.0)

Dirección IP que se utilizará en el extremo local del túnel. Si se configura en 0.0.0.0, se usará la dirección IP de la interfaz de salida.

mtu (integer [0..65535]; Valor predeterminado: 1476)

Unidad Máxima de Transmisión a nivel de Capa 3.

name (string; Valor predeterminado: “”)

Nombre del túnel.

remote-address (IP; Valor predeterminado: “”)

Dirección IP del extremo remoto del túnel.

Ejemplo de configuración

El objetivo de este ejemplo es obtener conectividad de Capa 3 entre dos sitios remotos a través de Internet.

Sitio 2
Público: 192.168.90.1/24
Local: 10.1.202.1/24

Sitio 1
Público: 192.168.80.1/24
Local: 10.1.101.1/24

La primera etapa es crear los túneles GRE.

En un router del sitio 1:

				
					/interface gre add name=myGre remote-address=192.168.90.1 local-address=192.168.80.1
				
			

En un router del sitio 2:

				
					/interface gre add name=myGre remote-address=192.168.80.1 local-address=192.168.90.1
				
			

Como se puede ver, la configuración del túnel es bastante sencilla.

Nota: En este ejemplo, no se configura keepalive, de modo que la interfaz de túnel tendrá el estado “running” incluso si el extremo remoto del túnel no está disponible.

Ahora solo necesitamos configurar las direcciones del túnel y el enrutamiento adecuado.

En un router del sitio 1:

				
					/ip address add address=172.16.1.1/30 interface=myGre
/ip route add dst-address=10.1.202.0/24 gateway=172.16.1.2
				
			

En un router del sitio 2:

				
					/ip address add address=172.16.1.2/30 interface=myGre
/ip route add dst-address=10.1.101.0/24 gateway=172.16.1.1
				
			

En este punto, ambos sitios tienen conectividad de Capa 3 a través del túnel GRE.

Breve cuestionario de conocimientos

¿Qué te pareció este artículo?
¿Te atreves a evaluar tus conocimientos aprendidos?

QUIZ - Qué es el protocolo GRE y su implementación en MikroTik RouterOS

Libros recomendados para éste artículo

Autoestudio MikroTik

Estudia las certificaciones MikroTik a tu propio ritmo

Autoestudio

Aprende a tu propio ritmo

advertisement (anuncio)

MikroLABs

advertisement (anuncio)

Anuncia tu marca aquí - Escríbenos por WhatsApp (+593 98 700 0604) - abcXperts / Academy Xperts
Escríbenos por WhatsApp (+593 98 700 0604)

¿Quieres sugerir un tema?

Todas las semanas posteamos nuevo contenido. Quieres que tratemos sobre algo específico?
Tema para el proximo Blog

Próximos Cursos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

MONARC Latin America: Soluciones Tecnológicas - Guatemala.
MONARC Latin America: Soluciones Tecnológicas - monarclatinamerica.com.gt - Guatemala
1
Haz clic para chatear

AcademyXperts BETA 1.0

Tu asistente virtual de AcademyXperts

Cuéntanos un poco sobre tí.

Así podremos darte la mejor recomendación

El teléfono no es válido

Confírmanos tus datos

Nuestros horarios son de Lunes a Viernes de 9:00 AM a 6:00 PM.

Atención: Lunes a Viernes de 9:00 AM a 6:00 PM (Ecuador GMT-5).