本节概述了 VMware SASE 路由功能,包括路由类型、连接的路由和静态路由、发生平局决胜 (tie-breaking) 场景的动态路由,以及具有分布式成本计算 (Distributed Cost Calculation, DCC) 的覆盖网络流量控制 (Overlay Flow Control, OFC) 中的首选项值。

概述

VMware SASE 路由基于名为 VCRP 的专有协议构建,该路由支持多路径,并通过 VCMP 传输进行保护。SD-WAN 端点使用类似于 iBGP 完整网格的 VCRP 进行连接。SD-WAN 网关充当 BGP 路由反射器,可根据配置文件设置将路由从客户企业中的一个 SD-WAN Edge 反射到另一个 SD-WAN Edge。

下图显示了具有多云非 SD-WAN 目标的典型 SD-WAN 部署,其中 Orchestrator 执行路由计算(与使用动态成本计算 (DCC) 的较新和首选方法形成对比)。

用于路由用途的 SD-WAN 组件

VMware SD-WAN 路由使用三个组件:Edge、网关和 Orchestrator,如下所述。
  • SD-WAN Edge 是一个企业级设备或虚拟化云实例,可提供与专用、公用和混合应用程序以及虚拟化服务的安全且优化的连接。在 SD-WAN 路由中,Edge 是一个边界网关。Edge 可以充当常规 Edge(没有 Hub 配置)、作为 Hub 本身或集群的一部分,或者作为分支(在配置了 Hub 时)。
  • SD-WAN 网关是自治、无状态、可横向扩展的云交付网关,多个租户中的 Edge 可以连接到这个网关。对于任何 SD-WAN 部署,可将多个 SD-WAN 网关部署为一个在地理上分布(用于降低延迟)和横向扩展(用于容量)的网络,每个网关将充当其已连接 Edge 的路由反射器

    在 Edge 上本地学习的所有路由将根据配置发送到网关。然后,网关会将这些路由反射到企业中的其他 Edge,从而可以在不建立全网状隧道的情况下实现高效的全网状 VPN 连接。

  • SASE Orchestrator 是一个基于云的多租户配置和监控门户。在 SD-WAN 路由中,Orchestrator 管理所有企业的路由,并且可以覆盖默认路由行为。

    有关用于路由的 VMware SD-WAN 组件的示意图,请参阅下图。

路由类型

SD-WAN 有两种常规类型的路由:
  • 本地路由 (Local Routes):在 SD-WAN Edge 上本地学习的任何路由。这可以是已连接的子网、静态配置的路由或通过 BGP 或 OSPF 学习的任何路由。
  • 远程路由 (Remote Routes):从 VCRP 学习的任何路由,换言之,Edge 本地不存在的路由就是远程路由。该路由源自不同的 Edge,网关会根据配置将该路由反射到客户企业中的其他 Edge。

SD-WAN 使用严格的顺序来为无法更改的非动态路由(BGP 和 OSPF)路由流量。但是,在某些情况下,您可以使用最长前缀匹配技术来操纵路由流量的方式。

Edge 中的路由排序:
  1. 前缀长度最长。
  2. 本地已连接。
  3. 本地静态 (如果启用了首选选项)(LAN 静态< WAN 静态)。
    • 如果未启用首选选项,将首选覆盖网络路由。
  4. NSD 本地静态路由。
    • NSD IPsec 战胜 NSD GRE。
  5. 远程 NSD 静态。
  6. 远程 Edge 已连接。
  7. 远程 Edge LAN/WAN 静态。
  8. PG 静态。
    • PG 安全静态> PG 非安全静态。
  9. 动态路由(覆盖网络流量控制 (OFC) 或分布式成本计算驱动的路由顺序)。
    • 站点本地(OSPF 内部/内部、BGP 非上行链路)是首选路由,而不是过度动态路由。
    • 本地 OSPF 区域间/区域内路由将覆盖本地 BGP。
    • 本地 BGP 胜过本地 OSPF 外部 (OE1/OE2)。
    • 具有首选成本的远程路由胜过非首选本地路由(OE1、OE2、上行链路 BGP)。
    • 在远程动态路由中,将考虑首选项(较低的首选项胜出)。
    • 如果首选项相同,则会比较 BGP 属性和 OSPF 衡量指标。
      • OSPF 内部 > 内部 > OE1 > OE2
      • BGP
        1. 较高的本地首选项
        2. 较低的 AS_PATH 长度
        3. 较小的 BGP 衡量指标
    • 有关首选项计算的更多详细信息,请参阅 DCC 部分。

