本节深入介绍了 SD-WAN Edge 集群功能的工作方式。

在介绍 SD-WAN Edge 集群功能之前,需要了解以下四个重要概念。

  1. Edge 集群经过设计和测试,可以在 Hub 上使用,如下所示:
    • 允许 Hub 的隧道容量超过用作 Hub 的单个 Edge 可以提供的隧道容量。
    • 在多个 Hub 之间分配远程分支 Edge 并降低可能发生的任何事件的影响。
  2. 集群评分是系统总体利用率的数学计算结果,如下所示:
    • 三个测量的利用率因素是 CPU 使用情况、内存使用情况和隧道容量。
      • 每个利用率测量结果以最大值 100% 的百分比表示。
      • 隧道容量基于给定硬件型号或虚拟 Edge 配置的额定容量。
      • 对所有三个利用率百分比取平均值以得出基于整数的集群评分 (1-100)。
      • 在不直接考虑吞吐量的情况下,CPU 和内存使用情况间接反映了给定 Hub 上的吞吐量和流量。
      • 例如,在 Edge 2000 上:
        • CPU 使用情况 = 20%
        • 内存使用情况 = 30%
        • 连接的隧道数 = 600(除以容量 6000)= 10%
        • 集群评分:(20 + 30 + (60/6000))/3 = 20
  3. 大于 70 的集群评分将被视为“超过容量”。
  4. “逻辑 ID”是一个 128 位 UUID,用于在 VMware 网络中唯一地标识元素。
    • 例如,每个 Edge 由一个逻辑 ID 表示,每个集群由一个逻辑 ID 表示。
    • 尽管用户提供了 Edge 和集群名称,但逻辑 ID 保证是唯一的,并用于在内部标识元素。

VMware SD-WAN Gateway 如何跟踪 Edge 集群

在将 Hub 添加到 VMware SD-WAN 集群后,Hub 将断开并重新建立到为其分配的所有网关的隧道,并向每个网关指示该 Hub 已分配给集群,并提供集群逻辑 ID。

对于集群, SD-WAN Gateway 跟踪:
  • 逻辑 ID
  • 名称
  • 是否启用了自动重新均衡
  • 集群成员的 Hub 对象列表

对于集群中的每个 Hub 对象,网关跟踪:

  • 逻辑 ID
  • 名称
  • 一组统计信息,每 30 秒通过从 Hub 发送到每个分配的网关的定期消息更新一次,其中包括:
    • Hub 的当前 CPU 使用情况
    • Hub 的当前内存使用情况
    • Hub 上的当前隧道计数
    • Hub 上的当前 BGP 路由计数
  • 根据上面提供的公式计算的当前集群评分。

如果网关在超过 7 秒的时间内未从 Hub Edge 收到任何数据包,则将 Hub 从 Hub 对象列表中移除。

如何将 Edge 分配给集群中的特定 Hub?

在传统的 Hub 和分支拓扑中,SD-WAN Orchestrator 为 Edge 提供它必须连接到的 Hub 的逻辑 ID。Edge 向为其分配的网关询问该 Hub 逻辑 ID 的连接信息,即,Edge 在连接到该 Hub 时使用的 IP 地址和端口。

从 Edge 的角度看,该行为与连接到集群是相同的。Orchestrator 通知 Edge 它应连接到的 Hub 的逻辑 ID 是集群逻辑 ID,而不是单个 Hub 逻辑 ID。Edge 按照相同的过程向网关发送 Hub 连接请求,并且应在响应中提供连接信息。

此处,这与基本 Hub 行为有两个区别:

  • 区别 1:网关必须选择要分配的 Hub。
  • 区别 2:由于区别 1,Edge 可能会从不同网关中获得不同的分配。

区别 1 最初是使用集群评分解决的,即,使用集群评分将集群中负载最少的 Hub 分配给 Edge。尽管这在实践中是合乎逻辑的,但在现实世界中证明是不太理想的解决方案,因为典型的重新分配事件可能涉及数百甚至数千个 Edge,并且集群评分每 30 秒才更新一次。换句话说,如果 Hub 1 的集群评分为 20,Hub 2 的集群评分为 21,在 30 秒内,所有 Edge 将选择 Hub 1,此时,它可能会过载并触发进一步的重新分配。

相反,网关先尝试公平的数学分配,而不考虑集群评分。Edge 逻辑 ID(由 Orchestrator 上的安全随机数生成器生成)将具有均匀的数值分配(假定具有足够的 Edge)。这意味着,可以使用逻辑 ID 计算公平的份额分配。

  • Edge 逻辑 ID 对集群中的 Hub 数取模 = 分配的 Hub 索引
  • 例如:
    • 四个逻辑 ID 以 1、2、3、4 结尾的 Edge
    • 具有 2 个 Hub 的集群
    • 1 % 2 = 1,2 % 2 = 0,3 % 2 = 1,4 % 2 = 0(注意:“%”用于表示模运算符)
    • 为 Edge 2 和 4 分配了 Hub 索引 0
    • 为 Edge 1 和 3 分配了 Hub 索引 1

    这比循环类型分配更一致,因为这意味着每次倾向于为 Edge 分配相同的 Hub,从而使分配和故障排除具有更高的可预测性。

    注: 在 Hub 重新启动时(例如,由于维护或故障),它与网关断开连接并将其从集群中移除。这意味着,在所有 Edge 重新启动后始终平均分配 Edge(由于上述逻辑),但在导致它中断连接的任何 Hub 事件后不平均分配 Edge。

