通用网络虚拟化封装 (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
网络 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 封装,则数据包可能会被丢弃。这种情况可能发生在虚拟网络级层或虚拟机的操作系统中。