Túnel GRE 

Autor: Julio Moisa - CCIE R&S #52536
Email: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

 

                                                                                         gre1        

 

GRE (Generic Routing Encapsulation) es un protocolo desarrollado por Cisco System para crear una conexión virtual privada entre 2 puntos, lo interesante de esto es que los datos son encapsulados para poder transmitirlos a través de la conexión virtual a la cual se le conoce como: túnel. 

Los túneles GRE también son útiles para poder establecer comunicación a través de redes donde no se tiene control, cierto tráfico no es soportado, o se posee algún tipo de restricción en la red, un caso no muy lejano seria: Internet. Esto no quiere decir que solo se puedan crear túneles privados a través de redes públicas, al contrario, GRE es bastante versátil. 

Ahora bien se debe comprender que el término 'encapsular' no afirma que la información se encuentre segura al ser transmitida entre 2 dispositivos. Para poder proveer seguridad a los datos se utiliza IPSec, el comando tunnel protection junto con IPSec crean el mecanismo más efectivo para proveer seguridad a los datos que son transportados. 

Como funciona GRE y que debemos conocer antes de implementarlo

GRE utiliza el protocolo IP como el protocolo de transporte. Y es aquí donde comenzamos hablar de 3 términos con los que trabaja GRE y del porque es importante conocerlos: Protocolo pasajero, Protocolo Carrier y Protocolo de transporte. 

  • Protocolo pasajero: es toda dato que será encapsulado ....
  • Protocolo carrier:  ..... en el protocolo carrier, en este caso también es conocido como encabezado GRE, existen otros tipos de protocolo carrier pero en nuestro caso se utiliza GRE. Una vez el protocolo carrier esté listo, este se encapsulara dentro del ....
  • Protocolo de transporte: ..... protocolo de transporte, el cual en Túneles GRE es el protocolo IP.  El protocolo de transporte es utilizado para enrutar la información encapsulada hasta llegar a su destino. 

Cuando un protocolo es encapsulado dentro de otro protocolo el tamaño del frame se incrementa y es aquí donde se puede generar un problema. En el caso de GRE se incrementa en 24 bytes, 4 del encabezado GRE y 20 bytes del encabezado IPv4,  es aqui donde se puede generar problemas con el MTU, el MTU estándar (unidad de transferencia máxima) es de 1500 bytes, si utilizamos GRE este se incrementara en 1524 lo que puede generar pérdidas de paquetes o problemas de fragmentación. 

Para evitar este tipo de problemas podemos ajustar los túneles para que trabajen con un MTU de 1476 o un valor menor a este, esto también obligara a disminuir el valor del payload (MSS) para decirle a los dispositivos que deben utilizar paquetes mucho más pequeños y de esta manera evitar el proceso de fragmentación. El tamaño por defecto de TCP MSS es de 1460 bytes, el MSS debe ser al menos 40 bytes menor al MTU. 

Pasos para configurar un Túnel GRE:

Paso 1) (Regla de Oro) Verificar que exista comuncación entre el origen y el destino configurado bajo la Interface Tunnel antes de configurar un Túnel GRE. El sintanxis básico de un Túnel GRE es el siguiente: 

Interface Tunnel <0-2147483647>
Ip address <Dirección IP del túnel, ambos extremos deben mantenerse en la misma red>
Tunnel source <Dirección IP de origen, puede ser una interface fisica o lógica local>
Tunnel destination <Dirección IP de destino con la cual se establecera el túnel>

Como se menciono anteriormente el origen y el destino deben tener comunicación antes de proceder con la creación del túnel. 

Basandonos en el diagrama procedemos con la configuración del túnel:

 ping gre1

ping gre2

 

Paso 2) Creamos el túnel en ambos extremos, el ID del túnel es solo de importancia local pero para mantener un estandar ocuparemos el mismo en ambos routers. 

tunnel gre config

 

Si todo va bien podremos hacer ping entre túneles y la interface del Tunnel 0 estará habilitada

 

tunnel up

 

Actual enrutamiento en R1 y R2:

 

gre config 12

 

Por ende las direcciones de los túneles no deberian de poder comunicarse a menos que el túnel se encuentre establecido correctamente, veamos que sucede si ejecuto un ping:

 

ping gre 23

 

Todo funciona correctamente,  ahora solo lo falta la cereza para tener la configuración apropiada: ajustar el MTU y TCP MSS.

 

final config gre

 

Para probar que nuestro túnel funciona correctamente, podemos enrutar las direcciones loopbacks a tráves del túnel.

 

gre routing

 

Realicemos pruebas

 

success 1

success 2

 

Como podemos observar la comunicación entre las loopbacks se realiza a través del túnel, esto nos indica que todo funciona correctamente. 

 

 

 

 

Registrate para comentar.

Visitas del artículo
95728