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

以下是描述 SD-WAN Edge 集群功能的重要概念:

  • Edge 集群可以在 Hub 上使用,如下所述:
    • 允许 Hub 的隧道容量超过用作 Hub 的单个 Edge 可以提供的隧道容量。
    • 在多个 Hub 之间分配远程分支 Edge 并降低可能发生的任何事件的影响。
  • 集群评分是系统总体利用率的数学计算结果,如下所示:
    三个测量的利用率因素是 CPU 使用情况、内存使用情况和隧道容量。
    • 每个利用率测量结果以最大值 100% 的百分比表示。
    • 隧道容量基于给定硬件型号或虚拟 Edge 配置的额定容量。
    • 对所有三个利用率百分比取平均值以得出基于整数的集群评分 (1-100)。
    • 在不直接考虑吞吐量的情况下,CPU 和内存使用情况间接反映了给定 Hub 上的吞吐量和流量。
    • 例如,在 Edge 2000 上:
      • CPU 使用情况 = 20%
      • 内存使用情况 = 30%
      • 连接的隧道数 = 600(除以容量 6000)= 10%
      • 集群评分:(20 + 30 + 10)/3 = 20
  • 大于 70 的集群评分将被视为“超过容量”。
  • “逻辑 ID”是一个 128 位 UUID,用于在 VMware 网络中唯一地标识元素。
    • 例如,每个 Edge 由一个逻辑 ID 表示,每个集群由一个逻辑 ID 表示。
    • 尽管用户提供了 Edge 和集群名称,但逻辑 ID 保证是唯一的,并用于在内部标识元素。
  • 默认情况下,负载会在各 Hub 之间平均分配。因此,集群中包含的所有 Edge 必须具有相同的型号和容量。
每个集群成员将具有其自身的 WAN 和 LAN 接口 IP 寻址。Hub 集群中的所有 VMware SD-WAN Edge 都需要在 LAN 端上对第 3 层设备运行动态路由协议(如 eBGP),并为每个集群成员提供一个唯一的自治系统编号 (Autonomous System Number, ASN)。在集群 LAN 端上进行动态路由可确保从数据中心到特定分支站点的流量通过相应的 Edge 集群成员进行路由。
重要说明: 集群中的 Hub Edge 不会通过隧道或路由协议相互连接或通信。它们将充当能发挥数据平面功能的独立 Edge。在分支 Edge 连接到集群中的不同 Hub Edge 时,它们依赖于对等互连到核心交换机的 LAN 端 BGP 来处理分支到分支的流量。

VMware SD-WAN 网关如何跟踪 Edge 集群

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

对于集群,SD-WAN 网关将跟踪:
  • 逻辑 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 网关提供不同的 Hub 分配时,会发生什么情况?

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

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

如果 Edge 连接到集群中的 Hub,并收到一条消息以指示应选择备用 Hub,则会按“网关首选项”顺序处理该消息。例如,如果连接了超级网关,Edge 仅接受来自超级网关的重新分配。将忽略其他网关请求的有冲突的分配。同样,如果未连接超级网关,Edge 仅接受来自备用超级网关的重新分配。对于合作伙伴网关(其中没有超级网关),网关首选项基于为该特定 Edge 配置的合作伙伴网关的顺序。
注: 在使用合作伙伴网关时,必须将相同的网关分配给集群中的 Hub 和分支 Edge,否则,可能会出现分支 Edge 无法收到 Hub 分配的情况,因为分支 Edge 连接到的网关也未连接到集群中的 Hub。

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

在 SD-WAN 网关发生故障时,如果最首选的网关是发生故障的网关,并且次首选的网关提供了不同的分配,则可能会重新分配 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 网关报告它们通过 BGP 学习的动态路由数。如果因 Hub 被错误撤消或 BGP 邻居关系失败导致集群中只有一个 Hub 丢失路由,则 SD-WAN 网关会将分支 Edge 故障切换到集群中具有完整路由表的另一个 Hub。

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

如何在集群 Hub 上配置路由?

由于网关可以指示分支连接到集群的任意 Hub 成员,因此,应在所有 Hub 上对路由配置进行镜像。例如,如果分支必须访问 Hub 后面的 BGP 前缀 192.168.2.1,则集群中的所有 Hub 应通告 192.168.2.1 以及完全相同的路由属性。

应在集群部署中使用 BGP 上行链路社区标记。将集群节点配置为在将路由重新分发到 BGP 对等体时设置上行链路社区标记。

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

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