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.

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).

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)# exitPaso 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)# exitPaso 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 Tunnel0Paso 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 Tunnel0Paso 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 msEn 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)# exitPaso 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 R3Paso 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)# exitPaso 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 R1Paso 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)# exitPaso 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)# exitPaso 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)# exitEs 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)# exitPaso 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)# exitPaso 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)# exitPaso 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)# exitFase 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 saLa 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_IDLEPaso 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 saLa 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.

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 mtuyip tcp adjust-mssen 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, ydebug crypto isakmpydebug crypto ipsecson 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.