跳到主要内容

1.4.1. 使用 INFORMATIONAL 交换删除 SA

1.4.1. 使用 INFORMATIONAL 交换删除 SA​

ESP 和 AH SA 总是成对存在,每个方向各一个。当一个 SA 被关闭时,这一对中的两个成员都必须被关闭(即删除)。每个端点必须关闭其入站 SA,并允许另一个端点关闭每一对中的另一个 SA。为了删除一个 SA,需要发送一个包含一个或多个 Delete 载荷的 INFORMATIONAL 交换,其中列出要删除的 SA 的 SPI(正如它们在入站报文头中预期的那样)。接收方必须关闭指定的 SA。请注意,永远不要在同一消息中为 SA 的两侧都发送 Delete 载荷。如果同时有许多 SA 要删除,则在 INFORMATIONAL 交换中为每个 SA 对的入站那一半包含 Delete 载荷。

通常,INFORMATIONAL 交换中的响应将包含用于另一个方向的配对 SA 的 Delete 载荷。有一个例外。如果碰巧一组 SA 的两端都独立决定关闭它们,则每一端都可能发送一个 Delete 载荷,并且这两个请求可能在网络中交叉。如果节点收到了针对它已经发出删除请求的 SA 的删除请求,它必须在处理该请求时删除出站 SA,并在处理该响应时删除入站 SA。在这种情况下,响应不得包含针对已删除 SA 的 Delete 载荷,因为那样会导致重复删除,理论上可能会删除错误的 SA。

与 ESP 和 AH SA 类似,IKE SA 也通过发送 Informational 交换来删除。删除 IKE SA 会隐式关闭在其下协商的任何剩余子 SA。对删除 IKE SA 的请求的响应是一条空的 INFORMATIONAL 响应。

半关闭的 ESP 或 AH 连接是异常的,具有审计能力的节点如果发现此类连接持续存在,可能应该审计其存在。请注意,本规范并未规定时间周期,因此由各个端点自行决定等待多长时间。节点可以拒绝在半关闭连接上接受入站数据,但不得单方面关闭它们并重用 SPI。如果连接状态变得足够混乱,节点可以如上所述关闭 IKE SA。然后,它可以在新的 IKE SA 下,在一个干净的基础上重建其所需的 SA。