Protocolo de tunelización de Cisco
La 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 a través de una red de Protocolo de Internet . [2]
Ejemplos de usos
Ejemplo de pila de protocolos
Basándose en los principios de superposición de protocolos en OSI, la encapsulación de protocolos, no específicamente GRE, rompe el orden de las capas. Puede verse como un separador entre dos pilas de protocolos diferentes, una de las cuales actúa como portadora de la otra.
Protocolos de entrega
Los paquetes GRE que están encapsulados dentro de IP directamente, 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 se puede encapsular en paquetes UDP. [5] Se puede lograr un mejor rendimiento utilizando enrutamiento multirruta 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 comprobación . Se establece en 1 si hay una suma de comprobación presente.
- K (1 bit)
- Bit de clave. Se establece en 1 si hay una clave presente.
- S (1 bit)
- Bit de número de secuencia. Se establece en 1 si hay un número de secuencia presente.
- Reservado 0 (9 bits)
- Bits reservados; establecido en 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 hexadecimal 0800).
- Suma de comprobación (16 bits)
- Presente si el bit C está establecido; contiene la suma de comprobación para el encabezado GRE y la carga útil.
- Reservado 1 (16 bits)
- Presente si el bit C está establecido; se establece en 0.
- Clave (32 bits)
- Presente si el bit K está establecido; contiene un valor de clave específico de la aplicación.
- Número de secuencia (32 bits)
- Presente si el bit S está establecido; contiene un número de secuencia para el paquete GRE.
Encabezado de paquete GRE estándar (RFC 2784)
En el siguiente diagrama se representa una estructura de encabezado de paquete GRE estándar [7] .
- C (1 bit)
- Bit de suma de comprobación . Se establece en 1 si hay una suma de comprobación presente.
- Reservado 0 (12 bits)
- Bits reservados; establecido en 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 hexadecimal 0x0800; para IPv6 , sería 0x86DD. [4] )
- Suma de comprobación (16 bits)
- Presente si el bit C está establecido; contiene la suma de comprobación para el encabezado GRE y la carga útil.
- Reservado 1 (16 bits)
- Presente si el bit C está establecido; su contenido se establece en 0.
Encabezado de paquete GRE original (RFC 1701)
La estructura más nueva reemplazó a la estructura original: [1]
El RFC GRE original definió campos adicionales en el encabezado del paquete que quedaron obsoletos en el estándar actual:
- C (1 bit)
- Bit de suma de comprobación . Se establece en 1 si hay una suma de comprobación presente.
- R (1 bit)
- Bit de enrutamiento. Se establece en 1 si hay información de enrutamiento y desplazamiento.
- K (1 bit)
- Bit de clave. Se establece en 1 si hay una clave presente.
- S (1 bit)
- Bit de número de secuencia. Se establece en 1 si hay un número de secuencia presente.
- s (1 bit)
- Bit de ruta de origen estricto.
- Recurrir (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 comprobación (16 bits)
- Presente si el bit C está establecido; contiene la suma de comprobación para el encabezado GRE y la carga útil.
- Desplazamiento (16 bits)
- Presente si se establece el bit R o el bit C ; contiene información válida solo si se establece el bit R. Un campo de desplazamiento que indica el desplazamiento dentro del campo de enrutamiento hasta la entrada de ruta de origen activa.
- Clave (32 bits)
- Presente si el bit K está establecido; contiene un valor de clave específico de la aplicación.
- Número de secuencia (32 bits)
- Presente si el bit S está establecido; contiene un número de secuencia para el paquete GRE.
- Enrutamiento (variable)
- Presente si el bit R está establecido; contiene una lista de entradas de ruta de origen, por lo tanto, es de longitud variable.
Encabezado de paquete PPTP GRE
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 PPTP GRE.
- C (1 bit)
- Bit de suma de comprobación . Para los paquetes PPTP GRE, este valor se establece en 0.
- R (1 bit)
- Bit de enrutamiento. Para los paquetes PPTP GRE, este valor 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 llevan una clave).
- S (1 bit)
- Bit de 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 estricto. Para los paquetes PPTP GRE, este valor se establece en 0.
- Recurrir (3 bits)
- Bits de control de recursión . En el caso de los paquetes PPTP GRE, estos bits 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. En el caso de los paquetes PPTP GRE, estos bits se establecen en 0.
- Versión (3 bits)
- Número de versión de GRE. Para los paquetes GRE PPTP, se establece en 1.
- Tipo de protocolo (16 bits)
- Para los paquetes PPTP GRE, esto 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.
- Identificación de llamada de 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á establecido; contiene el número de secuencia de carga útil GRE.
- Número de reconocimiento (32 bits)
- Presente si el bit A está establecido; contiene el número de secuencia del paquete de carga útil GRE más alto recibido por el remitente.
Normas
- RFC 1701: Encapsulación de enrutamiento genérico (GRE) (informativo)
- RFC 1702: Encapsulación de enrutamiento genérico en redes IPv4 (informativo)
- RFC 2637: Protocolo de tunelización punto a punto (informativo)
- RFC 2784: Encapsulación de enrutamiento genérico (GRE) (norma propuesta, actualizada por RFC 2890)
- RFC 2890: Extensiones de números de secuencia y clave para GRE (norma propuesta)
- RFC 8086: Encapsulación GRE en UDP (estándar propuesto)
Véase también
Referencias
- ^ ab 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, "Mantenimiento de túneles de encapsulación de enrutamiento genérico", 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.
- ^ ab C. Pignataro; R. Bonica; S. Krishnan (octubre de 2015). Compatibilidad de IPv6 con encapsulación de enrutamiento genérico (GRE). Grupo de trabajo de ingeniería de Internet (IETF). 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 en UDP. Grupo de trabajo de ingeniería de Internet (IETF). 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 redes. 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
Wikimedia Commons tiene medios relacionados con Encapsulación de enrutamiento genérico.
- Encapsulación de enrutamiento genérico, página de inicio del subprotocolo en Cisco
- Encapsulación de enrutamiento genérico Archivado el 29 de diciembre de 2018 en Wayback Machine , entrada en Cisco DocWiki (antes conocido como "Internetworking Technology Handbook")