连接的路由和静态路由

本节包含有关连接的路由和静态路由的基本信息。连接的路由是配置为直接连接到接口的网络的路由。静态路由对于现有网络连接设备(如打印机)需要静态路由的特殊情况非常有用。有关静态路由的更多信息,请参阅配置静态路由设置

连接的路由

  • 要使连接的路由在 SD-WAN 中可见,请在 Orchestrator 上配置以下设置:
    • 必须激活云 VPN (Cloud VPN)
    • 必须为连接的路由配置有效的 IP 地址。
    • 此路由的 Edge 接口必须在 L1 上已启动,并在 L2 和 L3 上正常工作。
    • 与该 Edge 接口关联的 VLAN 也必须已启动。
    • 必须在接口 IP 设置 (Interface IP settings) 下为配置了连接的路由的 Edge 接口设置通告 (Advertise) 标记。
静态路由
  • 要使静态路由在 SD-WAN 中可见,请在 Orchestrator 上配置以下设置:
    • 必须激活云 VPN (Cloud VPN)
    • 静态路由配置必须选中已通告 (Advertised)
  • 静态路由可以将流量转发到 WAN 底层网络或 LAN。
  • 添加静态路由后可绕过 Edge 接口上的 NAT。
  • 不支持具有静态路由的 ECMP(等价多路径路由),并且将只使用第一个静态路由。
  • 使用 ICMP 探测可避免在下一跃点发生故障时产生黑洞流量。
  • 选中首选 (Preferred) 标记的静态路由优先于通过覆盖网络学习的任何 VPN 路由。
注: 首选 (Preferred) 标记与 通告 (Advertise) 标记之间的差异:

选中首选 (Preferred) 复选框后,将始终先匹配静态路由,即使成本较低的 VPN 路由也是如此。

如果未选择该选项,则意味着将通过静态路由匹配任何可用的 VPN 路由,即使 VPN 路由的成本高于静态路由也是如此。仅当相应的 VPN 路由不可用时,才会匹配静态路由。

选中通告 (Advertise) 复制框后,静态路由将通过 VPN 进行通告,并且网络中的其他 SD-WAN Edge 将有权访问资源。这还支持将静态路由重新分发到路由协议(如本地 BGP/OSPF)。

如果将专用资源(如远程办公人员的个人打印机)配置为静态路由,并且阻止其他用户访问该资源,请不要选择此选项。

OFC 全局通告标记 (Global Advertise Flags) 可控制将哪些路由添加到覆盖网络。默认情况下,不会在覆盖网络中通告以下路由类型:外部 OSPF 和非 SD-WAN 目标 iBGP。此外,如果 Edge 同时充当 Hub 和分支,则将使用为分支而不是 Hub 配置的 全局通告标记 (Global Advertise Flags)

注: 还有两种额外的路由类型: 自有路由 (Self Routes)云路由 (Cloud Routes),它们将根据 Edge 的配置安装在 Edge 上。每个路由都有一个狭窄的应用程序概述,这不需要额外的处理,除了在这里提及它们:

自有路由 (Self Routes) 是指使用 IP 最长前缀匹配 (Longest Prefix Match, LPM)(例如:172.16.1.10/32)的基于接口的前缀,该前缀安装在 Edge 本地,不会通告到远程 Edge。自有路由的另一个术语是“接口路由”。在 Edge 日志中,自有路由显示为路由标记“s”。

自有路由与连接的路由不同,因为可以将连接的路由通告到覆盖网络,以便远程 Edge 客户端可以返回到源 Edge 端上属于已连接路由的客户端。自有路由严格意义上是 Edge 本身的本地路由。

