1.7. Significant Differences between RFC 4306 and RFC 5996 (RFC 4306 与 RFC 5996 的重要差异)
1.7 Significant Differences between RFC 4306 and RFC 5996 (RFC 4306 与 RFC 5996 的重要差异)
本文档包含对 IKEv2 [IKEV2] 的澄清与扩充. 许多澄清基于 [Clarif]. 该文档所列变更曾在 IPsec 工作组讨论, 工作组解散后在 IPsec 邮件列表上继续讨论. 该文档包含对 IKEv2 中不清晰领域的详细说明, 因而对 IKEv2 实现者有用.
本文档所述协议保留与 RFC 4306 相同的主版本号 (2) 与次版本号 (0). 也就是说, 版本号相对 RFC 4306 没有 改变. 此处列出的小量技术变更预计不会影响本文档发布时已经部署的 RFC 4306 实现.
本文档使图示与引用较 [IKEV2] 略为一致.
IKEv2 开发者指出 RFC 4306 中 SHOULD 级别要求常常不清楚何时可以不遵守. 他们还指出存在与互操作性无关的 MUST 级别要求. 本文档对其中一些要求增加了更多说明. 所有非大写的 SHOULD 与 MUST 现在表示其普通英语含义, 而非 [MUSTSHOULD] 的互操作性含义.
IKEv2 (与 IKEv1) 开发者指出 RFC 4306 第 3.10.1 节代码表中有大量材料. 这导致实现者无法在主文内获得全部所需信息. 那些表中的许多材料已移入正文相应部分.
本文档删除关于嵌套 AH 与 ESP 的讨论. 这是 RFC 4306 的错误, 源于 RFC 4306 定稿与 RFC 4301 之间的时间差. 基本上 IKEv2 基于 RFC 4301, 后者不包含作为 RFC 2401 一部分的 "SA bundles (SA 捆绑)". 单个分组可多次经过 IPsec 处理, 但每次使用单独的 SA, 各次处理由转发表协调. 在 IKEv2 中, 这些 SA 中的每一个都必须通过单独的 CREATE_CHILD_SA 交换创建.
本文档删除对 INTERNAL_ADDRESS_EXPIRY 配置属性的讨论, 其实现问题很大. 符合本文档的实现必须忽略带有配置属性类型 5 (INTERNAL_ADDRESS_EXPIRY 的旧值) 的提议. 本文档还删除了 INTERNAL_IP6_NBNS 作为配置属性.
本文档取消允许因载荷未按 "正确" 顺序而拒绝消息的做法, 现在实现不得因此拒绝消息. 这是由于对载荷顺序的描述缺乏清晰度.
来自 RFC 4306 并进入 IANA 注册表的条目列表被裁剪为仅包含 RFC 4306 中实际定义的条目. 此外, 许多列表前现在附有对开发者非常重要的说明: 开发时务必查看 IANA 注册表, 因为自 RFC 4306 以来已增加新条目.
本文档补充说明通知在协商处于何种状态时应加密发送以及何时不应加密发送.
本文档更多讨论如何协商 combined-mode ciphers (组合模式密码).
在第 1.3.2 节, "The KEi payload SHOULD be included" 改为 "The KEi payload MUST be included". 这也导致第 2.18 节的变更.
在第 2.1 节, 新增材料说明如何用发起方 SPI 和/或 IP 区分这是 "half-open (半开)" IKE SA 还是新请求.
本文档在第 2.5 节澄清 critical flag (关键标志) 的用法.
在第 2.8 节, "Note that, when rekeying, the new Child SA MAY have different Traffic Selectors and algorithms than the old one" 改为 "Note that, when rekeying, the new Child SA SHOULD NOT have different Traffic Selectors and algorithms than the old one".
新增第 2.8.2 节讨论同时 rekey IKE SA.
本文档在第 2.13 节增加限制: 与 IKEv2 一起使用的所有 pseudorandom function (PRF, 伪随机函数) 必须接受可变长度密钥. 这不应影响任何实现, 因为不存在具有固定长度密钥的标准化 PRF.
第 2.18 节要求在 rekey IKE_SA 时进行 Diffie-Hellman 交换. 理论上 RFC 4306 允许 Diffie-Hellman 交换可选的策略, 但在 rekey IKE_SA 时这并无用处 (也不合适).
第 2.21 节已大幅扩充, 涵盖需要错误响应的不同情况以及适当的响应.
第 2.23 节澄清: 在 NAT 穿越中, 接收时现在需要同时理解 UDP 封装的 IPsec 分组与未 UDP 封装的 IPsec 分组.
新增第 2.23.1 节描述请求传输模式时的 NAT 穿越.
新增第 2.25 节说明在删除和/或 rekey SA 发生时序冲突时应如何行动, 并定义两个新的错误通知 TEMPORARY_FAILURE 与 CHILD_SA_NOT_FOUND.
在第 3.6 节增加: "Implementations MUST support the http: scheme for hash-and-URL lookup. The behavior of other URL schemes is not currently specified, and such schemes SHOULD NOT be used in the absence of a document specifying them".
在第 3.15.3 节增加指向与 IPv6 地址配置相关的新文档的指针.
附录 C 已扩充并澄清.