有人发给你一份写着 IKEv2、ESP 和 MODP3072 的要求,而控制台里没有这个名称的字段。错误在于去找这样一个字段。IKEv2 是协商版本,ESP 是承载受保护流量的协议,MODP3072 是密钥交换组,即 IANA 的第 15 组。这三个事实分处三个不同位置,而该组出现了两次。

这句话不是一个设置项

在动手之前,先把要求翻译成选项列表。下表就是完整的对照。

Agreed requirementAWS option to reviewStill a separate decision
IKEv2Allowed IKE versionsEncryption, integrity, key-exchange choices
MODP3072 for the IKE exchangePhase 1 DH groups, group 15Phase 2 key-exchange and PFS policy
MODP3072 for the protected-traffic exchangePhase 2 DH groups, group 15The initial IKE exchange group
A named encryption algorithmThat phase's encryption listIntegrity and DH-group agreement

MODP3072 是第 15 组,AWS 目前在 Phase 1 和 Phase 2 的 DH 组列表中都会接受 15。两处都接受并不等于两处都要求,更不意味着你的合作方指的就是两处。

Phase 1 与 Phase 2 协商的是不同内容

Phase 1 建立 IKE 安全联盟:两个网关如何认证、如何商定密钥,以及如何保护它们自己的对话。Phase 2 建立承载你实际流量的 CHILD SA,它的密钥交换可以是全新的,而不必继承。

正是这一分工,使得合作方提到完美前向保密时这件事才有意义。PFS 是 Phase 2 的属性,Phase 1 列表中的组并不提供它。要问清每条要求适用于哪次交换,同时确认加密模式、完整性是否由 AEAD 密码提供,以及双方的密钥更新预期。

不要从 AES 这个词或一个 DH 编号推出完整的可接受套件。把两次对话各取一半拼成策略,隧道最终就会提出双方团队都没同意的方案。

允许列表不是协商结果

选项列表描述的是每一方愿意接受什么。它们并不报告实际选了什么。去读新建连接时真正选中的 IKE 与 CHILD-SA 提议,然后确认要求是被满足,而不只是被允许。列表里的强选项只能证明它当时可用。

也要留意续期。第一个 IKEv2 CHILD SA 与之后带 PFS 的 CHILD 交换可能暴露出不同的兼容条件,因为第二次交换会在 PFS 组参与下生成新的密钥材料。如果你的验收测试只覆盖隧道的第一分钟,那就没有测到合作方关心的那部分。

AWS 隧道选项参考把 Phase 1 和 Phase 2 分开列出,这正是下一条要求到来之前值得内化的结构。

改你真正指的那条隧道

一条 Site-to-Site VPN 连接有两个隧道,各有自己的选项和状态。在审查或修改任何东西之前,先把 AWS 隧道的外部地址与客户网关一侧的对端对应起来,不要以为一次保存会同时更新两者。

获批的变更需要客户网关一侧为同一策略做好准备,并为所选隧道将承受的中断留出窗口。如果对端在你所要变更的阶段没有准备好第 15 组,隧道就会干脆起不来,而控制台不会告诉你是哪一侧拒绝的。

把商定的策略记录为阶段、协议版本、加密、完整性和 DH 组,然后在它应当保护的交换上加以确认。路由、流量选择器和应用权限仍然分开;这份对应关系不是完整的网关配置,也不是为了多样性而启用额外算法的建议。

相关文章