Información sobre el formato GENEVE

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?