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]
Protocolo de comunicación | |
Propósito | Túneles de red |
---|---|
Desarrollador (es) | Cisco Systems |
Introducido | 1994 [1] |
RFC (s) | RFC1701, RFC1702, RFC2784 |
Usos de ejemplo
- Junto con PPTP para crear VPN .
- Junto con IPsec VPN para permitir el paso de información de enrutamiento entre redes conectadas.
- En protocolos de movilidad .
- En interfaces A8 / A10 para encapsular datos IP hacia / desde la función de control de paquetes (PCF).
- Linux y BSD pueden establecer IP ad-hoc sobre túneles GRE que son interoperables con equipos de Cisco.
- Dispositivo protegido de denegación de servicio distribuido (DDoS) a un punto final desprotegido .
Pila de protocolos de ejemplo
Capa de modelo OSI | Protocolo |
---|---|
5. Sesión | X.225 |
4. Transporte | UDP |
3. Red (encapsulada en GRE) | IPv4 |
Encapsulamiento | GRE |
3. Red | IPv6 |
2. Enlace de datos | Ethernet |
1. Físico | Capa física de Ethernet |
Basado en los principios de capas de protocolos en OSI, la encapsulación de protocolos, no específicamente GRE, rompe el orden de capas. Puede verse como un separador entre dos pilas de protocolos diferentes, una que actúa como portadora de otra.
IP como protocolo de entrega
Los paquetes GRE que están encapsulados dentro de IP utilizan el protocolo IP tipo 47 . [3]
Encabezado del paquete
Encabezado de paquete GRE extendido (RFC2890)
La versión extendida del encabezado del paquete GRE según lo definido por RFC 2890 .
Bits 0-3 | 4-12 | 13-15 | 16–31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
C | K | S | Reservado0 | Versión | Tipo de protocolo | ||||||||||||||||||||||||||
Suma de comprobación (opcional) | Reservado 1 (opcional) | ||||||||||||||||||||||||||||||
Clave (opcional) | |||||||||||||||||||||||||||||||
Número de secuencia (opcional) |
- C
- Bit de suma de comprobación . Se establece en 1 si hay una suma de comprobación.
- K
- Pedazo de llave. Establecer en 1 si hay una llave presente.
- S
- Bit de número de secuencia. Establecer en 1 si hay un número de secuencia presente.
- Reservado0
- Bits reservados; establecido en 0.
- Versión
- Número de versión de GRE; establecido en 0.
- Tipo de protocolo
- Indica el tipo de protocolo ether de la carga útil encapsulada. (Para IPv4 , sería hexadecimal 0800).
- Suma de comprobación
- Presente si el bit C está establecido; contiene la suma de comprobación para el encabezado GRE y la carga útil.
- Reservado1
- Presente si el bit C está establecido; se establece en 0.
- Clave
- Presente si el bit K está establecido; contiene un valor de clave específico de la aplicación.
- Secuencia de números
- Presente si el bit S está establecido; contiene un número de secuencia para el paquete GRE.
Encabezado de paquete GRE estándar (RFC2784)
En el siguiente diagrama se representa una estructura de encabezado de paquete GRE estándar , como se define en RFC 2784 y RFC 2890 .
0 | Bits 1 a 12 | 13-15 | 16–31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
C | Reservado0 | Versión | Tipo de protocolo | ||||||||||||||||||||||||||||
Suma de comprobación (opcional) | Reservado1 (opcional) |
- C
- Bit de suma de comprobación . Se establece en 1 si hay una suma de comprobación.
- Reservado0
- Bits reservados; establecido en 0.
- Versión
- Número de versión de GRE; establecido en 0.
- Tipo de protocolo
- Indica el tipo de protocolo ether de la carga útil encapsulada. (Para IPv4 , sería hexadecimal 0800).
- Suma de comprobación
- Presente si el bit C está establecido; contiene la suma de comprobación para el encabezado GRE y la carga útil.
- Reservado1
- Presente si el bit C está establecido; se establece en 0.
Encabezado de paquete GRE estándar (RFC1701, obsoleto)
La estructura más nueva reemplazó a la estructura original como se define en RFC 1701 :
Bits 0–4 | 5-7 | 8-12 | 13-15 | 16–31 | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
C | R | K | S | s | Repetirse | Banderas | Versión | Tipo de protocolo | |||||||||||||||||||||||
Suma de comprobación (opcional) | Desplazamiento (opcional) | ||||||||||||||||||||||||||||||
Clave (opcional) | |||||||||||||||||||||||||||||||
Número de secuencia (opcional) | |||||||||||||||||||||||||||||||
Enrutamiento (opcional, longitud variable) |
El GRE RFC original definió campos adicionales en el encabezado del paquete que se volvieron obsoletos en el estándar actual:
- R
- Bit de enrutamiento. Se establece en 1 si hay información de enrutamiento y compensación.
- K
- Pedazo de llave. Establecer en 1 si hay una llave presente.
- S
- Bit de número de secuencia. Establecer en 1 si hay un número de secuencia presente.
- s
- Bit de ruta de origen estricto.
- Repetirse
- Bits de control de recursividad .
- Banderas
- Reservado para uso futuro, establecido en 0.
- Compensar
- 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 compensación que indica la compensación dentro del campo de Enrutamiento a la entrada de ruta de origen activa
- Clave
- Presente si el bit K está establecido; contiene un valor de clave específico de la aplicación.
- Secuencia de números
- Presente si el bit S está establecido; contiene un número de secuencia para el paquete GRE.
- Enrutamiento
- Presente si el bit R está establecido; contiene una lista de entradas de ruta de origen, por lo tanto, es de longitud variable
Encabezado del paquete GRE de PPTP
El Protocolo de túnel punto a punto (PPTP), definido en RFC 2637 , utiliza una estructura de encabezado de paquete GRE variante, que se representa a continuación. PPTP crea un túnel GRE a través del cual se envían los paquetes GRE de PPTP.
Bits 0–4 | 5-7 | 8 | 9-12 | 13-15 | 16–31 | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
C | R | K | S | s | Repetirse | A | Banderas | Versión | Tipo de protocolo | ||||||||||||||||||||||
Longitud de carga útil clave | ID de llamada clave | ||||||||||||||||||||||||||||||
Número de secuencia (opcional) | |||||||||||||||||||||||||||||||
Número de acuse de recibo (opcional) |
- C
- Bit de suma de comprobación . Para los paquetes PPTP GRE, se establece en 0.
- R
- Bit de enrutamiento. Para los paquetes PPTP GRE, se establece en 0.
- K
- Pedazo de llave. Para los paquetes PPTP GRE, esto se establece en 1. (Todos los paquetes PPTP GRE llevan una clave).
- S
- 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
- Bit de ruta de origen estricto. Para los paquetes PPTP GRE, se establece en 0.
- Repetirse
- Bits de control de recursividad . Para los paquetes PPTP GRE, estos se establecen en 0.
- A
- Número de acuse de recibo presente. Se establece en 1 si se proporciona un número de reconocimiento, lo que indica un paquete de reconocimiento PPTP GRE.
- Banderas
- Marcar bits. Para los paquetes PPTP GRE, estos se establecen en 0.
- Versión
- Número de versión de GRE. Para paquetes PPTP GRE, se establece en 1.
- Tipo de protocolo
- Para los paquetes PPTP GRE, esto se establece en hexadecimal 880B.
- Longitud de carga útil clave
- Contiene el tamaño de la carga útil, sin incluir el encabezado GRE.
- ID de llamada clave
- Contiene el ID de llamada del par para la sesión a la que pertenece el paquete.
- Secuencia de números
- Presente si el bit S está establecido; contiene el número de secuencia de la carga útil GRE.
- Número de acuse de recibo
- Presente si se establece el bit A; 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 túnel punto a punto (informativo)
- RFC 2784: Encapsulación de enrutamiento genérico (GRE) (estándar propuesto, actualizado por RFC 2890)
- RFC 2890: Extensiones de número de secuencia y clave para GRE (estándar propuesto)
- RFC 8086: Encapsulación GRE-in-UDP (estándar propuesto)
Ver también
Virtualización de red mediante encapsulación de enrutamiento genérico : transporta paquetes L2 a través de GRE
Referencias
- ^ Encapsulación de enrutamiento genérico (GRE) . IETF . Octubre de 1994. doi : 10.17487 / RFC1701 . RFC 1701 . Consultado el 14 de mayo de 2018 .
- ^ [1] , "Keepalives del túnel de encapsulación de enrutamiento genérico", publicado el 1 de julio de 2002
- ^ RFC 1702: Encapsulación de enrutamiento genérico sobre redes IPv4. Octubre de 1994.
enlaces externos
- Encapsulación de enrutamiento genérico , página de inicio de subprotocolo en Cisco
- Encapsulación de enrutamiento genérico , entrada en Cisco DocWiki (anteriormente conocido como "Manual de tecnología de interconexión de redes")