提高站点到站点 VPN 吞吐量和性能
请遵循以下推荐的最佳实践,优化站点到站点 VPN 吞吐量,同时保持稳定的连接。 通过配置 VPN 网关、加密设置(使用 IKEv2 和 AES- GCM )、路由和网络参数(MTU/MSS),可以最大限度地提高性能。 在启用分布式流量的主动-主动模式下部署时,基于路由的 VPN 在最佳条件下最多可支持 2 Gbps 的总吞吐量。
在以下情况下,吞吐量可能会降低:
- 使用基于策略的 VPN。
- 未启用分布式流量。
- 只有一个流量处于活动状态。
- 对等 VPN 设备的 CPU 受限。
- 出现网络碎片。
实际吞吐量取决于对等设备容量、可用 ISP 带宽、路由配置、数据包大小、流量模式和其他环境因素。 以下指南涵盖模式选择、加密调整、网络配置和操作最佳实践,可帮助您实现最佳性能。
准备工作
为了达到最佳效果,请遵循以下建议:
- 在部署到生产环境之前,在自己的测试环境中测试性能。
- 确保您的内部 VPN 设备满足您的吞吐量要求。
- 确认 ISP 带宽与预期 VPN 容量一致。
在继续之前,请完成以下前提条件:
- 确保已配置站点到站点 VPN 网关,且两个 VPN 通道都处于活动状态。
- 验证您是否有权限修改内部对等设备上的配置设置。
- 确认网关和对等设备支持 IKEv2 和
AES‑GCM。 - 验证您是否拥有在内部部署设备上修改 MTU 和 MSS 设置的权限。
- 在 IBM Cloud 虚拟服务器实例和企业内部主机上安装
iperf,以验证性能。
选择 VPN 模式以获得最大吞吐量
IBM Cloud 支持基于路由和基于策略的站点到站点 VPN 模式。 模式的选择直接影响可实现的吞吐量。
基于路由的 VPN(推荐)
基于路由的 VPN 具有最高的吞吐潜力。 在启用流量分布的主动-主动模式下部署时,流量可同时流经两条隧道。
最大限度地提高吞吐量:
- 使用基于路由的 VPN。
- 为基于路由的 VPN 公共 IP 地址配置隧道。
- 启用分配流量,使两条隧道都主动转发流量。
- 测试时产生多个并发流量,以充分利用可用带宽。
在受控测试中观察到的性能显示,单条隧道的处理能力约为 1.6 Gbps,在采用推荐的架构和加密设置的情况下,两条隧道的总处理能力可达 2 Gbps。 这些数字只是测试中的示例,并不保证适用于您的环境。
如果禁用分布式流量,则每次只有一条隧道传输流量,通常会导致整体吞吐量降低。
基于策略的 VPN
基于策略的 VPN 一次只支持一条活动隧道。 辅助隧道只有在故障切换时才会激活。
由于流量无法在隧道间分配,吞吐量通常低于基于路由的 VPN。 只有在网络拓扑或对等设备限制要求的情况下,才能使用基于策略的 VPN。
加密算法:AES 与 AES- GCM
VPN 流量使用 IPsec 加密,加密算法的选择会影响安全性和性能:
-
AES(高级加密标准)--一种广泛使用的加密标准,具有很强的安全性。 如果使用单独的哈希算法来保证完整性(AES-CBC),开销会稍高一些。
-
AES- GCM (伽罗瓦/计数器模式)- AES 的现代变体,将加密和完整性检查合二为一。 AES- GCM 支持并行处理,吞吐量通常高于标准 AES-CBC。
在两个 VPN 对等网络都支持的情况下,使用 AES- GCM,以便在不影响安全性的情况下最大限度地提高吞吐量。
下表总结了在 IBM 内部网络中测试的最小基准吞吐量示例值。 这些数字是在受控测试条件下观察到的结果,“不能”保证在您的环境中的实际性能。 实际吞吐量取决于对等设备容量、可用 ISP 带宽、路由配置、数据包大小、流量模式、计算能力和其他网络条件。
| VPN 模式 | 仅 AES | AES- GCM |
|---|---|---|
| 基于路由的分布式 | ~1.6 每千兆比特 | ~1.6 每千兆比特 |
| 基于路由的非分布式 | ~674 Mbps | ~1.11 每千兆比特 |
| 基于策略 | ~598 Mbps | ~1.11 每千兆比特 |
配置密码设置以提高性能
在 IBM Cloud VPC 与企业内部网络之间的站点到站点 VPN 中,流量使用 IPsec 协议加密。 加密开始前,使用互联网密钥交换(IKE)协议进行安全密钥交换,该协议包括两个阶段:
- 第 1 阶段:在 VPN 对等方之间建立安全的认证通信通道。
- 第 2 阶段:协商用于加密实际数据流量的 IPsec 安全关联(SA)。
加密选择会直接影响 VPN 性能,因为加密、散列和密钥交换操作会消耗双方对等网络的 CPU 资源。 选择高效、安全的算法有助于最大限度地提高吞吐量并保持稳定的连接。
选择 IKE 协议版本
IKE 在 VPN 设备之间建立安全、经过验证的通信通道。 它会协商安全参数、交换密钥并建立加密隧道。
IBM Cloud 同时支持 IKEv1 和 IKEv2。 不过,建议使用 IKEv2,因为它
-
提供更快的谈判速度
-
减少管理费用
-
提高稳定性
-
最大限度地减少重新键入问题
更多信息,请参阅 站点到站点 VPN 中什么是重键值碰撞?
只要对等设备支持,请使用 IKEv2。
第 1 阶段(IKE)加密设置
在第 1 阶段,VPN 对等体相互验证,并建立一个安全通道,以便进一步协商。 加密算法有助于确保通过 VPN 隧道发送的数据不被篡改。 它们为数据创建唯一的指纹(散列),并在接收端进行验证。 更多信息,请参阅 第 1 阶段支持的算法。
为第 1 阶段配置以下值:
- 验证:
SHA‑256或SHA‑384 - Diffie-Hellman (DH) 组:
14或19 - 使用寿命:默认值,除非您的环境需要更短的时间间隔
确保同行网络支持所选的散列算法。 否则,请使用 SHA-256 或 SHA-384,除非需要更强的算法才能符合要求。
第 2 阶段(IPsec)加密设置
在第 2 阶段,VPN 对等方会协商 IPsec SA,以确定实际数据流量的加密方式。 加密密码会扰乱数据,保护流量的机密性,只有获得授权的人才能读取数据。 更多信息,请参阅 第 2 阶段支持的算法。
为第 2 阶段配置以下值:
- 加密:
AES‑GCM(推荐) - 使用寿命:默认值,以保持稳定
AES-GCM 其吞吐量通常高于 AES-CBC。 它支持并行处理,并提供内置完整性保护,无需单独散列。
优化 MTU 和 MSS,防止数据包碎片化
MTU(最大传输单元)和 MSS(最大分段大小)等网络参数会直接影响 VPN 的吞吐量。 碎片或数据包丢失会降低性能。
要优化 MTU 和 MSS,请按照以下步骤操作:
-
将本地设备上的 MSS 设置为
1360字节。 该值考虑了 IPsec 开销,并避免了 TCP 数据包中的碎片。 更多信息,请参阅 MSS 夹具 限制 TCP 数据包的 MSS。 -
使用 ping 测试验证 MTU,该测试可检查数据包的大小。
ping -s 1472 -M do DESTINATION其中:
-s 1472- 发送一个有效负载为
1472字节的数据包。 -M do- 设置“不分片”(DF)标记,以防止分片。
DESTINATION- 要测试的 IP 地址或主机名。
在 Windows 上:
ping www.example.com -f -l 1472其中:
-f- 设置数据包中的“不分片”标记,帮助测试不分片情况下发送的最大数据量。
-l- 以字节为单位指定有效载荷大小(不包括标题)。
IBM VPN for VPC,MTU 为
1500字节,建议 MSS 为1360字节。 如果出现碎片,请将 MTU 减少到1490字节。
优化这些参数有助于确保充分利用可用的 VPN 吞吐量。
配置 VPN 网关
优化 VPN 网关可确保流量高效流动,并在支持的情况下使用两条隧道。
要优化 VPN 网关设置,请按照以下步骤操作:
-
启用分布式流量的基于路由的 VPN 模式。
-
基于路由的 VPN- 启用“分配流量”选项时,流量同时流经两个 VPN 通道。 此外,将更多对等网络连接到网关可以更好地分配流量负载,从而提高整体吞吐量。 更多信息,请参阅 为基于路由的 VPN 分配流量。
在基于静态路由的 VPN 连接中,如果没有分布式流量,则只使用一条隧道,从而降低了总体吞吐量。
-
基于策略的 VPN- 一次只能激活一条 VPN 通道。 只有当主隧道发生故障时,辅助隧道才会激活,从而降低吞吐量。 “分配流量”在此模式下不可用。
-
-
确保 VPN 网关与 VPC 子网位于同一可用区,以避免跨区延迟。 更多信息,请参阅 什么情况下流量不通过基于路由的 VPN 网关路由?
-
将高流量隧道转移到专用 VPN 网关,因为总体吞吐量取决于网关的总容量。 如果您在单个网关上创建了多个连接,请考虑将它们转移到单独的网关上,这有助于减少共享设备的负载并提高吞吐量的稳定性。
-
禁用未使用的隧道,因为这些隧道会增加 IKE 和重新密钥开销,所有这些都必须加密和解密。
-
确保路由正确传播到 VPC 路由表。 源 IP 地址必须与配置的 VPN 本地子网范围相匹配,以防止流量旁路。 此外,确保不存在重叠的 CIDR。
-
启用 NAT-T。 如果您的内部 VPN 设备位于 NAT 后面,或 ESP(封装安全有效负载)流量被中间设备阻断。 NAT-T 将 IPsec 数据包封装在 UDP 中,允许流量穿越 NAT 设备。
审查业务考虑因素
其他运行因素也会影响虚拟专用网络的性能:
- 确保对等网络中的防火墙允许 IBM Cloud VPC CIDR,以避免节流和速率限制错误。
- 确认 ISP 不限制网络流量。
- 通过 Transit Gateway 连接其他环境或工作负载时,只能使用基于策略的 VPN(此拓扑不支持基于路由的 VPN)。 更多信息,请参阅 为 VPN 网关配置路由传播。
验证吞吐量
使用 iperf 等网络性能工具定期测试 VPN 吞吐量,使性能保持在预期范围内。 您必须在服务器和客户端系统上安装 iperf。 要使用 iperf,请按以下步骤操作:
-
在服务器( IBM Cloud 或内部主机)上,启动
iperf服务器,监听传入连接:iperf -s -
在客户端上,启动从客户端到服务器的测试:
iperf -c SERVER_IP_ADDRESS -
查看输出的带宽、传输速度和其他指标。
通过遵循这些最佳实践,您可以显著提高站点到站点 VPN 的吞吐量,同时保持安全稳定的连接。
完成这些步骤后,再次测量 VPN 吞吐量,并将结果与更改前获取的基线值进行比较。 这种比较有助于确认优化是否有效,并让您找出任何剩余的瓶颈,如对等设备 CPU 限制、ISP 限制或流量模式效率低下。
如果吞吐量仍达不到要求,请有条不紊地检查每个配置区域,并在每次调整后验证性能。 持续测试和调整有助于确保 VPN 部署在环境中尽可能高效可靠地运行。