Configuración de Túnel GRE sobre IPsec en Cisco IOS: Conectando Redes Remotas de Forma Segura

La interconexión segura de redes remotas a través de Internet es un desafío fundamental en el mundo de las redes. Para profesionales que preparan certificaciones como CCNA o que ya trabajan en el campo, dominar la configuración de túneles VPN es esencial. Una de las soluciones más robustas y utilizadas en entornos empresariales es la combinación de Generic Routing Encapsulation (GRE) sobre IPsec. Esta configuración aprovecha la flexibilidad de GRE para encapsular tráfico, incluyendo protocolos de enrutamiento dinámico, y lo protege con la seguridad avanzada de IPsec.

Diagrama de red con dos routers Cisco conectados a través de Internet, cada uno con redes locales adjuntas.

Entendiendo la Diferencia: GRE vs. IPsec

Antes de sumergirse en la configuración, es crucial comprender las funciones y limitaciones de GRE e IPsec por separado, y por qué su combinación es tan poderosa.

  • Túnel GRE (Generic Routing Encapsulation): Su propósito principal es encapsular tráfico de múltiples protocolos, incluyendo multicast y broadcast, dentro de paquetes IP. GRE es ideal para transportar protocolos de enrutamiento dinámico como OSPF o EIGRP, pero no ofrece ninguna seguridad intrínseca. El tráfico viaja en texto plano, lo que lo hace vulnerable a la interceptación. Está definido en el RFC 2784 de la IETF.

  • Túnel IPsec (VPN): IPsec es un framework de múltiples protocolos diseñado para crear canales de comunicación seguros y cifrados entre dos puntos. Proporciona confidencialidad (mediante cifrado), integridad de los datos y autenticación de los peers. Sin embargo, IPsec por sí solo, en su configuración más básica, está diseñado principalmente para tráfico Unicast y tiene soporte limitado o nulo para multicast.

La sinergia entre ambos protocolos radica en utilizar GRE para transportar el tráfico que IPsec por sí solo no manejaría eficientemente (como el tráfico de enrutamiento dinámico), y luego encapsular todo el túnel GRE dentro de un túnel IPsec para garantizar su seguridad.

Escenario de Red para la Configuración

Para ilustrar el proceso de configuración, utilizaremos una topología de red común. Nuestro objetivo es establecer una comunicación segura entre Host1 (ubicado en la red 192.168.1.0/24) y Host2 (ubicado en la red 192.168.2.0/24). Esta conexión se logrará mediante un túnel VPN configurado entre los routers R1 y R3, que actúan como los extremos de la VPN a través de una red intermedia (simulando Internet).

Topología de red detallada mostrando R1 y R3 conectados a Internet, con redes LAN conectadas a cada router y hosts dentro de esas redes.

Fase 1: Configuración del Túnel GRE Básico

El primer paso es establecer un túnel GRE funcional sin cifrado. Esto nos permite verificar la conectividad básica entre los routers antes de añadir la complejidad de IPsec, aislando así posibles problemas de enrutamiento o configuración de interfaz.

El proceso de IPsec para establecer un canal seguro se divide típicamente en dos fases: ISAKMP (Fase 1) y IPsec (Fase 2).

Paso 1: Configurar la Interfaz del Túnel en R1

En R1, creamos una interfaz virtual de túnel (Tunnel0). A esta interfaz le asignamos una dirección IP (10.0.0.1/30) que servirá como el endpoint del túnel dentro de la red privada. Luego, definimos las direcciones IP de los endpoints físicos del túnel (R1 a R3). Es importante ajustar el MTU (Maximum Transmission Unit) y MSS (Maximum Segment Size) para compensar la sobrecarga introducida por los encabezados de GRE e IPsec, evitando así la fragmentación de paquetes.

R1(config)# interface Tunnel0R1(config-if)# ip address 10.0.0.1 255.255.255.252R1(config-if)# tunnel source GigabitEthernet0/0 // O la interfaz que conecta a InternetR1(config-if)# tunnel destination 192.0.0.2 // IP pública de R3R1(config-if)# ip mtu 1400R1(config-if)# ip tcp adjust-mss 1360R1(config-if)# no shutdownR1(config-if)# exit

