跳到主要内容

1.3.1. 使用 CREATE_CHILD_SA 交换创建新的子 SA

1.3.1. 使用 CREATE_CHILD_SA 交换创建新的子 SA​

子 SA 可以通过发送 CREATE_CHILD_SA 请求来创建。用于创建新子 SA 的 CREATE_CHILD_SA 请求为:

发起方 响应方​

HDR, SK {SA, Ni, [KEi], TSi, TSr} -->

发起方在 SA 载荷中发送 SA 提议,在 Ni 载荷中发送随机数,可选地在 KEi 载荷中发送 Diffie-Hellman 值,并在 TSi 和 TSr 载荷中发送为提议的子 SA 提议的流量选择器。

用于创建新子 SA 的 CREATE_CHILD_SA 响应为:

                         <--  HDR, SK {SA, Nr, [KEr],
TSi, TSr}

响应方(使用相同的 Message ID 进行响应)在 SA 载荷中回复被接受的提议,并且如果请求中包含 KEi 且所选密码套件包含该组,则在 KEr 载荷中回复一个 Diffie-Hellman 值。

在响应中,用于在该 SA 上发送的流量的流量选择器在 TS 载荷中指定,它可以是子 SA 发起方所提议内容的子集。

USE_TRANSPORT_MODE 通知可以包含在同时包含请求子 SA 的 SA 载荷的请求消息中。它请求为所创建的 SA 使用传输模式而非隧道模式的子 SA。如果请求被接受,响应必须也包含一个类型为 USE_TRANSPORT_MODE 的通知。如果响应方拒绝该请求,子 SA 将以隧道模式建立。如果这对发起方来说不可接受,发起方必须删除该 SA。注意:除非使用此选项来协商传输模式,否则所有子 SA 都将使用隧道模式。

ESP_TFC_PADDING_NOT_SUPPORTED 通知声明发送端点将不接受在正在协商的子 SA 上包含流量流机密性 (TFC) 填充的报文。如果两个端点都不接受 TFC 填充,此通知将同时包含在请求和响应中。如果此通知只包含在其中一个消息中,则在另一个方向上仍然可以发送 TFC 填充。

NON_FIRST_FRAGMENTS_ALSO 通知用于分片控制。更完整的解释请参阅 [IPSECARCH]。双方都需要同意发送非首片,然后任一方才可以这样做。仅当 NON_FIRST_FRAGMENTS_ALSO 通知同时包含在提议 SA 的请求和被接受的响应中时,它才会被启用。如果响应方不想发送或接收非首片,它只需在其响应中省略 NON_FIRST_FRAGMENTS_ALSO 通知,但不会拒绝整个子 SA 的创建。

一个 IPCOMP_SUPPORTED 通知(在第 2.22 节中说明)也可以包含在此交换中。

创建子 SA 的失败尝试不应拆除 IKE SA:没有理由丢失为建立 IKE SA 所做的工作。如果创建子 SA 失败,可能会发生哪些错误消息,请参阅第 2.21 节的错误消息列表。