了解 GENEVE 格式

通用网络虚拟化封装 (GENEVE) 是一种网络封装协议,可使用额外的元数据封装原始数据包。借助此类额外的元数据,可以实现灵活且可扩展的网络虚拟化。

下图显示了 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.     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

下表介绍了上图中显示的 GENEVE 标头字段:

字段 说明 字段长度
Ver GENEVE 协议的版本。唯一支持的版本是零 (0)。 如需了解详情,请参阅隧道标头字段 2 位
Opt len 选项字段的长度,以 4 字节为单位表示,不包括 8 字节的固定隧道标头。 如需了解详情,请参阅隧道标头字段 6 位
O 控制数据包位。如需了解详情,请参阅隧道标头字段 1 位
C 关键选项位。如需了解详情,请参阅隧道标头字段 1 位
Rsvd 保留字段,在传输时必须为零 (0),在接收时必须忽略。如需了解详情,请参阅隧道标头字段 6 位
协议类型 协议类型允许使用任何以太类型,但 Network Security Integration 仅允许使用 IPv4 (0x0800) 或 IPv6 (0x86DD)。 16 位
虚拟网络标识符 (VNI) 虚拟网络元素的唯一标识符。 网络安全集成不会填充此字段,这意味着 VNI 设置为零 (0)。如需了解详情,请参阅带外集成 GENEVE 24 位
Rsvd 保留字段,在传输时必须为零 (0),在接收时必须忽略。如需了解详情,请参阅隧道标头字段 8 位

特定于Google Cloud的 GENEVE 选项

GENEVE 标头使用类型-长度-值 (TLV) 格式来表示其选项。这意味着,每个选项都采用以下方式进行编码:类型标识符、指示值大小的长度字段以及值本身。此格式具有灵活性和可扩展性,因为可以添加新选项,而不会中断现有实现。 以下部分介绍了选项的顺序和数量。请注意,随着产品不断发展,选项的数量和顺序会有所变化。因此,为确保设备实现向前兼容,请基于 TLV 字段解析 GENEVE 标头。