Paso 2: Configurar la Interfaz del Túnel en R3

Realizamos una configuración similar en R3, creando la interfaz Tunnel0 y asignándole la dirección IP 10.0.0.2/30. El tunnel source será la interfaz pública de R3, y el tunnel destination será la dirección IP pública de R1.

R3(config)# interface Tunnel0R3(config-if)# ip address 10.0.0.2 255.255.255.252R3(config-if)# tunnel source GigabitEthernet0/0 // O la interfaz que conecta a InternetR3(config-if)# tunnel destination 192.0.0.1 // IP pública de R1R3(config-if)# ip mtu 1400R3(config-if)# ip tcp adjust-mss 1360R3(config-if)# no shutdownR3(config-if)# exit

Paso 3: Añadir una Ruta Estática en R1

Para que R1 sepa cómo dirigir el tráfico destinado a la red remota (192.168.2.0/24) a través del túnel, configuramos una ruta estática. Esta ruta indica que cualquier paquete dirigido a 192.168.2.0/24 debe ser enviado a través de la interfaz Tunnel0.

R1(config)# ip route 192.168.2.0 255.255.255.0 Tunnel0

Paso 4: Añadir una Ruta Estática en R3

De manera análoga, en R3 configuramos una ruta estática para dirigir el tráfico destinado a la red 192.168.1.0/24 a través de su interfaz Tunnel0.

R3(config)# ip route 192.168.1.0 255.255.255.0 Tunnel0

Paso 5: Verificación del Túnel GRE

Con la configuración básica completada, podemos verificar si el túnel GRE está activo. Un ping entre las direcciones IP de las interfaces de túnel (10.0.0.1 y 10.0.0.2) debería ser exitoso.

R1# ping 10.0.0.2Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 24/64/88 ms

En este punto, tenemos conectividad básica entre las dos redes a través del túnel GRE. Sin embargo, el tráfico aún no está cifrado.

Configuración de TUNEL GRE (GENERIC ROUTING ENCAPSULATION) | CCNA

Fase 2: Asegurando el Túnel con IPsec

Ahora aplicaremos la capa de seguridad IPsec sobre el túnel GRE existente. Este proceso de negociación de seguridad se realiza en dos fases: ISAKMP (Fase 1) y la negociación de los parámetros de cifrado y autenticación para los datos (Fase 2).

Paso 6: Configurar la Política ISAKMP (Fase 1) en R1

La Fase 1 establece un canal seguro y autenticado entre los routers (R1 y R3) para poder negociar de forma segura los parámetros de la Fase 2. Definimos una política ISAKMP que especifica los algoritmos de cifrado, hash, autenticación y el grupo Diffie-Hellman (DH) que se utilizarán. También establecemos un tiempo de vida para la clave de ISAKMP.

R1(config)# crypto isakmp policy 10R1(config-crypto-policy)# authentication pre-shareR1(config-crypto-policy)# encryption aes 256 // O el algoritmo deseadoR1(config-crypto-policy)# hash sha256 // O el algoritmo deseadoR1(config-crypto-policy)# group 5 // O el grupo DH deseadoR1(config-crypto-policy)# lifetime 86400R1(config-crypto-policy)# exit

Paso 7: Configurar la Clave Pre-compartida (Pre-shared Key) en R1

Para la autenticación entre R1 y R3, utilizaremos una clave pre-compartida. Esta clave debe ser idéntica en ambos routers.

R1(config)# crypto isakmp key cisco123 address 192.0.0.2 // IP pública de R3

Paso 8: Configurar la Política ISAKMP (Fase 1) en R3

Repetimos la configuración de la política ISAKMP en R3, asegurándonos de que los parámetros (algoritmos, grupo DH) coincidan con los de R1.

R3(config)# crypto isakmp policy 10R3(config-crypto-policy)# authentication pre-shareR3(config-crypto-policy)# encryption aes 256R3(config-crypto-policy)# hash sha256R3(config-crypto-policy)# group 5R3(config-crypto-policy)# lifetime 86400R3(config-crypto-policy)# exit