云路由 (Cloud Route) 使用“v”标记表示,是指安装在 Edge 上且指向主 VMware SD-WAN 网关的路由,用于处理发送到 Internet 的多路径流量(换言之,就是使用动态多路径优化 (Dynamic Multi-Path Optimization, DMPO) 的 Internet 流量,它会在到达 Internet 之前利用网关)。

Edge 还会使用通过相应网关的云路由,以管理发送到公有云上托管的 VMware Orchestrator 的流量。

具有分布式成本计算 (DCC) 的覆盖网络流量控制 (OFC)

本节介绍了将 OFC 与 DCC 结合使用的路由顺序的工作方式。
重要说明: 此材料仅适用于已激活 分布式成本控制 (DCC) 的客户。DCC 最初在 SD-WAN 版本 3.4.0 中提供,现在建议为所有客户激活 DCC。在即将发布的版本中,将为新客户自动激活此功能。有关 DCC 的详细信息(包括最佳做法),请参阅 配置分布式成本计算

分布式成本计算概述

分布式成本计算 (DCC) 是一项功能,它利用 SD-WAN Edge 和网关进行路由首选项计算,而不是依赖于 SASE Orchestrator。Edge 和网关在学习路由后立即插入路由,然后将这些首选项传送到 Orchestrator。

DCC 解决了在仅依靠 Orchestrator 的大型部署中出现的问题,因为在此类大型部署中,Edge 或网关可能无法访问 Orchestrator 以接收更新的路由首选项,或者 Orchestrator 可能无法在一次计算大量路由更新时快速提供路由更新,从而可能无法及时更新路由首选项。将路由首选项计算的职责分配给 Edge 和网关可确保快速可靠地更新路由。

如何完成分布式成本计算首选项

表 3-2 包含 SD-WAN 中支持的动态路由类型,而表 3-3 是路由类型的术语表。动态路由首先根据它是在 Edge 上还是在网关上学习的进行分类。
表 1. 动态路由类型
Edge 合作伙伴网关/托管网关
NSD E BGP NSD E/I BGP
NSD I BGP E/I BGP
NSD 上行链路 BGP
OSPF O
OSPF IA
E BGP
I BGP
OSPF OE1
OSPF OE2
上行链路 BGP
表 2. 路由类型含义
O = OSPF 区域内
IA = OSPF 区域间
OE1 = OSPF 外部类型 1
OE2 = OSPF 外部类型 2
E BGP = 外部 BGP
I BGP = 内部 BGP
NSD = 非 SD-WAN 目标
注: 从 4.3.0 开始,提供 OFC 支持非 SD-WAN 目标 (NSD)。有关 NSD 的更多信息,请参阅 配置非 SD-WAN 目标

每个路由类型都有一个首选项值(将首选项视为本文档中的成本),并且根据路由类型为每个学习的路由分配一个首选项值。首选项值越低,优先级越高。表 1-3 列出了每种路由类型的默认首选项值。

表 3. 首选项值
设备 路由类型 默认首选项
Edge/Hub NSD E BGP 997
Edge/Hub NSD I BGP 998
网关 NSD E/I BGP 999
Edge/Hub NSD 上行链路 BGP 1000
Edge/Hub OSPF O 1001
Edge/Hub OSPF IA 1002
Edge/Hub E BGP 1003
Edge/Hub I BGP 1004
合作伙伴网关 E/I BGP 1005
Edge/Hub OSFP OE1 1001006
Edge/Hub OSPF OE2 1001007
Hub/Edge BGP 上行链路 1001008

上表中显示的首选项值基于覆盖网络流量控制配置中的默认优先级顺序。如果更改默认顺序,将相应地调整这些值。

动态路由工作流

  1. Edge 或网关将学习动态路由。
  2. SD-WAN 会在内部标识它的路由类型及其默认首选项值。
  3. SD-WAN 将分配正确的首选项值,并在路由信息库 (Routing Information Base, RIB) 和转发信息库 (Forwarding Information Base, FIB) 中安装路由。
  4. SD-WAN 会考虑执行为此路由配置的默认通告操作。根据通告操作,SD-WAN 会在客户企业之间通告路由(已通告),或者只将路由添加到 RIB 和 FIB 本地(未通告),而不采取任何操作。
  5. 然后,SD-WAN 会将该路由同步到 Orchestrator,进而在 Orchestrator 上显示该路由。