特定于 Google Cloud 的 GENEVE 选项如下所示:

  • 广告联盟 ID(广告联盟 Cookie)
  • 端点 ID(端点 Cookie)
  • 个人资料 ID
  • 时间戳(预览版
  • 网络稳定 ID(预览版

广告网络 ID

网络 ID 选项(也称为“网络 Cookie”)用于标识与 Google Cloud中采用 GENEVE 封装的流量相关联的虚拟网络。此选项由选项类 0x0132 (Google) 和类型 0x01(网络 ID)标识。选项数据包含 32 位,其中前 28 位表示不透明的网络 ID。其余 4 位的用途如下面的图表和表格所示。

下图显示了 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=0x01   R|R|R|  Len=1   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                     Network cookie                    |R|R|T|D|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

下表介绍了上图中显示的选项字段:

字段 说明 字段长度
选项类 标识定义了相应选项的组织或实体。 值 0x0132 表示 Google 是定义实体。 16 位
类型 用于标识类中的选项类型。值 0x01 表示“网络 ID”选项。 如需了解详情,请参阅隧道选项 8 位
R 为将来使用而预留的选项控制标志。这些位在传输时必须为零 (0),在接收时必须忽略。 3 位
Len 选项载荷的长度,以 4 字节为增量。网络 ID 载荷为 32 位(4 字节),因此此选项的长度设置为 1。 5 位
网络 Cookie 用于标识虚拟网络的不透明网络 Cookie。 28 位
R 预留以供日后实现。在传输时必须设置为零 (0),在接收时必须忽略。 2 位
T 指示封装数据包的 TLS 分流。未使用。 1 位
D 表示原始数据包的方向。0 表示原始镜像虚拟机的入站数据包,1 表示出站数据包。 1 位

端点 ID

端点 ID 选项(也称为“端点 Cookie”)可唯一标识捕获点,即 Google Cloud虚拟机上的网络接口控制器。此选项由选项类 0x0132 (Google) 和类型 0x02(端点 ID)标识。选项数据是一个 128 位的不透明值。

下图显示了 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=0x02   |R|R|R|  Len=4  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                                                               +
      |                                                               |
      +                        Endpoint cookie                        +
      |                                                               |
      +                                                               +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

下表介绍了上图中显示的选项字段:

字段 说明 字段长度
选项类 标识定义了相应选项的组织或实体。 值 0x0132 表示 Google 是定义实体。 16 位
类型 用于标识类中的选项类型。值 0x02 表示“端点 ID”选项。 如需了解详情,请参阅隧道选项 8 位
R 为将来使用而预留的选项控制标志。这些位在传输时必须为零 (0),在接收时必须忽略。 3 位
Len 以 4 字节为增量的载荷长度。端点 ID 载荷为 128 位(16 字节),因此此选项的长度设置为 4。 5 位
端点 Cookie 捕获点(虚拟机网卡)的不透明标识符。 128 位

个人资料 ID

配置文件 ID 选项用于标识应用于流量的镜像安全配置文件组。此选项由选项类 0x0132 (Google) 和类型 0x03(个人资料 ID)标识。选项数据是与安全配置文件组中的 data_path_id 字段对应的 64 位标识符。目标设备可能会根据配置文件组标识符强制执行安全政策。

下图显示了 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=0x03   |R|R|R|  Len=2  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                           Profile ID                          +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

下表介绍了上图中显示的选项字段:

字段 说明 字段长度
选项类 标识定义了相应选项的组织或实体。 值 0x0132 表示 Google 是定义实体。 16 位
类型 用于标识类中的选项类型。值 0x03 表示“配置文件 ID”选项。 如需了解详情,请参阅隧道选项 8 位
R 为将来使用而预留的选项控制标志。这些位在传输时必须为零,在接收时必须忽略。 3 位
Len 选项载荷的长度,以 4 字节为增量。个人资料 ID 载荷为 64 位(8 字节),因此此选项的长度设置为 2。 5 位
个人资料 ID 镜像安全配置文件组的标识符。 64 位

时间戳

时间戳选项表示源虚拟机上原始数据包的捕获时间。此选项由选项类 0x0132 (Google) 和类型 0x0f(时间戳)标识。

下图显示了 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                           +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

下表介绍了上图中显示的选项字段:

字段 说明 字段长度
选项类 标识定义了相应选项的组织或实体。 值 0x0132 表示 Google 是定义实体。 16 位
类型 用于标识类中的选项类型。值 0x0f 表示时间戳选项。 如需了解详情,请参阅隧道选项 8 位
R 为将来使用而预留的选项控制标志。这些位在传输时必须为零,在接收时必须忽略。 3 位
Len 选项载荷的长度,以 4 字节为增量。时间戳载荷为 64 位(8 字节),因此此选项的长度设置为 2。 5 位
时间戳 原始数据包的捕获时间,以自纪元开始以来的纳秒数表示。纳秒级粒度并不能保证纳秒级准确度。如需了解具体准确度服务等级目标 (SLO),请参阅相应产品的文档。 64 位

网络稳定 ID

“网络稳定 ID”选项用于标识镜像虚拟机的网络。此选项由选项类 0x0132 (Google) 和类型 0x10(网络稳定 ID)标识。

下图显示了 GENEVE 数据包中的选项格式。网络稳定 ID 由项目编号和网络 ID 组成。

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

下表介绍了上图中显示的选项字段:

字段 说明 字段长度
选项类 标识定义了相应选项的组织或实体。 值 0x0132 表示 Google 是定义实体。 16 位
类型 用于标识类中的选项类型。值 0x10 表示“网络稳定 ID”选项。 如需了解详情,请参阅隧道选项 8 位
R 为将来使用而预留的选项控制标志。这些位在传输时必须为零,在接收时必须忽略。 3 位
Len 选项载荷的长度,以 4 字节为增量。网络 ID 载荷为 128 位(16 字节),因此此选项的长度设置为 4。 5 位
网络稳定版 ID 镜像虚拟机的网络。 128 位(64 位项目编号和 64 位网络 ID)

Network Security Integration 的 GENEVE 标头格式

本部分介绍了 Network Security Integration 服务使用的 GENEVE 标头格式。

基于 IPv4 的 GENEVE 数据包格式

GENEVE 数据包格式通过 IPv4 将紧凑型隧道标头封装在 UDP 中。小型固定隧道标头提供控制信息、基本级功能和互操作性。

下图显示了基于 IPv4 的 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                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

下表介绍了上图所示的 IPv4 标头字段:

字段 说明
Proto=17(对于 GENEVE,始终为 UDP) 表示封装的载荷使用 UDP 协议。
源地址 本地子网的网关 IP 地址。
目标地址 客户自有负载均衡器的 VIP。

UDP 标头

UDP RFC 0768 标头封装了数据,同时保持了以太网和 IP 地址的无连接语义。它还为执行等价多路径 (ECMP) 的路由器提供熵。

下图显示了封装在 UDP 中的 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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Source port = <hash>    | Dest port = 6081 (Geneve)|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           UDP length          |          UDP checksum         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

下表介绍了上图所示的 UDP 标头字段:

字段 说明
来源端口 覆盖整个 16 位范围的不透明哈希。对于属于单个封装流(双向)的所有数据包,该值均相同。
目标端口 GENEVE 流量的指定目标端口号,设置为 6081。
UDP 长度 UDP 数据报的总长度,包括 UDP 标头和封装的 GENEVE 数据包。
UDP 校验和 用于检测错误的 UDP 数据报的校验和值。

带外集成

带外集成使用 GENEVE 隧道封装和传送镜像数据包。收集器的内部负载均衡器虚拟 IP 地址 (VIP) 会接收带有 Google Cloud特定元数据(例如网络 Cookie)注释的数据包。

带外集成使用以下 Google Cloud专用 GENEVE 选项:网络 Cookie、端点 Cookie 和配置文件 ID。如需了解详情,请参阅 特定于Google Cloud的 GENEVE 选项

下图展示了带外集成如何使用 Google Cloud特定的 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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |V=0|  Opt len  |O|C|   Rsvd    |         Protocol type         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |        Virtual network identifier (VNI) = 0   |     Rsvd.     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option class=0x0132 (Google) |   Type=0x01   |R|R|R|  Len=1  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                     Network cookie                    |R|R|T|D|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option class=0x0132 (Google) |   Type=0x02   |R|R|R|  Len=4  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                                                               +
      |                                                               |
      +                        Endpoint cookie                        +
      |                                                               |
      +                                                               +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option class=0x0132 (Google) |   Type=0x03   |R|R|R|  Len=2  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                           Profile ID                          +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

下图展示了带外集成如何使用 Google Cloud特定的 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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |V=0|  Opt len  |O|C|   Rsvd    |         Protocol type         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |        Virtual network identifier (VNI) = 0   |     Rsvd.     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option class=0x0132 (Google) |   Type=0x01   |R|R|R|  Len=1  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                     Network cookie                    |R|R|T|D|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option class=0x0132 (Google) |   Type=0x02   |R|R|R|  Len=4  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                                                               +
      |                                                               |
      +                        Endpoint cookie                        +
      |                                                               |
      +                                                               +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option class=0x0132 (Google) |   Type=0x03   |R|R|R|  Len=2  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                           Profile ID                          +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  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                          +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

带内集成

带内集成使用 GENEVE 隧道封装和传送拦截的数据包。生产者的内部负载均衡器虚拟 IP 地址 (VIP) 接收带有 Google Cloud特定元数据(例如网络 Cookie)注释的数据包。

带内集成使用以下 Google Cloud专用 GENEVE 选项:网络 Cookie、端点 Cookie 和配置文件 ID。如需了解详情,请参阅特定于Google Cloud的 GENEVE 选项

带内集成支持使用逻辑双向 GENEVE 隧道将数据包重新注入到原始端点,该隧道由两个单向 GENEVE 隧道组成。提供方网络设备拦截并检查数据包后,可以丢弃或重新注入数据包。如需重新注入数据包,设备会执行以下操作:

  • 使用原始 GENEVE 标头(相同选项)重新封装数据包。
  • 交换外部 IP 标头中的来源地址和目标地址。
  • 确保校验和正确无误。

下图展示了如何在带内集成中使用 Google Cloud特有的 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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |V=0|  Opt len  |O|C|   Rsvd    |         Protocol type         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |        Virtual network identifier (VNI) = 0   |     Rsvd.     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option Class=0x0132 (Google) |   Type=0x01   |R|R|R|  Len=1  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                     Network Cookie                    |R|R|T|D|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option Class=0x0132 (Google) |   Type=0x02   |R|R|R|  Len=4  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                                                               +
      |                                                               |
      +                        Endpoint Cookie                        +
      |                                                               |
      +                                                               +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option Class=0x0132 (Google) |   Type=0x03   |R|R|R|  Len=2  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                           Profile ID                          +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

GENEVE 封装和 MTU 要求

最大传输单元 (MTU) 是指以太网帧内可容纳的包括 IP 报头、第 4 层协议报头和第 4 层数据在内的最大 IP 数据包的大小(以字节为单位)。如需了解详情,请参阅最大传输单元

在 Google Cloud 网络中,允许的 MTU 为 8588 字节。不过,对于 Network Security Integration,需要保留 308 字节用于 GENEVE 封装开销。这种保留需求对消费者网络和生产者网络都有影响:

  • 消费类网络 MTU:消费类网络的 MTU 不得超过 8588 字节。此限额可确保有足够的空间来容纳 GENEVE 开销,而不会超出最大 MTU。

  • 生产者网络 MTU:生产者网络的 MTU 必须比消费者网络的 MTU 至少大 396 字节。此容差可容纳额外的 GENEVE 封装。

如果没有足够的 MTU 限制来容纳 GENEVE 封装,则数据包可能会被丢弃。这种情况可能发生在虚拟网络级层或虚拟机的操作系统中。

后续步骤