Paso 9: Configurar la Clave Pre-compartida en R3

Configuramos la clave pre-compartida en R3, utilizando la dirección IP pública de R1.

R3(config)# crypto isakmp key cisco123 address 192.0.0.1 // IP pública de R1

Paso 10: Definir el Conjunto de Transformación (Transform-Set) en R1

El conjunto de transformación define los protocolos de seguridad (ESP o AH) y los algoritmos de cifrado y autenticación que se utilizarán para proteger los datos en la Fase 2.

R1(config)# crypto ipsec transform-set MY_TRANSFORM_SET esp-aes 256 esp-sha256-hmacR1(config-crypto-transf)# mode tunnelR1(config-crypto-transf)# exit

Paso 11: Definir el Conjunto de Transformación en R3

Realizamos la misma configuración del conjunto de transformación en R3.

R3(config)# crypto ipsec transform-set MY_TRANSFORM_SET esp-aes 256 esp-sha256-hmacR3(config-crypto-transf)# mode tunnelR3(config-crypto-transf)# exit

Paso 12: Configurar la Lista de Acceso (Access-List) en R1

La lista de acceso es crucial, ya que define qué tráfico se considera "interesante" y, por lo tanto, debe ser cifrado por IPsec. En este caso, queremos cifrar todo el tráfico que va desde la red local de R1 (192.168.1.0/24) hacia la red local de R3 (192.168.2.0/24).

R1(config)# ip access-list EXTENDED MY_TRAFFIC_ACLR1(config-ext-nacl)# permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255R1(config-ext-nacl)# exit

Es fundamental recordar que este tráfico debe ser permitido en el firewall o ACL de acceso público del router para que llegue al router.

Paso 13: Configurar la Lista de Acceso en R3

En R3, creamos una lista de acceso similar, pero invirtiendo las direcciones de origen y destino, para definir el tráfico de la red local de R3 hacia la red local de R1.

R3(config)# ip access-list EXTENDED MY_TRAFFIC_ACLR3(config-ext-nacl)# permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255R3(config-ext-nacl)# exit

Paso 14: Crear el Crypto-Map en R1

El crypto-map une todos los componentes configurados: la política ISAKMP, el conjunto de transformación, la lista de acceso y la dirección del peer remoto. Este mapa se aplicará a la interfaz física que conecta a Internet.

R1(config)# crypto map CRYPTO_MAP1 10 ipsec-isakmpR1(config-crypto-map)# set peer 192.0.0.2 // IP pública de R3R1(config-crypto-map)# set transform-set MY_TRANSFORM_SETR1(config-crypto-map)# match address MY_TRAFFIC_ACLR1(config-crypto-map)# exit

Paso 15: Aplicar el Crypto-Map a la Interfaz en R1

Finalmente, aplicamos el crypto-map a la interfaz física (por ejemplo, GigabitEthernet0/0) que se utiliza como origen del túnel.

R1(config)# interface GigabitEthernet0/0R1(config-if)# crypto map CRYPTO_MAP1R1(config-if)# exit

Paso 16: Crear y Aplicar el Crypto-Map en R3

Realizamos los pasos equivalentes en R3, creando el crypto-map para que apunte a R1 y aplicándolo a su interfaz pública.

R3(config)# crypto map CRYPTO_MAP1 10 ipsec-isakmpR3(config-crypto-map)# set peer 192.0.0.1 // IP pública de R1R3(config-crypto-map)# set transform-set MY_TRANSFORM_SETR3(config-crypto-map)# match address MY_TRAFFIC_ACLR3(config-crypto-map)# exitR3(config)# interface GigabitEthernet0/0R3(config-if)# crypto map CRYPTO_MAP1R3(config-if)# exit

Fase 3: Verificación Final del Túnel GRE sobre IPsec

Para que el túnel cifrado se establezca y se levante la Fase 2, es necesario generar "tráfico interesante", es decir, tráfico que coincida con la lista de acceso configurada en los crypto-maps. Un simple ping desde Host1 a Host2 será suficiente para iniciar este proceso.

