跳到主要内容

3.1. IKE 头

3.1. IKE 头​

IKE 消息用于建立 IPsec SA,并可用于其他目的(例如,在 IKE SA 建立后传输数据)。IKE 消息始终以一个固定的头开始,后跟零个或多个 payload。

固定头格式如下:

                 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Initiator SPI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Responder SPI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Payload | MjVer | MnVer | Exchange Type | Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 1:  IKE 头格式

o Initiator SPI (8 字节) - 由发起方在 IKE_SA_INIT 中生成的 SPI。

o Responder SPI (8 字节) - 由响应方在 IKE_SA_INIT 中生成的 SPI。

o Next Payload (1 字节) - 指示紧跟在头之后的下一个 payload 的类型。

o Major Version (4 位) - 指示 IKE 协议的主版本。必须设置为 2。

o Minor Version (4 位) - 指示 IKE 协议的次版本。必须设置为 0。

o Exchange Type (1 字节) - 指示此消息所属交换的类型。

o Flags (1 字节) - 下列标志位:

  • Bit 0 (H) - IKE 头中的 Initiator(发起方)位。对于由发起方发送的消息,设置为 1;对于由响应方发送的消息,设置为 0。

  • Bit 1 (R) - 版本位。在协商中对 IKEv2 协议次版本需要使用新语义时设置。本文档中必须设置为 0。

  • Bit 2 (I) - 完整性保护位。在消息受完整性保护时设置,并且除 IKE_SA_INIT 外的所有消息都如此。

  • Bit 3 (V) - 版本位。为 IKEv2 协议的未来版本协商新语义而保留。必须设置为 0。

  • Bit 4 (R) - 保留位。用于 IKE 协议未来版本。必须设置为 0。

  • Bits 5-7 - 保留位。必须设置为 0。

o Message ID (4 字节) - 用于消息的唯一标识符。

o Length (4 字节) - 以字节为单位的总长度,包括头和所有 payload。