首选 VPN 出口点

本节介绍了首选 VPN 出口点:它们是什么,哪些路由可以属于哪些类别,以及如何使用路由固定来覆盖默认值。

在企业门户的 SD-WAN 服务中,导航到配置 (Configure) > 覆盖网络流量控制 (Overlay Flow Control) 时,您会看到一个标题为首选 VPN 出口 (Preferred VPN Exits) 的部分。此部分显示默认优先级,并标记优于其他类别的一些路由类别。

显示“首选 VPN 出口”(Preferred VPN Exits) 的“覆盖网络流量控制”(Overlay Flow Control) 屏幕的屏幕截图。

首选 VPN 出口 (Preferred VPN Exit) 类别:
  • Edge:可以在 Hub 或分支 Edge 上学习的任何内部路由都属于此类别,并标记为最高优先级。内部路由不能是 OSPF OE 1 / OE 2 或 BGP 上行链路类型的路由。
  • Hub:在 Edge/Hub 上学习的任何外部路由都属于 Hub 类别,通常具有较低的优先级。Hub 路由包括 OSPF OE1/2 和 BGP 上行链路。
  • 合作伙伴网关 (Partner Gateway):在合作伙伴网关上学习的任何路由。
  • 路由器 (Router):路由器表示由启用了 BGP 或 OSPF 的 Edge 学习的任何路由前缀,用于确定分配给动态路由的优先级。通常,“VPN 出口”(VPN Exit) 中路由器 (Router) 上方的所有出口点分配的首选项值(首选成本)较低,优先级较高,而路由器 (Router) 下面的所有出口点分配的首选项值较高,优先级较低。
    • 例如:激活 DCC 后,属于 VPN 出口点(Edge、合作伙伴网关或 Hub)且位于路由器 (Router) 上方的所有路由会获得一个小于 1,000,000 的首选项值,而路由器 (Router) 下方的路由会获得一个大于 1,000,000 的首选项值。
    • 在下面的示例中,路由器 (Router) 上方的 VPN 出口点 (VPN Exit Points)(即 NSD、Edge 和合作伙伴网关)将获得一个小于 1,000,000 首选项值,Hub 将获得一个大于 1,000,000 的首选项值。“覆盖网络流量控制”(Overlay Flow Control) 的另一个屏幕截图,但此屏幕截图突出显示了“路由器”(Router),以指出高于和低于“路由器”(Router) 类型的首选项值。

固定路由以覆盖默认首选项值

SD-WAN 具有一项路由固定功能,借助此功能,用户可以覆盖分配给任何动态路由的默认首选项值。学习动态路由并将其与 Orchestrator 同步后,用户可以导航到 覆盖网络流量控制 (Overlay Flow Control) 页面并覆盖该路由的默认顺序。此场景的工作流如下所示:
  1. 用户可以通过以下任一方法在覆盖网络流量控制 (Overlay Flow Control) 页面上固定路由:
    1. 路由列表 (Routes List) 中,选择一个或多个路由,然后单击固定学习的路由首选项 (Pin Learned Route Preference) 选项。
    2. 单击表下面的编辑 (Edit) 以修改首选 VPN 出口 (Preferred VPN Exits) 的顺序。
  2. Orchestrator 将该路由事件发送到客户企业中的相关 Edge。
  3. Edge 覆盖以前的首选项值以匹配固定顺序。
  4. 分配给固定路由的首选项值从 1、2、3 开始,以此类推(最低的值表示最高的优先级),这与覆盖网络流量控制 (Overlay Flow Control) 页面上的路由顺序匹配。
    注: 有关固定路由的更多信息,请参阅 配置子网

所有类型路由的平局决胜场景

当 Edge 收到两个或多个源/邻居的相同前缀时,会发生什么情况?

