使用保护性重新路由功能优化 TCP 网络弹性

保护性重新路由 (PRR) 是一种基于主机的方法,用于在多路径网络中绕过故障来路由数据包。PRR 已部署在 Google 的全球网络中,可与现有的弹性机制配合使用,以提高所有用户的网络可用性。

选择 PRR 模式

Google Cloud 以两种模式提供 PRR:hypervisor 模式和 guest 模式。

hypervisor 模式下的 PRR

hypervisor 模式的 PRR 默认可保护大多数流量,但存在以下限制:

  • 如果实例的流量扇出非常大(例如,如果一个实例同时主动向数千个跨区域实例发送数据包),则并非所有数据包都会受到保护。

  • hypervisor 模式的 PRR 可以保护网络路径的关键部分,但并非对完整的端到端提供保护。

  • hypervisor 模式的 PRR 可以在几秒内做出反应。

访客模式下的 PRR

对于对短时网络事件特别敏感、具有较大扇出模式、对丟包高度敏感或需要尽可能快的网络恢复时间(在 RTT 时间尺度上)的关键应用,可以使用访客模式的 PRR。

所有 Google Cloud 客户都会自动获得 hypervisor 模式的 PRR,无需执行任何配置操作。

配置访客模式 PRR

对于对丢包高度敏感、需要较大扇出模式或需要尽可能快的网络恢复的应用,您应使用访客模式。

如需配置访客模式 PRR,请执行以下步骤。

  1. 验证 Linux 内核的版本。使用以下命令确认实例操作系统使用的是 4.20 版或更高版本:

    uname -r
    
  2. 验证 IPv6 流标签是否会自动生成。使用以下命令检查 /proc/sys/net/ipv6/auto_flowlabels 设置是否已启用。此 sysctl 设置通常默认处于启用状态。

    cat /proc/sys/net/ipv6/auto_flowlabels
    

    如果该值不是 1,请在系统配置中启用该值。

  3. 使用 gVNIC 网络接口驱动程序可获得完整的 PRR 支持。如需同时保护 IPv4 和 IPv6 流量,您的实例必须使用 gVNIC 网络接口。如果实例使用 VirtIO 网络接口,则 PRR 仅保护 IPv6 流量。

后续步骤