跳到主要内容

A2. IPv6 Extension Headers (IPv6 扩展头)

此表显示了如何对 IPv6 扩展头进行 "可变性" 分类。

MUTABLE BUT PREDICTABLE (可变但可预测) -- 包含在 ICV 计算中

Option/Extension NameReference
Routing (Type 0)[DH98]

BIT INDICATES IF OPTION IS MUTABLE (位指示选项是否可变, 在传输过程中不可预测地改变)

Option/Extension NameReference
Hop-by-Hop options[DH98]
Destination options[DH98]

NOT APPLICABLE (不适用)

Option/Extension NameReference
Fragmentation[DH98]

Detailed Description (详细描述)

Options (选项) -- 逐跳和目标扩展头中的 IPv6 选项包含一个位, 指示该选项在传输过程中是否可能 (不可预测地) 改变。对于内容可能在途中改变的任何选项, 在计算或验证 ICV 时, 必须将整个 "Option Data" 字段视为零值八位字节。Option Type 和 Opt Data Len 包含在 ICV 计算中。该位指示不可变性的所有选项都包含在 ICV 计算中。有关更多信息, 请参阅 IPv6 规范 [DH98]。

Routing (Type 0) -- IPv6 路由头 "Type 0" 将在数据包从源到目标的传输过程中重新排列数据包中的地址字段。但是, 数据包在接收方处出现的内容是发送方和所有中间跳所知道的。因此, IPv6 路由头 "Type 0" 作为可变但可预测包含在完整性校验值计算中。在执行 ICV 计算之前, 发送方必须对字段进行排序, 使其显示为在接收方处出现的样子。

Fragmentation (分片) -- 分片发生在出站 IPsec 处理 (第 3.3 节) 之后, 重组发生在入站 IPsec 处理 (第 3.4 节) 之前。因此, 如果存在分片扩展头, IPsec 不会看到它。

请注意, 在接收方, IP 实现在重组时可能会保留分片扩展头。如果发生这种情况, 那么当 AH 接收数据包时, 在进行 ICV 处理之前, AH 必须 (MUST) "删除" (或跳过) 此头部, 并将前一个头部的 "Next Header" 字段更改为分片扩展头中的 "Next Header" 字段。

请注意, 在发送方, IP 实现可能会向 IPsec 代码提供一个带有偏移量为 0 (第一个分片) 和更多分片标志为 0 (最后一个分片) 的分片扩展头的数据包。如果发生这种情况, 那么在进行 ICV 处理之前, AH 必须 (MUST) 首先 "删除" (或跳过) 此头部, 并将前一个头部的 "Next Header" 字段更改为分片扩展头中的 "Next Header" 字段。