在 SD-WAN 部署中,可能的场景是从两个不同的 Edge 或合作伙伴网关通告相同的前缀。使用 VMware SD-WAN,如果子网属于相同的类别(Edge、Hub 或合作伙伴网关)中,并且具有相同的首选项值,则在路由排序时会首先考虑 BGP 属性或 OSPF 衡量指标。

如果仍存在平局,SD-WAN 使用下一跃点设备的逻辑 ID(派生自 Edge 或网关的通用唯一标识符 (Universally Unique Identifier, UUID))来打破这种平局。下一跃点设备可以是网关或 Hub Edge,具体取决于所使用的分支到分支 VPN 的类型。如果客户企业正在通过网关使用分支到分支,则下一跃点为网关,而如果客户使用分支到 Hub,则下一跃点为 Hub Edge。

如果多个网关通告类型和优先级完全相同的路由,则需要考虑最终决定因素。此最终决定因素首选最早学习的路由。要确保得到预期的路由结果,您可以固定某些路由,或者配置 BGP 属性和成本以使某些路由优先于其他路由。

注: 客户无法控制 逻辑 ID (LID) 的生成方式,您也无法更改该值。LID 值无法直接进行比较。相反,在对 LID 值进行比较时,需使用将其分解为四个部分的内部软件算法,并逐一比较每一部分。例如,lid1-data1 大于 lid1-data2,lid1-data2 大于 lid2-data2。

有关动态路由的首选项计算和路由排序的说明,请参阅下图。

请考虑上述拓扑,其中两个分支学习相同的路由 9.9.9.9/32。
  1. Spoke1 和 Spoke2 将路由学习为 BGP 路由(非上行链路)。
  2. Hub1 和 Hub2 将路由学习为上行链路 BGP 路由。
  3. PG1 还会学习相同的路由。
  4. 在分支配置文件中启用了通过 Hub1 和 Hub2 的分支到分支流量。
使用非上行链路路由的分支中的路由排序:
  1. 由于 spoke1 和 spoke2 将路由学习为 BGP,因此根据 DCC 首选项映射表,它们选择的首选成本值(在本节中,首选项值称为成本)为 1003。
  2. 路由 9.9.9.9/32 将安装在参考成本为 1000000 的 Spoke1 和 Spoke2 的 FIB 中。与往常一样,底层网络路由将安装在仅具有参考成本的 FIB 中。DCC 首选项表中的派生成本/首选项适用于要用于路由排序的远程 SD-WAN 实体(Edge/网关)。
  3. Spoke1 和 Spoke2 以派生成本 1003 通过 VCRP 将路由重新分发到网关和远程 Edge/Hub。以下输出图像显示了分支中的派生成本/首选项。
  4. 同样,Hub1 和 Hub2 学习路由并生成非首选成本 (1001008),因为它们将路由学习为上行链路路由。Hub 会使用此成本将路由重新分发到网关和其他 Edge。以下输出显示了 Hub 中的派生成本/首选项。
  5. PG1 从 BGP 中学习相同的路由,使用成本 1005,并将路由重新分发到 Edge。以下输出显示了 PG 中的派生成本/首选项。
  6. Spoke1 从非首选成本为 1001008 的 Hub1 和 Hub2 接收路由。Spoke1 的首选成本为 003。因此,将首选 spoke1 自己的底层网络路由,且 Hub 路由将安装在底层网络路由 (Underlay Route, SB) 下方。在 Hub 路由中,如果首选项(成本)相同,则将比较 BGP 属性以进行路由排序。如果 BGP 属性也相同,则将使用 Hub 顺序安装路由。
  7. Spoke1 从成本分别为 1003 和 1005 的 Spoke2 和 PG1 接收路由。由于 Spoke1 的首选成本为 1003,且从 Spoke2 和 PG1 接收首选成本 <100000 的路由,因此 Spoke1 会将参考成本 1000000 添加到入站首选成本中,并在 FIB 中安装路由。在这种情况下,将使用成本 1001003 安装 Spoke2 的路由,使用成本 1001005 安装 PG1 的路由。
  8. 如果 Spoke2 甚至 Hub 将路由学习为非上行链路路由,则会在其中应用相同的路由排序逻辑。
  9. 如果未在任何实体中学习底层网络路由,则不会对收到的路由首选项/成本进行任何更正。将根据收到的首选项/成本安装路由。
