跳到主要内容

5. IP 流量处理

如第 4.4.1 节 "The Security Policy Database (SPD)" 所述, 处理所有跨越 IPsec protection boundary 的 traffic 时, MUST 查询 SPD (或关联 cache), 包括 IPsec management traffic. 如果在 SPD 中没有找到匹配某个 packet 的 policy (无论 inbound 还是 outbound traffic), 该 packet MUST 被丢弃.

SPD Cache 机制

为简化处理, 并允许非常快速的 SA lookup (用于 SG/BITS/BITW), 本文档为所有 outbound traffic (SPD-O 加 SPD-S) 引入 SPD cache 概念, 并为 inbound 且未受 IPsec 保护的 traffic (SPD-I) 引入 cache. (如前所述, SAD 作为 cache, 用于检查到达 SA 的 inbound IPsec-protected traffic 的 selector.)

名义上每个 SPD 有一个 cache. 就本规范而言, 假定每个 cached entry 都精确映射到一个 SA. 但需注意, 当使用多个 SA 承载不同优先级 (例如由不同 DSCP value 指示) 但 selector 相同的 traffic 时, 会出现例外.

Decorrelated SPD

由于 SPD entry 可能重叠, 一般不能安全地缓存这些 entry. 简单 caching 可能导致匹配某个 cache entry, 而对 SPD 的有序搜索本应匹配不同 entry. 但是, 如果先对 SPD entry 进行 decorrelate, 则生成的 entry 可以安全缓存.

注意: 本文假定起点是 correlated SPD, 因为用户和管理员习惯以这种方式管理此类 access control list 或 firewall filter rule. 然后应用 decorrelation algorithm 来构建可缓存 SPD entry 列表. Decorrelation 在 management interface 中不可见.

Traffic Processing 方向

  • 5.1 Outbound IP Traffic Processing (protected-to-unprotected)
  • 5.2 Inbound IP Traffic Processing (unprotected-to-protected)

对于 inbound IPsec traffic, 在执行 AH 或 ESP processing 后, 由 SPI 选择的 SAD entry 充当 cache, 用于保存要与到达的 IPsec packet 匹配的 selector.