El protocolo de encapsulación de enrutamiento genérico ( GRE ) es un protocolo de tunelización desarrollado por Cisco Systems que puede encapsular una amplia variedad de protocolos de capa de red dentro de enlaces virtuales punto a punto o enlaces punto a multipunto sobre una red de protocolo de Internet . [ 2 ]
Ejemplos de uso
- En conjunto con PPTP para crear VPN .
- En combinación con VPNs IPsec , permiten el paso de información de enrutamiento entre redes conectadas.
- En los protocolos de gestión de la movilidad .
- En las interfaces A8/A10 para encapsular datos IP hacia/desde la función de control de paquetes (PCF).
- Linux y BSD pueden establecer direcciones IP ad-hoc a través de túneles GRE que son interoperables con equipos Cisco.
- Dispositivo protegido contra ataques de denegación de servicio distribuido (DDoS) conectado a un punto final no protegido .
Pila de protocolos de ejemplo
Basándose en los principios de la estratificación de protocolos del modelo OSI, la encapsulación de protocolos, y no específicamente GRE, rompe el orden de las capas. Puede considerarse como un separador entre dos pilas de protocolos diferentes, donde una actúa como portadora de la otra.
Protocolos de entrega
Los paquetes GRE que se encapsulan directamente dentro de IP , utilizan el tipo de protocolo IP 47 en el campo Protocolo del encabezado IPv4 [ 3 ] o en el campo Siguiente encabezado del encabezado IPv6 . [ 4 ]
Por razones de rendimiento, GRE también puede encapsularse en paquetes UDP. [ 5 ] Se puede lograr un mejor rendimiento utilizando enrutamiento de rutas múltiples de igual costo .
Encabezado del paquete
Encabezado de paquete GRE extendido (RFC 2890)
La versión extendida del encabezado del paquete GRE [ 6 ] se representa a continuación:
- C (1 bit)
- Bit de suma de verificación . Se establece en 1 si hay una suma de verificación presente.
- K (1 bit)
- Bit de clave. Se establece en 1 si hay una clave presente.
- S (1 bit)
- Bit del número de secuencia. Se establece en 1 si hay un número de secuencia presente.
- Reservado 0 (9 bits)
- Bits reservados; establecidos a 0.
- Versión (3 bits)
- Número de versión GRE; establecido en 0.
- Tipo de protocolo (16 bits)
- Indica el tipo de protocolo ether de la carga útil encapsulada. (Para IPv4 , sería el código hexadecimal 0800).
- Suma de verificación (16 bits)
- Presente si el bit C está activado; contiene la suma de verificación para el encabezado y la carga útil GRE.
- Reservado 1 (16 bits)
- Presente si el bit C está activado; se establece en 0.
- Clave (32 bits)
- Presente si el bit K está activado; contiene un valor de clave específico de la aplicación.
- Número de secuencia (32 bits)
- Presente si el bit S está activado; contiene un número de secuencia para el paquete GRE.
Encabezado de paquete GRE estándar (RFC 2784)
Una estructura de encabezado de paquete GRE estándar [ 7 ] está representada en el diagrama a continuación.
- C (1 bit)
- Bit de suma de verificación . Se establece en 1 si hay una suma de verificación presente.
- Reservado 0 (12 bits)
- Bits reservados; establecidos a 0.
- Versión (3 bits)
- Número de versión GRE; establecido en 0.
- Tipo de protocolo (16 bits)
- Indica el tipo de protocolo ether de la carga útil encapsulada. (Para IPv4 , sería el valor hexadecimal 0x0800; para IPv6 , sería 0x86DD. [ 4 ] )
- Suma de verificación (16 bits)
- Presente si el bit C está activado; contiene la suma de verificación para el encabezado y la carga útil GRE.
- Reservado 1 (16 bits)
- Presente si el bit C está activado; su contenido se establece en 0.
Encabezado original del paquete GRE (RFC 1701)
La nueva estructura sustituyó a la estructura original: [ 1 ]
El RFC GRE original definía campos adicionales en la cabecera del paquete que quedaron obsoletos en el estándar actual:
- C (1 bit)
- Bit de suma de verificación . Se establece en 1 si hay una suma de verificación presente.
- R (1 bit)
- Bit de enrutamiento. Establecer en 1 si la información de enrutamiento y desplazamiento está presente.
- K (1 bit)
- Bit de clave. Se establece en 1 si hay una clave presente.
- S (1 bit)
- Bit del número de secuencia. Se establece en 1 si hay un número de secuencia presente.
- s (1 bit)
- Bit de ruta de origen estricta.
- Recursivo (3 bits)
- Bits de control de recursión .
- Banderas (5 bits)
- Reservado para uso futuro, establecido en 0.
- Versión (3 bits)
- Establecer en 0.
- Tipo de protocolo (16 bits)
- Indica el tipo de protocolo ether de la carga útil encapsulada.
- Suma de verificación (16 bits)
- Presente si el bit C está activado; contiene la suma de verificación para el encabezado y la carga útil GRE.
- Desplazamiento (16 bits)
- Presente si el bit R o el bit C están activados; contiene información válida solo si el bit R está activado. Un campo de desplazamiento que indica el desplazamiento dentro del campo Enrutamiento con respecto a la entrada de ruta de origen activa.
- Clave (32 bits)
- Presente si el bit K está activado; contiene un valor de clave específico de la aplicación.
- Número de secuencia (32 bits)
- Presente si el bit S está activado; contiene un número de secuencia para el paquete GRE.
- Enrutamiento (variable)
- Presente si el bit R está activado; contiene una lista de entradas de ruta de origen, por lo tanto, es de longitud variable.
Encabezado del paquete GRE PPTP
El Protocolo de Túnel Punto a Punto (PPTP) [ 8 ] utiliza una estructura de encabezado de paquete GRE variante, representada a continuación. PPTP crea un túnel GRE a través del cual se envían los paquetes GRE de PPTP.
- C (1 bit)
- Bit de suma de verificación . Para los paquetes PPTP GRE, este bit se establece en 0.
- R (1 bit)
- Bit de enrutamiento. Para los paquetes PPTP GRE, este bit se establece en 0.
- K (1 bit)
- Bit de clave. Para los paquetes PPTP GRE, este valor se establece en 1. (Todos los paquetes PPTP GRE contienen una clave).
- S (1 bit)
- Bit del número de secuencia. Se establece en 1 si se proporciona un número de secuencia, lo que indica un paquete de datos PPTP GRE.
- s (1 bit)
- Bit de ruta de origen estricta. Para los paquetes PPTP GRE, este valor se establece en 0.
- Recursivo (3 bits)
- Bits de control de recursión . Para los paquetes PPTP GRE, estos se establecen en 0.
- A (1 bit)
- Número de acuse de recibo presente. Se establece en 1 si se proporciona un número de acuse de recibo, lo que indica un paquete de acuse de recibo PPTP GRE.
- Banderas (4 bits)
- Bits de bandera. Para los paquetes PPTP GRE, estos se establecen en 0.
- Versión (3 bits)
- Número de versión GRE. Para los paquetes PPTP GRE, este valor se establece en 1.
- Tipo de protocolo (16 bits)
- Para los paquetes PPTP GRE, este valor se establece en hexadecimal 880B.
- Longitud de la carga útil de la clave (16 bits)
- Contiene el tamaño de la carga útil, sin incluir el encabezado GRE.
- Identificador de llamada clave (16 bits)
- Contiene el ID de llamada del par para la sesión a la que pertenece el paquete.
- Número de secuencia (32 bits)
- Presente si el bit S está activado; contiene el número de secuencia de la carga útil GRE.
- Número de acuse de recibo (32 bits)
- Presente si el bit A está activado; contiene el número de secuencia del paquete de carga útil GRE más alto recibido por el remitente.
Estándares
- RFC 1701 : Encapsulación de enrutamiento genérico (GRE) (informativo)
- RFC 1702 : Encapsulación de enrutamiento genérico sobre redes IPv4 (informativo)
- RFC 2637 : Protocolo de tunelización punto a punto (informativo)
- RFC 2784 : Encapsulación de enrutamiento genérico (GRE) (estándar propuesto, actualizado por RFC 2890)
- RFC 2890 : Extensiones de clave y número de secuencia para GRE (estándar propuesto)
- RFC 8086 : Encapsulación GRE en UDP (estándar propuesto)
Véase también
- Virtualización de red mediante encapsulación de enrutamiento genérico : transporta paquetes L2 sobre GRE.
- El protocolo de tunelización GPRS (GTP-U) es similar a GRE y se utiliza en redes celulares.
Referencias
- 1 2 S. Hanks; T. Li; D. Farinacci; P. Traina (octubre de 1994). Encapsulación de enrutamiento genérico (GRE) . Grupo de trabajo de redes. doi : 10.17487/RFC1701 . RFC 1701 .Informativo.
- ↑ US 7801021B1 , Nikolaos Triantafillis; Robert J. Ordemann y Simon D. Barber, "Generic routing encapsulation tunnel keepalives", emitido el 21 de septiembre de 2010, asignado a Cisco Technology Inc.
- ↑ S. Hanks; T. Li; D. Farinacci; P. Traina (octubre de 1994). Encapsulación de enrutamiento genérico sobre redes IPv4 . Grupo de trabajo de redes. doi : 10.17487/RFC1702 . RFC 1702 .Informativo.
- 1 2 C. Pignataro; R. Bonica; S. Krishnan (octubre de 2015). Soporte de IPv6 para encapsulación de enrutamiento genérico (GRE) . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC7676 . ISSN 2070-1721 . RFC 7676 . Norma propuesta.
- ↑ E. Crabbe; E. Crabbet; T. Herbert (marzo de 2017). L. Yong (ed.). Encapsulación GRE-in-UDP . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC8086 . ISSN 2070-1721 . RFC 8086 . Norma propuesta.
- ↑ G. Dommety (septiembre de 2000). Extensiones de clave y número de secuencia para GRE . Grupo de trabajo de la red. doi : 10.17487/RFC2890 . RFC 2890 .Norma propuesta.
- ↑ D. Farinacci; T. Li; S. Hanks; D. Meyer; P. Traina (marzo de 2000). Encapsulación de enrutamiento genérico (GRE) . Grupo de trabajo de redes. doi : 10.17487/RFC2784 . RFC 2784 .Norma propuesta. Actualizada por RFC 2890 .
- ↑ K. Hamzeh; G. Pall; W. Verthein; J. Taarud; W. Little; G. Zorn (julio de 1999). Protocolo de tunelización punto a punto (PPTP) . Grupo de trabajo de redes. doi : 10.17487/RFC2637 . RFC 2637 .Informativo.
Enlaces externos
- Encapsulación de enrutamiento genérico , página principal del subprotocolo en Cisco
- Encapsulación de enrutamiento genérico Archivado el 29/12/2018 en Wayback Machine , Entrada en Cisco DocWiki (anteriormente conocido como el "Manual de tecnología de interconexión de redes")
- Protocolos de tunelización
- Sistemas Cisco