包含上行链路路由的 Hub 中的路由排序:
  1. Hub 使用参考成本 1000000 将其自己的底层网络路由 (SB) 安装在 FIB 中的。
  2. Hub 接收首选成本为 1003 的分支路由。由于分支之间的成本相同,因此将基于此对 BGP 属性进行比较和排序。如果 BGP 属性也相同,则将使用分支逻辑 ID 进行排序(较低的目标逻辑 ID 将胜过决定因素)。将使用当前接收的成本安装分支的路由。
  3. Hub 接收具有首选成本的 PG1 路由。因此,它将按收到的首选成本进行安装。
PG 中的路由排序:
  1. PG1 使用首选项 100000 安装自己的底层网络路由 (PB)。
  2. PG1 接收具有相应首选项的分支路由和 Hub 路由。路由将根据首选项值放置在 FIB 中。如果首选项相同,则会考虑 BGP 属性。如果 BGP 属性也相同,则将使用逻辑 ID 进行排序。
  3. 在 PG 中,没有首选项/成本更正。
未启用 DCC 时的行为:
  • 如果未启用 DCC,则 Orchestrator 将执行通告判定和首选项计算。每个实体(Edge 或网关)将学习的路由发送到 Orchestrator,且预期收到来自 Orchestrator 的回复。收到来自 Orchestrator 的回复后,如果回复中的通告标记为“true”,则 Edge 或网关会开始将路由重新分发给其他 SDWAN 实体。
  • 路由顺序与启用 DCC 的情况相同,但在禁用 DCC 的情况下,首选项值不固定。
  • 对于基于 Orchestrator 的首选项计算,参考首选项/成本为 512。小于 512 的首选项/成本为首选成本,而大于 512 的首选项/成本将赋予非首选路由(上行链路路由、OSPF 外部路由)。其他路由排序逻辑与启用 DCC 的情况相同。
  • 如果 spoke2 先学习路由,然后将路由发送到 Orchestrator,Orchestrator 将开始根据实体和路由类型分配首选项。由于 spoke2 将路由学习为非上行链路,因此 Orchestrator 将分配首选项值(例如,64)。稍后,当 spoke1 将相同路由发送到 Orchestrator 时,Orchestrator 将比较实体、路由类型和路由属性。如果该路由较好,则分配小于 64 的首选项。如果该路由较差,则分配大于 64 的首选项。
  • Hub 将路由学习为上行链路路由,并将其发送到 Orchestrator。Orchestrator 分配非首选成本 (大于 512);在此示例中为 4096。如果首选项相同,将采用 Hub 顺序对分支中的路由进行排序。
  • 禁用 DCC 后,spoke1(具有非上行链路路由)中的路由顺序将如下图所示。
  • 具有上行链路路由的 Hub 中的路由器顺序将如下图所示。
  • PG 中的路由顺序将如下图所示。
网关中的路由排序:
  1. 前缀长度最长。
  2. NSD 本地静态路由。
  3. 远程 NSD 静态。
  4. PG 安全静态。
    1. 企业级别 PG 静态路由胜过全局级别 PG 静态路由。
  5. 远程连接/静态。
    1. Edge logical_id 将成为决定因素(较高的逻辑 ID 胜出)。
  6. 动态路由(覆盖网络流量控制 (OFC) 或分布式成本计算驱动的路由顺序)。
    1. 动态路由排序将依据首选项值。较低的首选项胜出。
    2. 与 Edge 不同,网关的自动更正中没有首选项。对于动态路由,网关使用收到的首选项安装路由。将始终使用参考首选项 1000000 安装本地路由。
    注: 有关首选项计算的详细信息,请参阅“具有分布式成本计算 (DCC) 的覆盖网络流量控制 (OFC)”一节。
  7. PG 非安全静态。
注: 在网关中,为流量转发选择的路由依据其他条件,例如,Edge 配置文件设置、流量方向等。