Paso 17: Verificar la Fase 1 (ISAKMP SA)

Podemos verificar el estado de la negociación ISAKMP (Fase 1) utilizando el comando show crypto isakmp sa.

R1# show crypto isakmp sa

La salida debería mostrar una entrada con el estado QM_IDLE o MM_ACTIVE, indicando que la Fase 1 se ha completado correctamente y la Security Association (SA) de ISAKMP está activa.

 QB: ISAKMP SA established with 192.0.0.2, protocol ID 1 Uptime: 0d 0h 1m, Hash: sha256, Enc: aes-256, Auth: pre-share, Group: 5 State: QM_IDLE

Paso 18: Verificar la Fase 2 (IPsec SA)

Una vez que se genera tráfico interesante, la Fase 2 se negociará automáticamente. Podemos verificar el estado de la IPsec SA con show crypto ipsec sa.

R1# show crypto ipsec sa

La salida mostrará las Security Associations activas para el tráfico que se está cifrando y descifrando. Los contadores de #pkts encrypt y #pkts decrypt mayores que cero son la prueba definitiva de que el túnel GRE está ahora protegido por IPsec.

interface: Tunnel0 <...other details...> local ident (addr=10.0.0.1 port=0 ) remote ident (addr=10.0.0.2 port=0 ) local prefix (addr=192.168.1.0 mask=255.255.255.0) remote prefix (addr=192.168.2.0 mask=255.255.255.0) #pkts encaps: 10, #pkts decaps: 10 <...other details...>

Si los contadores de paquetes cifrados y descifrados están aumentando, significa que el túnel está operativo y seguro.

Captura de pantalla de la salida del comando

Consideraciones Adicionales y Mejores Prácticas

La configuración de un túnel GRE sobre IPsec, aunque potente, requiere atención a varios detalles:

  • MTU y MSS: La sobrecarga de los encabezados de GRE (mínimo 24 bytes) y IPsec (variable, pero típicamente 50-70 bytes o más con autenticación) puede reducir significativamente el MTU efectivo. Ajustar ip mtu y ip tcp adjust-mss en las interfaces de túnel es crucial para evitar la fragmentación, que puede degradar el rendimiento o incluso impedir la comunicación.
  • Protocolos de Enrutamiento Dinámico: Para que protocolos como OSPF o EIGRP funcionen a través del túnel GRE sobre IPsec, la configuración de la lista de acceso (access-list) debe permitir explícitamente el tráfico de estos protocolos (protocolo IP 89 para OSPF, protocolo IP 88 para EIGRP).
  • Seguridad de las Claves Pre-compartidas: Las claves pre-compartidas son una forma sencilla de autenticación, pero deben ser robustas y mantenerse seguras. Para entornos de alta seguridad, se recomienda el uso de certificados digitales (PKI) para la autenticación de los peers.
  • Monitorización y Troubleshooting: Los comandos show crypto isakmp sa, show crypto ipsec sa, show crypto session, y debug crypto isakmp y debug crypto ipsec son herramientas indispensables para diagnosticar problemas.
  • Firewalls y ACLs de Acceso: Es vital asegurarse de que las ACLs aplicadas a las interfaces públicas de los routers, o cualquier firewall intermedio, permitan el tráfico UDP en el puerto 500 (para ISAKMP/IKE) y el protocolo ESP (IP Protocol 50) o AH (IP Protocol 51) entre los peers IPsec.

Esta configuración de túnel GRE sobre IPsec es una piedra angular en la interconexión segura de redes corporativas, permitiendo la extensión segura de redes corporativas a través de Internet. Dominar su implementación proporciona una ventaja significativa como profesional de redes.

Para una comprensión más profunda, la consulta de la documentación oficial de Cisco o la participación en comunidades de aprendizaje como Cisco Learning Network son recursos valiosos. La práctica en entornos de laboratorio virtuales como GNS3 o EVE-NG es la mejor manera de solidificar estos conocimientos, permitiendo experimentar, romper y reparar la configuración hasta dominarla.

tags: #agregar #isakmp #en #el #router #ios