Comprende 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 del 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 del encabezado GENEVE que se muestran en el diagrama anterior:

Campo Descripción Longitud del campo
Ver Es la versión del protocolo GENEVE. La única versión compatible es cero (0). Para obtener más información, consulta Campos del encabezado del túnel. 2 bits
Opt len Es la longitud de los campos de opciones, 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 del encabezado del túnel. 6 bits
O Es el bit del paquete de control. Para obtener más información, consulta Campos del encabezado del túnel. 1 bit
C Es el bit de opciones críticas. Para obtener más información, consulta Campos del encabezado del túnel. 1 bit
Rsvd Es un 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 del encabezado del túnel. 6 bits
Tipo de protocolo El tipo de protocolo permite ethertype: IPv4 (0x0800) o IPv6 (0x86DD). 16 bits
Identificador de red virtual (VNI) Es un identificador único para un elemento de red virtual. El VNI se establece en cero (0). Para obtener más información, consulta Opciones de GENEVE. 24 bits
Rsvd Es un 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 del encabezado del túnel. 8 bits

Opciones de GENEVE para la Duplicación de paquetes en redes de VPC de ULL

El encabezado GENEVE usa un formato Type-Length-Value (TLV) para sus opciones. 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 proporciona flexibilidad y extensibilidad, lo que permite agregar opciones nuevas sin interrumpir las implementaciones existentes. En las siguientes secciones, se describen las opciones. Dado que la cantidad y el orden de las opciones pueden cambiar, analiza el encabezado GENEVE en función de los campos TLV para garantizar la compatibilidad con versiones anteriores para la implementación de tu dispositivo.

Las opciones de GENEVE específicas de la Duplicación de paquetes de ULL son las siguientes:

  • ID de red (cookie de red)
  • Marca de tiempo
  • ID estable de la red
  • Dirección IP principal

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 la Duplicación de paquetes de ULL. Esta opción se identifica con la clase de opción 0x0132 (Google) y el tipo 0x1 (ID de red).

Para la Duplicación de paquetes de ULL, la cookie de red se establece en cero (0). Los datos de la opción contienen 32 bits; los primeros 31 bits están reservados y el bit final indica la dirección del paquete original.

La Duplicación de paquetes de ULL usa una versión modificada de la opción de ID de red. En esta versión, todos los bits, excepto la dirección y los bits reservados, se establecen en 0. Para obtener más información sobre el punto de captura, consulta ID estable de la red.

En el siguiente diagrama, se muestra el formato de la opción en el paquete GENEVE.

       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  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            Reserved                         |D|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

En la siguiente tabla, se describen los campos de opciones 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 Son 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 Es 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
Reservada Debe establecerse en cero (0) en la transmisión y debe ignorarse en la recepción. 31 bits
D Indica la dirección del paquete original. Cero (0) indica entrada y uno (1) indica un paquete de salida en el recurso duplicado original 1 bit

Marca de tiempo

La opción de marca de tiempo indica la hora de captura del paquete original en el punto de captura (la instancia de Compute Engine en la que se capturó o duplicó el paquete). Esta opción se identifica con la clase de opción 0x0132 (Google) y el tipo 0x0f (marca de tiempo).

En el siguiente diagrama, se muestra el formato de la 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=0x0f   |R|R|R|  Len=2  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                           Timestamp                           +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

En la siguiente tabla, se describen los campos de opciones 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 0x0f designa la opción de marca de tiempo. Para obtener más información, consulta Opciones de túnel. 8 bits
R Son 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 Es la longitud de la carga útil de la opción en incrementos de 4 bytes. La carga útil de la marca de tiempo es de 64 bits (8 bytes), por lo que la longitud de esta opción se establece en 2. 5 bits
Marca de tiempo Es la hora de captura del paquete original, representada como nanosegundos desde la época. La granularidad de nanosegundos no garantiza la precisión de nanosegundos. 64 bits

ID estable de la red

La opción de ID estable de la red identifica la red de la instancia duplicada. Esta opción se identifica con la clase de opción 0x0132 (Google) y el tipo 0x10 (ID estable de la red).

En el siguiente diagrama, se muestra el formato de la opción en el paquete GENEVE. El ID estable de la red incluye un número de proyecto y un ID de red.

       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=0x10   |R|R|R|  Len=4  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                       Project Number                          +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                         Network ID                            +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

