AWS Site-to-Site VPN 客户网关设备最佳实践
使用 IKEv2
强烈建议使用 IKEv2 建立 Site-to-Site VPN 连接。IKEv2 是一种比 IKEv1 更简单、更强大、更安全的协议。只有当您的客户网关设备不支持 IKEv2 时,才应使用 IKEv1。有关 IKEv1 和 IKEv2 之间区别的更多详细信息,请参阅 RFC7296 的附录 A
重设数据包上的“Don't Fragment (DF)”标记
部分数据包带有一个标记,称为 Don't Fragment (DF) 标记,表示该数据包不应分片。若数据包带有该标记,网关就会生成一条“ICMP Path MTU Exceeded”消息。部分情况中,应用程序不含可处理这些 ICMP 消息和减少每个数据包数据传输量的充分机制。部分 VPN 设备可以忽略该 DF 标记并按要求无条件分片数据包。如果您的客户网关设备拥有该功能,我们建议您酌情使用。有关更多详细信息,请参阅 RFC 791
加密前分片 IP 数据包
如果通过 Site-to-Site VPN 连接发送的数据包超过 MTU 大小,则必须对其进行分片。为避免降低性能,建议将客户网关设备配置为在对数据包加密之前 对其进行分片。Site-to-Site VPN 之后将重组任何分片的数据包,然后将其转发到下一个目的地,以便在整个 AWS 网络中提高每秒数据包流量。有关更多详细信息,请参阅 RFC 4459
确保数据包大小不超过目标网络的 MTU
由于 Site-to-Site VPN 在将从您的客户网关设备收到的分片数据包转发到下一个目的地之前会对其进行重组,因此请记住,对于接下来转发这些数据包的目标网络,可能需要考虑数据包大小/MTU,例如通过 Direct Connect 或使用特定协议(如 Radius)。
根据使用的算法调整 MTU 和 MSS 大小
TCP 数据包往往是经由 IPsec 隧道传输的通用类型数据包。Site-to-Site VPN 支持 1446 字节的最大传输单元(MTU),对应的最大分段大小(MSS)为 1406 字节。但加密算法的标头大小各异,可能会导致无法实现这些最大值。要通过避免碎片化获得最佳性能,我们建议您特别根据所使用的算法设置 MTU 和 MSS。
使用下表来设置 MTU/MSS 以避免碎片化问题并实现最佳性能:
| 加密算法 | 哈希算法 | NAT 遍历 | MTU | MSS (IPv4) | MSS (IPv6-in-IPv4) |
|---|---|---|---|---|---|
|
AES-GCM-16 |
不适用 |
disabled |
1446 |
1406 |
1386 |
|
AES-GCM-16 |
不适用 |
已启用 |
1438 |
1398 |
1378 |
|
AES-CBC |
SHA1/SHA2-256 |
disabled |
1438 |
1398 |
1378 |
|
AES-CBC |
SHA1/SHA2-256 |
已启用 |
1422 |
1382 |
1362 |
|
AES-CBC |
SHA2-384 |
disabled |
1422 |
1382 |
1362 |
|
AES-CBC |
SHA2-384 |
已启用 |
1422 |
1382 |
1362 |
|
AES-CBC |
SHA2-512 |
disabled |
1422 |
1382 |
1362 |
|
AES-CBC |
SHA2-512 |
已启用 |
1406 |
1366 |
1346 |
注意
AES-GCM 算法涵盖加密和身份验证,因此不存在会影响 MTU 的明确身份验证算法选择。
禁用 IKE 唯一 ID
一些客户网关设备支持的设置可确保每个隧道配置最多存在一个第 1 阶段安全关联。此设置可能导致 VPN 对等网络之间的第 2 阶段状态不一致。如果您的客户网关设备支持此设置,建议将其禁用。