跳到主要内容

4.4.1.2. SPD 条目结构

本节以文字形式描述一个 SPD 条目。此外,附录 C 提供了一个 SPD 条目的 ASN.1 定义示例。

IKE 兼容性考虑

本文以旨在直接映射到 IKE 载荷的方式描述 SPD,以确保 SPD 条目所要求的策略能够通过 IKE 协商。遗憾的是,与本文档同时发布的 IKEv2 版本 [Kau05] 的语义并不能精确符合 SPD 所定义的语义。具体而言,IKEv2 无法协商单个 SA,将多对本地和远端地址与端口绑定到该 SA 上。相反,当为某个 SA 协商多个本地和远端地址与端口时,IKEv2 不把这些值视为成对关系,而是视为可以任意配对的本地和远端取值的(无序)集合。

重要:在 IKE 提供某种能够传达 SPD 中通过选择器集(如下文所述)所表达语义的机制之前,用户不得(MUST NOT)在单个 SPD 条目中包含多个选择器集,除非其访问控制意图与 IKE 的“任意配对(mix and match)”语义一致。如果用户创建了包含多个选择器集的 SPD 条目,且其语法表明可能与当前 IKE 语义冲突,实现可以(MAY)发出警告,提示用户注意此问题。

管理接口考虑

管理图形界面可以为用户提供其他形式的数据输入和显示,例如使用地址前缀以及地址范围(而非仅端点)的选项,以及为协议、端口等使用符号化名称。(不要将管理界面中符号化名称的使用与 SPD 选择器“Name”混淆。)

注意:Remote/Local(远端/本地)仅适用于 IP 地址和端口,不适用于 ICMP 消息类型/代码或移动头类型。此外,如果为某个选择器类型使用了保留的符号化选择器取值 OPAQUE 或 ANY,则该选择器的列表中只能出现该取值,并且该取值在该选择器的列表中只能出现一次。

注意:ANY 和 OPAQUE 是本地语法约定——IKEv2 通过如下取值范围来协商这些值:

ANY:     start = 0        end = <max>
OPAQUE: start = <max> end = 0

SPD 条目字段

SPD 是一个有序的条目列表,每个条目包含以下字段。

o 名称(Name)

一个 ID 列表。这个准选择器是可选的。必须(MUST)支持的形式已在第 4.4.1.1 节“名称”中描述。

o PFP 标志

每个流量选择器各有一个。某个标志(例如 Next Layer Protocol 的标志)适用于 SPD 条目所包含的、跨所有“选择器集”(见下文)的相关选择器。在创建 SA 时,每个标志针对相应的流量选择器指定:从触发该 SA 创建的包中的相应字段实例化选择器,还是从相应 SPD 条目中的取值实例化选择器(见第 4.4.1 节“如何推导出 SAD 条目的取值”)。对源端口、ICMP 类型/代码和 MH 类型等使用单个标志,还是为每个分别使用单独的标志,属于本地事项。

PFP 标志包括

  • Local Address(本地地址)
  • Remote Address(远端地址)
  • Next Layer Protocol(下一层协议)
  • Local Port(本地端口),或 ICMP 消息类型/代码,或移动头类型(取决于下一层协议)
  • Remote Port(远端端口),或 ICMP 消息类型/代码,或移动头类型(取决于下一层协议)

o 一个到 N 个选择器集

这些对应于应用特定 IPsec 动作(action)的“条件”。每个选择器集包含:

  • Local Address(本地地址)
  • Remote Address(远端地址)
  • Next Layer Protocol(下一层协议)
  • Local Port(本地端口),或 ICMP 消息类型/代码,或移动头类型(取决于下一层协议)
  • Remote Port(远端端口),或 ICMP 消息类型/代码,或移动头类型(取决于下一层协议)

注意:在选择器集条目中,“下一个协议”选择器是一个单独的取值(不同于本地和远端 IP 地址)。这与 IKEv2 为某个 SA 协商流量选择器(TS)取值的方式一致。这样做也是合理的,因为可能需要将不同的端口字段与不同的协议关联。通过为单个 SA 指定多个选择器集,可以将多个协议(和端口)与单个 SA 关联。

o 处理信息(Processing info)

需要执行哪种动作(action)——PROTECT(保护)、BYPASS(绕过)或 DISCARD(丢弃)。所有选择器集只对应一个共同的动作,而不是每个选择器集各有一个单独动作。如果所需处理是 PROTECT,则该条目包含以下信息。

处理信息字段(用于 PROTECT)

  • IPsec 模式——隧道(tunnel)或传输(transport)

  • (若为隧道模式)本地隧道地址——对于非移动主机,如果只有一个接口,这很直接;如果有多个接口,则必须静态配置。对于移动主机,本地地址的指定在 IPsec 之外处理。

  • (若为隧道模式)远端隧道地址——没有标准方法来确定它。参见第 4.5.3 节“定位安全网关”。

  • 扩展序列号(Extended Sequence Number)——此 SA 是否使用扩展序列号?

  • 有状态分片检查(stateful fragment checking)——此 SA 是否使用有状态分片检查?(更多细节见第 7 节。)

  • 旁路 DF 位(Bypass DF bit,T/F)——适用于隧道模式 SA

  • 旁路 DSCP(Bypass DSCP,T/F)或映射到未受保护的 DSCP 取值(数组)(如需限制 DSCP 取值的旁路)——适用于隧道模式 SA

  • IPsec 协议——AH 或 ESP

  • 算法(algorithms)——AH 使用哪些、ESP 使用哪些、组合模式使用哪些,按优先级递减排序

注意:当 SPD 发生变化时,关于要保留哪些信息以处理现存 SA,这属于本地事项。