En la siguiente tabla, se describen los campos de opciones 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 0x10 designa la opción de ID estable de la red. Para obtener más información, consulta Opciones de túnel. 8 bits
R Son 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 Es la longitud de la carga útil de la opción en incrementos de 4 bytes. La carga útil del ID de red es de 64 bits (8 bytes), por lo que la longitud de esta opción se establece en 4. 5 bits
Número del proyecto Número del proyecto Google Cloud . 64 bits
ID de red Es el ID de la red de VPC de ULL. 64 bits

Dirección IP principal

La opción de dirección IP principal identifica la dirección IP del punto de captura (la instancia de Compute Engine en la que se capturó o duplicó el paquete). Esta opción se identifica con la clase de opción 0x0132 (Google) y el tipo 0x11 (dirección IP principal).

En el siguiente diagrama, se muestra el formato de la opción en el paquete GENEVE.

       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=0x11   |R|R|R|  Len=1  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                       Primary IP Address                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

En la siguiente tabla, se describen los campos de opciones 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 0x11 designa la opción de dirección IP principal. 8 bits
R Son 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 Es la longitud de la carga útil de la opción en incrementos de 4 bytes. La carga útil de la dirección IP es de 32 bits (4 bytes), por lo que la longitud de esta opción se establece en 1. 5 bits
Dirección IP principal Es la dirección IP principal del punto de captura (la NIC de la instancia de Compute Engine en la que se capturó o duplicó el paquete). 32 bits

Formatos de encabezado GENEVE

En esta sección, se describen los formatos de encabezado GENEVE que usa la Duplicación de paquetes para las redes de VPC de ULL.

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 del 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 Google Cloudespecíficos que se muestran en el diagrama anterior. Para obtener información sobre los campos de encabezado IPv4 comunes, consulta RFC 8926.

Campo Descripción
Proto=17 (siempre UDP para GENEVE) Indica que la carga útil encapsulada usa el protocolo UDP.
Dirección de origen Es la dirección IP de la puerta de enlace de la subred local.
Dirección de destino Es la VIP del balanceador de cargas propiedad del cliente.

Encabezado UDP

El encabezado UDP RFC 0768 encapsula datos mientras mantiene la semántica sin conexión de Ethernet y las direcciones 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 del 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 del encabezado UDP que se muestran en el diagrama anterior:

Campo Descripción
Puerto de origen Es 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 Es el número de puerto de destino designado para el tráfico GENEVE, establecido en 6081.
Longitud de UDP Es la longitud total del datagrama UDP, incluido el encabezado UDP y el paquete GENEVE encapsulado.
Suma de comprobación de UDP Es el valor de la suma de comprobación del datagrama UDP, que se usa para la detección de errores.

Opciones de GENEVE

Las Google Cloudopciones de GENEVE específicas que se usan en la Duplicación de paquetes para las redes de VPC de ULL son la cookie de red, la marca de tiempo, el ID estable de la red, la dirección IP principal y la marca de tiempo de procesamiento de orden justo. Para obtener más información, consulta Opciones de GENEVE para la Duplicación de paquetes en redes de VPC de ULL.

En el siguiente diagrama, se muestra cómo Google Cloudse usan las opciones de GENEVE específicas en la Duplicación de paquetes para las redes de VPC de ULL.

       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                     |D|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option Class=0x0132 (Google) |   Type=0x0f   |R|R|R|  Len=2  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                           Timestamp                           +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option Class=0x0132 (Google) |    Type=0x10   |R|R|R|  Len=4  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                         Project Number                        +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                           Network ID                          +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option Class=0x0132 (Google) |   Type=0x11   |R|R|R|  Len=1  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                       Primary IP Address                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option Class=0x0132 (Google) |   Type=0x13   |R|R|R|  Len=2  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                Fair order processing timestamp                +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

El Opt len en el diagrama anterior representa la longitud de los campos de opciones en múltiplos de 4 bytes. Esta longitud no incluye el encabezado de túnel fijo de 8 bytes. Para obtener más información, consulta Campos del encabezado del túnel.

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.

Las redes de VPC de ULL tienen una MTU máxima de 1,500 bytes. Sin embargo, la Duplicación de paquetes de ULL requiere 308 bytes para la sobrecarga de encapsulación GENEVE. Para garantizar que el tráfico duplicado llegue a tus instancias de colector sin fragmentación, la red en la que reside tu colector debe tener una MTU de al menos 1,808 bytes (1,500 bytes para el tráfico estándar más 308 bytes para la sobrecarga de encapsulación GENEVE).

Si los límites de MTU no son suficientes para admitir la encapsulación GENEVE, es posible que se descarten los paquetes. Esto puede ocurrir a nivel de la red virtual o en el sistema operativo.