在 Hub 超过允许的最大隧道容量时,将会发生什么情况?

Edge 分配逻辑尝试在所有可用的 Hub 之间平均分配 Edge。不过,在 Hub 上发生事件(例如重新启动)后,不再平均分配 Edge。

注: 通常,网关在初始分配时尝试在 Hub 之间平均分配 Edge,不平均的分配不会被视为无效的状态。如果分配不平均,但没有单个 Hub 超过 70% 的隧道容量,则将分配视为有效。

由于 Hub 上的此类事件(或在网络中添加额外的 Edge),集群可能会达到某种状态,而导致单个 Hub 超过允许的隧道容量的 70%。如果发生这种情况,并且至少一个其他 Hub 低于 70% 的隧道容量,则会自动执行公平份额重新分配,而无论是否在 Orchestrator 上启用了重新均衡。由于使用逻辑 ID 进行可预测的数学分配,大多数 Edge 将保留现有的分配,并重新均衡由于故障转移或以前的利用率重新均衡而分配给其他 Hub 的 Edge,以确保集群自动恢复为平均分配。

在 Hub 超过允许的最大集群评分时,将会发生什么情况?

与可以立即处理的隧道百分比(容量的直接测量单位)不同,集群评分每 30 秒才更新一次,并且网关无法在 Edge 重新分配后自动计算调整的集群评分。在集群配置中,提供了一个自动重新均衡参数,以指示网关是否应根据需要动态尝试转移每个 Hub 的 Edge 负载。

如果禁用了自动重新均衡,并且 Hub 的集群评分超过 70(但不是 70% 的隧道容量),则不会采取任何措施。

如果启用了自动重新均衡,并且一个或多个 Hub 的集群评分超过 70,网关将每分钟将一个 Edge 重新分配给具有最低当前集群评分的 Hub,直到所有 Hub 均低于 70 或无法再执行重新分配。

注: 默认情况下,将禁用自动重新均衡。

在两个 VMware SD-WAN Gateway 提供不同的 Hub 分配时,会发生什么情况?

与分布式控制平面的性质一样,每个网关单独确定如何进行集群分配。在大多数情况下,网关使用相同的数学公式,从而为所有 Edge 提供相同的分配。但在某些情况下,无法保证这一点,例如,基于集群评分的重新均衡。

如果 Edge 当前未连接到集群中的 Hub,它将接受来自任何响应的网关的分配。这可确保在某些网关发生故障并启动了其他网关的情况下,Edge 永远不会处于未分配状态。

如果 Edge 连接到集群中的 Hub,并收到一条消息以指示应选择备用 Hub,则会按“网关首选项”顺序处理该消息。例如,如果连接了超级网关,Edge 仅接受来自超级网关的重新分配。将忽略其他网关请求的有冲突的分配。同样,如果未连接超级网关,Edge 仅接受来自备用超级网关的重新分配。对于合作伙伴网关(其中没有超级网关),网关首选项基于为该特定 Edge 配置的合作伙伴网关的顺序。

VMware SD-WAN Gateway 发生故障时,会发生什么情况?

SD-WAN Gateway 发生故障时,如果最首选的网关是发生故障的网关,并且次首选的网关提供了不同的分配,则可能会重新分配 Edge。例如,超级网关将 Hub A 分配给该 Edge,而备用超级网关将 Hub B 分配给同一个 Edge。

发生故障的超级网关触发 Edge 故障切换到 Hub B,因为备用超级网关现在是提供连接信息的最首选网关。

在超级网关恢复时,Edge 将再次请求从该网关中分配 Hub。为了防止 Edge 在上述情况下再次切换回 Hub A,Hub 分配请求包括当前分配的 Hub(如果有)。在网关处理分配请求时,如果当前为 Edge 分配了集群中的一个 Hub,并且该 Hub 的集群评分低于 70,网关将更新其本地分配以与现有分配匹配,而不会执行其分配逻辑。这可确保在恢复时超级网关分配当前连接的 Hub,并防止为其分配的 Edge 进行无故故障切换。

如果集群中的 Hub 丢失其动态路由,会发生什么情况?

正如上文所述,Hub 每 30 秒向 SD-WAN Gateway 报告它们通过 BGP 发现的动态路由数。如果在集群中仅一个 Hub 丢失路由(由于它们被错误撤消或 BGP 邻居关系失败),则 SD-WAN Gateway 将分支 Edge 故障切换到集群中具有完整路由表的另一个 Hub。

由于每 30 秒发送一次更新,因此,路由数基于将更新发送到 SD-WAN Gateway的时间点。SD-WAN Gateway重新均衡逻辑每 60 秒执行一次,这意味着,在极少数情况下,LAN 端 BGP 邻居全部丢失,用户预计故障切换可能需要 30-60 秒的时间。为了确保所有 Hub 在发生此类事件后有机会再次更新网关,重新均衡限制为最多每 120 秒一次。这意味着,在连续发生第二次故障时,用户预计故障切换可能需要 120 秒。

如果集群中的 Hub 发生故障,会发生什么情况?

在故障切换分支 Edge 之前,SD-WAN Gateway 等待将隧道声明为失效(7 秒)。这意味着,在 SD-WAN Hub 或与其关联的所有 WAN 链路发生故障时,用户预计故障切换可能需要 7-10 秒(取决于 RTT)。