La encapsulación de virtualización de red genérica (GENEVE) es un protocolo de encapsulación de red que encapsula el paquete original con metadatos adicionales. Estos metadatos adicionales ayudan a habilitar la virtualización de red flexible y extensible.
En el siguiente diagrama, se muestra el formato de encabezado de un paquete GENEVE.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Ver| Opt len |O|C| Rsvd. | Protocol type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual network identifier (VNI) | Rsvd. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
En la siguiente tabla, se describen los campos de encabezado GENEVE que se muestran en el diagrama anterior:
| Campo | Descripción | Longitud del campo |
|---|---|---|
| Ver | La versión del protocolo GENEVE. La única versión admitida es cero (0). Para obtener más información, consulta Campos de encabezado de túnel. | 2 bits |
| Opt len | La longitud de los campos de opción, expresada en múltiplos de 4 bytes, sin incluir el encabezado de túnel fijo de 8 bytes. Para obtener más información, consulta Campos de encabezado de túnel. | 6 bits |
| O | El bit del paquete de control. Para obtener más información, consulta Campos de encabezado de túnel. | 1 bit |
| C | El bit de opciones críticas. Para obtener más información, consulta Campos de encabezado de túnel. | 1 bit |
| Rsvd | Campo reservado, que debe ser cero (0) en la transmisión y debe ignorarse en la recepción. Para obtener más información, consulta Campos de encabezado de túnel. | 6 bits |
| Tipo de protocolo | El tipo de protocolo permite cualquier tipo de Ethernet. Sin embargo,
la integración de seguridad de redes solo permite IPv4
(0x0800) o IPv6 (0x86DD). |
16 bits |
| Identificador de red virtual (VNI) | Un identificador único para un elemento de red virtual. La integración de seguridad de redes no propaga este campo, lo que significa que el VNI se establece en cero (0). Para obtener más información, consulta GENEVE de integración fuera de banda. | 24 bits |
| Rsvd | Campo reservado, que debe ser cero (0) en la transmisión y debe ignorarse en la recepción. Para obtener más información, consulta Campos de encabezado de túnel. | 8 bits |
Google CloudOpciones GENEVE específicas de
El encabezado GENEVE usa un formato Type-Length-Value (TLV) para sus opciones. Esto significa que cada opción se codifica con un identificador de tipo, un campo de longitud que indica el tamaño del valor y el valor en sí. Este formato permite flexibilidad y extensibilidad, ya que se pueden agregar opciones nuevas sin interrumpir las implementaciones existentes. En las siguientes secciones, se describe el orden y la cantidad de opciones. Ten en cuenta que la cantidad y el orden de las opciones variarán a medida que evolucione el producto. Por lo tanto, para garantizar la compatibilidad con versiones anteriores para la implementación de tu dispositivo, analiza el encabezado GENEVE en función de los campos TLV.
Las opciones GENEVE específicas de Google Cloud son las siguientes:
- ID de red (cookie de red)
- ID de extremo (cookie de extremo)
- ID del perfil
ID de red
La opción de ID de red, también conocida como "cookie de red", identifica la red virtual
asociada con el tráfico encapsulado en GENEVE en Google Cloud.
Esta opción se identifica con la clase de opción 0x0132 (Google) y el tipo 1 (ID de red).
Los datos de la opción contienen 32 bits, de los cuales los primeros 28 representan un ID de red opaco. El propósito de los 4 bits restantes se describe en el siguiente diagrama y tabla.
En el siguiente diagrama, se muestra el formato de opción en el paquete GENEVE.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
En la siguiente tabla, se describen los campos de opción que se muestran en el diagrama anterior:
| Campo | Descripción | Longitud del campo |
|---|---|---|
| Clase de opción | Identifica la organización o entidad que definió la opción.
El valor 0x0132 designa a Google como la entidad definitoria. |
16 bits |
| Tipo | Identifica el tipo de opción dentro de una clase. El valor
0x1 designa la opción de ID de red.
Para obtener más información,
consulta Opciones de túnel. |
8 bits |
| R | Las marcas de control de opciones reservadas para uso futuro. Estos bits deben ser cero (0) en la transmisión y deben ignorarse en la recepción. | 3 bits |
| Len | La longitud de la carga útil de la opción en incrementos de 4 bytes. La carga útil del ID de red es de 32 bits (4 bytes), por lo que la longitud de esta opción se establece en 1. | 5 bits |
| Cookie de red | La cookie de red opaca, que identifica una red virtual. | 28 bits |
| R | Reservado para la implementación futura. Se debe establecer en cero (0) en la transmisión y debe ignorarse en la recepción. | 2 bits |
| T | Indica la descarga de TLS para el paquete encapsulado. No se usa. | 1 bit |
| D | Denota la dirección del paquete original. Cero (0) significa entrada y uno (1) significa un paquete de salida en la máquina virtual (VM) duplicada original . | 1 bit |
ID de extremo
La opción de ID de extremo, también conocida como "cookie de extremo", identifica de forma única el
punto de captura, que es un controlador de interfaz de red en una Google Cloud
VM. Esta opción se identifica con la clase de opción 0x0132 (Google) y el tipo
2 (ID de extremo). Los datos de la opción son un valor opaco de 128 bits.
En el siguiente diagrama, se muestra el formato de opción en el paquete GENEVE.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
En la siguiente tabla, se describen los campos de opción que se muestran en el diagrama anterior:
| Campo | Descripción | Longitud del campo |
|---|---|---|
| Clase de opción | Identifica la organización o entidad que definió la opción.
El valor 0x0132 designa a Google como la entidad definitoria. |
16 bits |
| Tipo | Identifica el tipo de opción dentro de una clase. El valor
0x2 designa la opción de ID de extremo.
Para obtener más información,
consulta Opciones de túnel. |
8 bits |
| R | Las marcas de control de opciones reservadas para uso futuro. Estos bits deben ser cero (0) en la transmisión y deben ignorarse en la recepción. | 3 bits |
| Len | La longitud de la carga útil en incrementos de 4 bytes. La carga útil del ID de extremo es de 128 bits (16 bytes), por lo que la longitud de esta opción se establece en 4. | 5 bits |
| Cookie de extremo | Un identificador opaco para el punto de captura (una NIC de VM). | 128 bits |
ID del perfil
La opción de ID del perfil identifica el grupo de perfiles de seguridad de duplicación
que se aplica al tráfico. Esta opción se identifica con
la clase de opción 0x0132 (Google) y el tipo 3 (ID del perfil). Los datos de la opción son un identificador de 64 bits que corresponde al campo data_path_id en el grupo de perfiles de seguridad. El dispositivo de destino puede aplicar políticas de seguridad basadas en el identificador del grupo de perfiles.
En el siguiente diagrama, se muestra el formato de opción en el paquete GENEVE.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
En la siguiente tabla, se describen los campos de opción que se muestran en el diagrama anterior:
| Campo | Descripción | Longitud del campo |
|---|---|---|
| Clase de opción | Identifica la organización o entidad que definió la opción.
El valor 0x0132 designa a Google como la entidad definitoria. |
16 bits |
| Tipo | Identifica el tipo de opción dentro de una clase. El valor
0x3 designa la opción de ID del perfil.
Para obtener más información,
consulta Opciones de túnel. |
8 bits |
| R | Las marcas de control de opciones reservadas para uso futuro. Estos bits deben ser cero en la transmisión y deben ignorarse en la recepción. | 3 bits |
| Len | La longitud de la carga útil de la opción en incrementos de 4 bytes. La carga útil del ID del perfil es de 64 bits (8 bytes), por lo que la longitud de esta opción se establece en 2. | 5 bits |
| ID del perfil | El identificador del grupo de perfiles de seguridad de duplicación. | 64 bits |
Formatos de encabezado GENEVE para la integración de seguridad de redes
En esta sección, se describen los formatos de encabezado GENEVE que usan los servicios de integración de seguridad de redes.
Encabezado IPv4
El formato de paquete GENEVE encapsula un encabezado de túnel compacto en UDP sobre IPv4. Un pequeño encabezado de túnel fijo proporciona información de control y capacidades e interoperabilidad de nivel básico.
En el siguiente diagrama, se muestran los campos de encabezado IPv4 para el paquete GENEVE.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of service| Total length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to live | Proto=17 (UDP)| Header checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
En la siguiente tabla, se describen los campos de encabezado IPv4 que se muestran en el diagrama anterior:
| Campo | Descripción |
|---|---|
| Proto=17 (siempre UDP para GENEVE) | Indica que la carga útil encapsulada usa el protocolo UDP. |
| Dirección de origen | La dirección IP de la puerta de enlace de la subred local. |
| Dirección de destino | La VIP del balanceador de cargas propiedad del cliente. |
Encabezado UDP
El encabezado UDP RFC 0768 encapsula datos y mantiene la semántica sin conexión de Ethernet y la dirección IP. También proporciona entropía a los routers que realizan varias rutas de igual costo (ECMP).
En el siguiente diagrama, se muestra el formato de encabezado para un paquete Geneve encapsulado dentro de un UDP.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source port = <hash> | Dest port = 6081 (Geneve) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| UDP length | UDP checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
En la siguiente tabla, se describen los campos de encabezado UDP que se muestran en el diagrama anterior:
| Campos | Descripción |
|---|---|
| Puerto de origen | Un hash opaco en todo el rango de 16 bits. El valor es el mismo para todos los paquetes que pertenecen a un solo flujo encapsulado (en ambas direcciones). |
| Puerto de destino | El número de puerto de destino designado para el tráfico GENEVE, establecido en 6081. |
| Longitud de UDP | La longitud total del datagrama UDP, incluido el encabezado UDP y el paquete GENEVE encapsulado. |
| Suma de comprobación de UDP | El valor de la suma de comprobación para el datagrama UDP, que se usa para la detección de errores. |
GENEVE de integración fuera de banda
En esta sección, se describen los formatos de encabezado GENEVE que utilizan los servicios de integración de seguridad de redes, específicamente la integración fuera de banda. La integración fuera de banda usa un túnel GENEVE para encapsular y entregar paquetes duplicados. Los paquetes se dirigen a la dirección IP virtual (VIP) del balanceador de cargas interno del colector y se anotan con Google Cloud-específicos metadatos como la cookie de red.
Las opciones GENEVE específicas Google Cloudde que se usan en la integración fuera de banda son la cookie de red, la cookie de extremo y el ID del perfil. Para obtener más información, consulta Google CloudOpciones GENEVE específicas de.
En el siguiente diagrama, se muestra cómo se usan las opciones GENEVE específicas de Google Clouden la integración fuera de banda.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=0| Opt len |O|C| Rsvd | Protocol type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual network identifier (VNI) = 0 | Rsvd. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
GENEVE de integración en banda
La integración en banda usa un túnel GENEVE para encapsular y entregar paquetes interceptados. La dirección IP virtual (VIP) del balanceador de cargas interno del productor recibe los paquetes anotados con Google Cloudmetadatos específicos de, como la cookie de red.
La integración en banda usa las siguientes Google Cloud-opciones GENEVE específicas de: cookie de red, cookie de extremo y ID del perfil. Para obtener más información, consulta Google CloudOpciones GENEVE específicas de.
La integración en banda admite la reinyección de paquetes al extremo original mediante un túnel GENEVE bidireccional lógico, que consta de dos túneles GENEVE unidireccionales. Después de que el dispositivo de red del productor intercepta e inspecciona un paquete, puede descartarlo o reinjectarlo. Para reinjectar el paquete, el dispositivo hace lo siguiente:
- Vuelve a encapsular el paquete con el encabezado GENEVE original (las mismas opciones).
- Intercambia las direcciones de origen y destino en el encabezado IP externo.
- Se asegura de que las sumas de comprobación sean correctas.
En el siguiente diagrama, se muestra cómo se usan las opciones GENEVE específicas de Google Clouden la integración en banda.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=0| Opt len |O|C| Rsvd | Protocol type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual network identifier (VNI) = 0 | Rsvd. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Class=0x0132 (Google) | Type=01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network Cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Class=0x0132 (Google) | Type=02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint Cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Class=0x0132 (Google) | Type=03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Encapsulación GENEVE y requisitos de MTU
La unidad máxima de transmisión (MTU) es el tamaño en bytes del paquete de IP más grande posible que puede caber dentro de una trama Ethernet, incluidos los encabezados IP, los encabezados de protocolo de capa 4 y los datos de capa 4. Para obtener más información, consulta Unidad de transmisión máxima.
En Google Cloud las redes, la MTU permitida es de 8,896 bytes. Sin embargo, para la integración de seguridad de redes, se deben retener 308 bytes para la sobrecarga de encapsulación GENEVE. Esta necesidad de retención tiene implicaciones para las redes de consumidores y productores:
MTU de la red de consumidores: La MTU de la red de consumidores no debe ser superior a 8,588 bytes. Este límite garantiza que haya suficiente espacio para la sobrecarga de GENEVE sin exceder la MTU máxima.
MTU de la red de productores: La MTU de la red de productores debe ser al menos 308 bytes más que la MTU de la red de consumidores. Esta asignación admite la encapsulación GENEVE adicional.
Si no hay suficientes límites de MTU para admitir la encapsulación GENEVE, se puede descartar el paquete. Esto puede suceder a nivel de la red virtual o en el sistema operativo de la VM.
¿Qué sigue?
- Descripción general de la integración de seguridad de redes
- Descripción general de la integración fuera de banda
- Supervisa la integración fuera de banda