1 数据中心演进

数据中心是现代软件技术的基石,在扩展企业能力的过程中扮演着关键角色。传统的数据中心使用三层架构(three-tier architecture),根据物理位置将服务器划分为不同pod,如图1所示。

图1传统三层(Three-Tier)数据中心设计

这种架构由核心路由器、汇聚路由器(有时叫分发路由器,distribution routers)和接入交换机组成。在接入交换机和汇聚路由器之间运行生成树协议(Spanning Tree Protocol,STP),以保证网络的二层部分(L2)没有环路。STP有许多好处:简单,即插即用(plug-and-play),只需很少配置。每个pod内的机器都属于同一个VLAN,因此服务器无需修改IP地址和网关就可以在pod内部任意迁移位置。但是,STP无法使用并行转发路径(parallel forwarding path),它永远会禁用VLAN内的冗余路径。

2010年,Cisco提出了virtual-port-channel(vPC)技术来解决STP的限制。vPC解放了被STP禁用的端口,提供接入交换机到汇聚路由器之间的active-active上行链路,充分利用可用的带宽,如图2所示。使用vPC技术时,STP会作为备用机制(fail-safe mechanism)。
vPC技术在相对较小的数据中心环境中运行良好,在这种环境中,大部分流量都是客户机到服务器之间的南北向流量


图2使用vPC技术的数据中心设计

从2003年开始,随着虚拟化技术的引入,原来三层(three-tier)数据中心中,在二层(L2)以pod形式做了隔离的计算、网络和存储资源,现在都可以被池化(pooled)。这种革命性的技术产生了从接入层到核心层的大二层域(larger L2 domain)的需求,如图3所示。


图3扩展的L3域的数据中心设计

随着L2 segment(二层网络段,例如VLAN划分的二层网络,译者注)被扩展到所有pod,数据中心的管理员可以创建一个集中式的、更加灵活的、能够按需分配的资源池。物理服务器被虚拟化为许多虚拟服务器(VM),无需修改运维参数就可以在物理服务器之间自由迁移。

虚拟机的引入,使得应用的部署方式越来越分布式,导致东西向流量(east-west-traffic)越来越大。这些流量需要被高效地处理,并且还要保证低的、可预测的延迟。然而,vPC只能提供两个并行上行链路,因此三层数据中心架构中的带宽成为了瓶颈。三层架构的另一个问题是服务器到服务器延迟(server-to-server latency)随着流量路径的不同而不同。

针对以上问题,提出了一种新的数据中心设计,称作基于Clos网络的Spine-and-Leaf架构(Clos network-based Spine-and-Leaf architecture)。事实已经证明,这种架构可以提供高带宽、低延迟、非阻塞的服务器到服务器连接。

Spine-Leaf 架构

图4是一个典型的两级Spine-and-Leaf拓扑。

图4典型的Spine-and-Leaf拓扑

在这种两层的Clos架构中,每个低层级的交换机(leaf)都会连接到每个高层级的交换机(spine),形成一个full-mesh拓扑。leaf层由接入交换机组成,用于连接服务器等设备。spine层是网络的骨干(backbone),负责将所有的leaf连接起来。在fabric中,每个leaf交换机都会连接到每个spine。它们之间的路径是随机选择,这样流量负载就可以在顶层交换机之间均匀分布。如果一个spine交换机挂了,数据中心的吞吐性能只会有轻微的下降(slightly degrade)。

如果某个链路被打满了,扩容过程也很直接:添加一个spine交换机就可以扩展每个leaf的上行链路,增大了leaf和spine之间的带宽,缓解了链路被打爆的问题。如果接入层的端口数量成为了瓶颈,那就直接添加一个新的leaf,然后将其连接到每个spine并做相应的配置即可。这种易于扩展(ease of expansion)的特性优化了IT部门扩展网络的过程。leaf层的接入端口和上行链路都没有瓶颈时,这个架构就实现了无阻塞(nonblocking)。

在Spine-and-Leaf架构中,任意一个服务器到另一个服务器的连接,都会经过相同数量的设备(除非这两个服务器在同一leaf下面),这保证了延迟是可预测的,因为一个包只需要经过一个spine和另一个leaf就可以到达目的端。

Overlay 网络

现代虚拟化数据中心的网络要加速应用部署和支持DevOps,必须满足特定的前提条件。例如,需要支持扩展转发表、扩展网段、L2 segment extension、虚拟设备漂移(mobility)、转发路径优化、共享物理基础设施上的网络虚拟化和多租户等等。

虽然overlay的概念并不是最近才提出的,但因为它可以解决以上提到的问题,因此近几年这个概念又火了起来。最近专门针对数据中心提出的新的帧封装格式(encapsulation frame format)更是为这个势头添了一把火。这些格式包括:

  • VXLAN:Virtual Extensible LAN
  • NVGRE: Network Virtualization Using Generic Routing Encapsulation
  • TRILL: Transparent Interconnection of Lots of Links
  • LISP: Location/Identifier Separation Protocol

overlay 网络是共享底层网络(underlay network)的节点之间互连形成的虚拟网络,这使得在不修改底层(underlay)网络的情况下,可以部署对网络拓扑有特定要求的应用,如图5所示。

图5网络Overlay概念

overlay虚拟化带来的好处包括:

  • 优化的设备功能:overlay网络使得可以根据设备在网络中的位置不同而对设备进行分类(和定制)。边缘或leaf设备可以根据终端状态信息和规模优化它的功能和相关的协议;core或spine设备可以根据链路状态优化它的功能和协议,以及针对快速收敛进行优化。
  • fabric的扩展性和灵活性:overlay技术使得可以在overlay边界设备上进行网络的扩展。当在fabric边界使用overlay时,spine或core设备就无需向自己的转发表中添加终端主机的信息(例如,如果在宿主机内进行overlay的封装和解封装,那overlay边界就是在宿主机内部,译者注)。
  • 可重叠的寻址:数据中心中使用的大部分overlay技术都支持虚拟网络ID,用来唯一地对每个私有网络进行范围限定和识别(scopeandidentify)。这种限定使得不同租户的MAC和IP地址可以重叠(overlapping)。overlay的封装使得租户地址空间和underlay地址空间的管理分开。

本文档将介绍Cisco过去几年和当前提供的、以及不远的将来应该会提供的几种Spine-and-Leaf架构设计,这些设计都是为了解决现代虚拟化数据中心中fabric面临的需求:

  • Cisco® Fabric®Path spine-and-leaf network
  • Cisco VXLAN flood-and-learn spine-and-leaf network
  • Cisco VXLAN Multiprotocol Border Gateway Protocol (MP-BGP) Ethernet Virtual Private Network (EVPN) spine-and-leaf network
  • Cisco Massively Scalable Data Center (MSDC) Layer 3 spine-and-leaf network

下面的几章将围绕写作本文时的一些最重要技术组件、通用设计和设计考虑(例如 L3 网关)进行讨论。
最重要的技术组件包括:

  1. 封装
  2. end-host detection and distribution
  3. 广播
  4. unknown unicast
  5. 组播流量转发
  6. underlay 和 overlay 控制平面
  7. 多租户支持

Cicso Fabric®Path Spine-and-Leaf 网络

Cisco 在 2010 年推出了 Fabric®Path 技术。Fabric®Path 提供的新特性和设计选项使得网 络管理员可以创建以太网 fabrics,后者可以提高带宽可用性、提供设计灵活性,以及 简化和降低网络和应用的部署及运维成本。典型的 Fabric®Path 都是使用 Spine-and-Leaf 架构。

Fabric®Path 继承了很多传统 L2 和 L3 技术中的优良特性,它保留了 L2 环境易于配置和 即插即用的部署模型,并引入了一个称为 Fabric®Path IS-IS(Intermediate System to Intermediate System)的控制平面协议。这种最短路径优先(shortest path first, SPF)路由协议用于确定可达性,并选择到Fabric®Path网络中任何给定目的地Fabric®Path交换机的最佳路径。其结果是提高了稳定性和扩展性,快速收敛性,以及在L3路由环境中使用多条并行路径的能力。

4.1 封装格式和标准兼容

Fabric®Path spine-and-leaf 网络是 Cisco 的专利,但基于 TRILL 标准。它使用 Fabric®Path MAC-in-MAC 帧封装。

4.1.1 Underlay 网络

数据平面使用 L2 Fabric®Path MAC-in-MAC 封装,控制面在 underlay 网络中使用 Fabric®Path IS-IS。每个 Fabric®Path 交换机都有一个 Fabric®Path switch ID。Fabric IS-IS 控制平面构建可达性信息(reachability information),即 Fabric®Path 交换机如何连接到其它 Fabric®Path 交换机。

4.1.2 Overlay 网络

Fabric®Path 没有overlay 控制平面。overlay 网络中的end-host 信息是通过带会话学 习功能的“泛洪-学习”机制学习的(flood-and-learn mechanism with conversational learning)。

4.2 广播和未知单播流量

对于Fabric®Path网络,Fabric®Path IS-IS控制平面默认创建两个多目标树,通过Fabric®Path网络承载广播流量,未知单播流量和多播流量。Fabric®Path中的广播和未知单播流量被淹没到VLAN或广播域中的所有Fabric®Path边缘端口。

4.3 主机检测和可达性

为了获取主机可达性信息,Fabric®Path交换机依赖于初始数据平面流量泛滥。随着广播域中的足迹数量的增加,泛洪数据包的负面影响更加明显。在Fabric®Path网络设计中,需要仔细考虑广播和未知单播流量泛滥的影响。存在一些功能,例如Fabric®Path Multitopology功能,可以帮助限制Fabric®Path网络子区域中的流量泛滥。

4.4 组播流量

对于Fabric®Path网络,Fabric®Path IS-IS控制平面默认创建两个多目标树,通过Fabric®Path网络承载广播流量,未知单播流量和多播流量。默认情况下,IP多播流量仅限于那些链接了感兴趣的多播接收器和多播路由器并使用互联网组管理协议(IGMP)侦听的Fabric®Path边缘端口。对于2层多播流量,进入Fabric®Path交换机的流量呗散列到要转发的多目标树中。对于3层IP多播流量,需要使用协议无关多播(PIM)通过L3多播转发流量。在将流量路由到目标VLAN后,使用目标VLAN中的多目标树进行转发。

4.5 L3 路由功能

Fabric®Path是一种L2网络结构技术,它允许您通过在第2层添加更过骨干节点和叶子结点来轻松扩展网络容量。但大多数网络不是纯粹的L2网络。服务器可以与不用子网中的其他服务器进行通信,也可以通过广域网或互联网与远程分支结构中的客户端通信。该流量需要由Fabric®Path交换机上启用L3的路由功能。
Fabric®Path网络中L3功能需的位置需要仔细设计。有两种主要的设计选项可供选择:边界脊处的内部和外部布线,以及边界叶处的外部和内部布线。这种设计都提供了集中式的路由:也就是说,第三层路由功能集中在特定的交换机上。

4.5.1 在 Spine 层做内部和外部路由

如图 6 中边界脊柱的内部和外部路由设计所示,脊柱交换机充当第 2 层和第 3 层边界和服务器子网网关。脊柱交换机执行 VLAN 内 FabricPath 帧交换。脊柱交换机上的交换机虚拟接口(SVI)为东西向内部流量执行 VLAN 间路由,并与第 3 层路由上行链路交换路由邻接信息,以路由南北向外部流量。路由流量只需穿越一跳,即可到达脊柱交换机的默认网关进行路由。
FabricPath 技术目前最多支持四个 FabricPath 任播网关。如果脊叶网络有四个以上的脊柱交换机,则需要 在脊柱交换机上分配第 2 层和第 3 层边界。此外,在脊柱交换机上启用 SVI 后,脊柱交换机会禁用会话学习并学习相应子网中的 MAC 地址。您需要考虑 MAC 地址规模,以避免超出硬件的可扩展性限制。
图 6.边界脊柱的内部和外部路由选择在这里插入图片描述
图 6.边界脊柱的内部和外部路由选择

4.5.2 在 Border Leaf 做内部和外部路由

如图 7 中边界叶片的内部和外部路由设计所示,脊柱交换机作为第 2 层 FabricPath 交换机,只执行 VLAN内 FabricPath 帧交换。它不学习主机 MAC 地址。某些 FabricPath 叶交换机(称为边界叶交换机)启用了第 2 层和第 3 层功能。边界叶子交换机上的 SVI 为东西向内部流量执行 VLAN 间路由,并与第 3 层路由上行链路交换路由邻接,以路由南北向外部流量。

但路由流量需要经过两跳:叶子到脊柱,然后到边界叶子上的默认网关进行路由。在设计中,最多可启用四个 FabricPath 任播网关,并在边界网叶上进行路由。您需要考虑 MAC 地址规模,以避免超出边界叶子交换机的可扩展性限制。在这里插入图片描述
图 7.边界叶上的内部和外部路由选择

4.6 多租户

FabricPath 的脊叶网络通过 VXLAN 网络 (VN) 网段功能支持第 2 层多租户(图 8)。VN 网段功能提供了一种在线路上标记数据包的新方法,取代了传统的 IEEE 802.1Q VLAN 标记。该功能使用增加的 24 位名称空间。
客户边缘链路(接入和中继)传输传统的 VLAN 标记和无标记帧。这些是 VN 段边缘端口。

FabricPath 链路(交换机端口模式:fabricpath)为已定义 VXLAN 网络标识符 (VNI) 的 VLAN 传输 VN 段标记帧。这些是 VN 段核心端口。为支持多租户,相同的 VLAN 可在不同的 FabricPath 叶交换机上重复使用
,IEEE 802.1Q 标记帧被映射到特定的 VN 段。VN 段用于在第 2 层为每个租户提供隔离。VLAN 在 FabricPath 叶交换机上具有本地意义,而 VN 段在整个 FabricPath 网络中具有全局意义。在每个 FabricPath 叶交换机上,网络保留 4096 个 VLAN 空间,但在整个 FabricPath 网络中,至少在理论上可以支持多达 1600 万个 VN 段。

在这里插入图片描述
图 8.使用 FabricPath VN-Segment 功能的第 2 层多租户示例
如图 9 所示,FabricPath 椎叶网络还支持使用精简虚拟路由和转发(VRF-lite)的第 3 层多租户。 FabricPath 网络是第 2 层网络,第 3 层 SVI 位于第 2 层 FabricPath 交换机之上。使用 VRF-lite, FabricPath 网络支持的 VLAN 数量为 4096 个。
在这里插入图片描述
图 9.使用 VRF-lite 的第 3 层多重租用示例

4.7 总结

FabricPath 旋叶网络是思科公司的专利技术,但该技术已经成熟并得到广泛部署。它提供了一种简单、灵活、稳定的网络,具有良好的可扩展性和快速收敛特性,并可在二层使用多条并行路径。但 FabricPath 网络是基于泛洪和学习的二层技术。其控制平面协议 FabricPath IS-IS 的设计目的是确定 FabricPath 交换机 ID 的可达性信息。为了解终端主机可达性信息,FabricPath 交换机依赖于初始数据平面流量泛洪。随着广播域中主机数量的增加,泛洪数据包的负面影响会越来越明显。第 3 层功能位于第 2 层网络之上。常见的第 3 层设计使用集中路由:即第 3 层路由功能集中在特定的交换机(脊柱交换机或边界叶子交换机)上。FabricPath网络最多支持四个任播网关,用于内部 VLAN 路由。

表 1 Cisco Fabric®Path 网络特性

5 Cicso VXLAN Flood-and-Learn Spine-Leaf 网络

VXLAN 是网络虚拟化 overlay 技术之一,有一些自己的优势。它是一个工业标准( industry-standard)协议,使用 underlay IP 网络。它将 L2 网络进行扩展,在L3 基础设施之上构建出一个 L2 overlay 逻辑网络。它将以太帧封装到 UDP IP 包里面,通 过 underlay 网络以正常的 IP 路由和转发机制发送到对端 VTEP(VXLAN tunnel endpoint )。

Cisco 从 2014 年开始,陆续在多个 Nexus 系列(例如 Nexus 5600、7000、9000 系列)交 换机上支持 VXLAN flood-and-learn spine-and-leaf 技术。本节介绍这些硬件交换机 的 Cisco VXLAN flood-and-learn 特性。

5.1 封装格式和标准兼容

Cisco VXLAN flood-and-learn 技术兼容 IETF VXLAN 标准(RFC 7348),后者定义了无控 制平面的基于组播的泛洪-学习 VXLAN(multicast-based flood-and-learn VXLAN without a control plane)。原始的 L2 帧封装一个 VXLAN 头,然后放到 UDP IP 包通过 IP 网络 进行传输。

5.1.1 Underlay 网络

VXLAN 泛洪学习脊叶网络的底层网络使用第 3 层 IP。底层 IP 组播用于缩小参与 VXLAN 网段的主机集的泛洪范围。每个 VXLAN 网段都有一个 VXLAN 网络标识符(VNID),VNID 被映射到传输 IP 网络中的 IP 组播组。每个 VTEP 设备都独立配置了该组播组,并参与 PIM 路由。该组的组播分布树是根据参与的 VTEP的位置通过传输网络建立的。在底层网络中启用组播功能的要求给一些企业带来了挑战,因为他们不想在数据中心或广域网中启用组播功能。
Cisco Nexus 9000 系列引入了入口复制功能,因此底层网络不存在组播。VXLAN VTEP 使用网络中其他VTEP 的 IP 地址列表来发送广播和未知单播流量。这些 IP 地址通过静态入口复制配置在VTEP 之间交换。
在这里插入图片描述
图 10.VXLAN IP 下层网络

5.1.2 Overlay 网络

VXLAN 泛在学习(flood-and-learn)脊叶网络没有覆盖网络的控制平面。通过使用 VTEP 隧道机制传输第 2层数据包,在第 3 层 IP 底层网络之上创建了第 2 层覆盖网络。叠加网络使用泛洪学习语义。


图 11 VXLAN overlay 网络

5.2 广播和未知单播流量

使用底层IP PIM 或 ingress replication 发送广播和未知的单播(unknown unicast)流量。注意入向复制只有 Cisco Nexus 9000 系列交换机才支持。

5.3 主机检测和可达性

依赖初始的数据平面泛洪,每个 VXLAN segment 的 VTEP 能发现其他主机,学习远端主机 的 MAC 和 MAC-to-VTEP 映射。MAC-to-VTEP 映射完成后,VTEP 接下来就通过单播转发 VXLAN 流量。

5.4 组播流量

通过底层 IP PIM 或入向复制可以支持 overlay 租户的 L2 组播。L3 组播流量通过 L3 基于 PIM 的组播路由(L3 PIM-based multicast routing)实现。

在 VXLAN 泛洪和学习脊叶网络中,使用底层 IP PIM 或入口复制功能可支持覆盖租户第 2 层组播流量。请注意,仅 Cisco Nexus 9000 系列交换机支持入口复制。
第 3 层 IP 组播流量由基于第 3 层 PIM 的组播路由转发。

组播组的扩展需要精心设计。理想情况下,应将一个 VXLAN 网段映射到一个 IP 组播组,以提供最佳的组播转发。您也可以让多个 VXLAN 网段共享核心网络中的一个 IP 组播组;但是,组播组的过载会导致次优的组播转发。

5.5 L3 路由功能

在一个传统的 VLAN 环境中,很多情况下需要 VXLAN 网段 和 VLAN 网段 之间的路由。 典型的 VXLAN flood-and-learn spine-and-leaf 网络设计中,leaf ToR (top-of-rack) 交换机会作为 VTEP 设备,在机柜(rack)之间扩展 L2 网段。

VXLAN 和 VLAN 之间的 二层流量转发时,VTEP 作为 L2 VXLAN 网关;三层流量路 由时,还需要开启某些 VTEP 的 L3 VXLAN 网关功能。常见的设计有:内部和外部路由在 spine 层,或内部和外部路由在 leaf 层。这两种设计都是集中式路由(centralized routing),即三层的内部和外部路由功能都集中在特定的交换机上做。

5.5.1 在 Spine 层做内部和外部路由选择

如图 12 中脊柱层的内部和外部路由设计所示,叶子 ToR VTEP 交换机是一个第 2 层 VXLAN 网关,用于在底层第 3 层 IP 网络上传输第 2 层网段。脊柱交换机有两个功能。它是底层第 3 层 IP 网络的一部分,负责传输 VXLAN 封装数据包。它还执行内部 VXLAN 间路由选择和外部路由选择。内部和外部路由流量需要从叶 VTEP 经过一个底层跳转到脊柱交换机才能进行路由。
请注意,通过热备路由器协议(HSRP)和 vPC 配置,VXLAN 间主动-主动网关的最大数量为两个。此外,脊柱第 3 层 VXLAN 网关会学习主机 MAC 地址,因此需要考虑 MAC 地址规模,以避免超出硬件的可扩展性限制。


图 12 在 spine 上做内部和外部路由

5.5.2 在 Border Leaf 做内部和外部路由选择

如图 13 所示,在边界叶片的内部和外部路由设计中,叶片 ToR VTEP 交换机是一个第 2 层 VXLAN 网关,用于在底层第 3 层 IP 网络上传输第 2 层网段。骨干交换机只是底层第 3 层 IP 网络的一部分,用于传输 VXLAN 封装数据包。它不会学习覆盖主机的 MAC 地址。边界叶路由器启用了第 3 层 VXLAN 网关,执行内部 VXLAN 间路由和外部路由。内部和外部路由流量需要经过两次底层跳转,从叶 VTEP 到脊交换机,再到边界叶交换机,才能到达外部网络。
在 HSRP 和 vPC 配置下,VXLAN 间主动-主动网关的最大数量为两个。此外,边界叶子第 3 层 VXLAN 网关会学习主机 MAC 地址,因此需要考虑 MAC 地址规模,以避免超出硬件的可扩展性限制。

图 13 在 Border Leaf 上做内部和外部路由

5.6 多租户

VXLAN 泛在学习脊叶网络支持第 2 层多租户(图 14)。VXLAN 使用 24 位网段 ID 或 VNID,这使得同一管理域中最多可共存 1,600 万个 VXLAN 网段。为支持多租户,同一 VLAN 可在不同的 VTEP 交换机上重复使用,VTEP 上接收到的 IEEE 802.1Q 标记帧会映射到特定的 VNI。VNI 用于在第 2 层为每个租户提供隔离。VLAN 对叶 VTEP 交换机具有局部意义,而 VNI 则对整个 VXLAN 网络具有全局意义。
在这里插入图片描述
图 14.使用 VNI 的第 2 层多重租用示例
VXLAN flood-and-learn spine-and-leaf 网络还支持使用 VRF-lite 的第 3 层多租户(图 15)。VXLAN 泛洪学习网络是一个第 2 层覆盖网络,第 3 层 SVI 位于第 2 层覆盖网络之上。使用 VRF-lite,VXLAN 上支持的 VLAN 数量可从 1 个到 10 个不等。泛洪与学习网络为 4096。
在这里插入图片描述
图 15.使用 VRF-lite 的第 3 层多重租用示例

5.7 总结

VXLAN 泛在学习脊叶网络符合 IETF VXLAN 标准(RFC 7348)。它在第 3 层 IP 底层网络上传输第 2 层帧。不过,它仍是一种基于泛洪和学习的第 2 层技术。随着广播域中主机数量的增加,它将面临与FabricPath 脊叶网络相同的泛洪挑战。第 3 层功能位于第 2 层网络之上。常见的第 3 层设计提供集中路由:即第 3 层路由功能集中在特定交换机(脊柱交换机或边界叶子交换机)上。VXLAN 泛洪-学习脊叶网络最多可支持两个主动-主动网关,使用 vPC 进行内部 VXLAN 路由。
在这里插入图片描述
表 2 Cisco VXLAN flood-and-learn 网络特性

6 Cicso VXLAN MP-BGP EVPN Spine-Leaf 网络

在 RFC 7348 中定义的 VXLAN 泛洪学习模式中,终端主机信息学习和 VTEP 发现都是基于数据平面的,没有在 VTEP 之间分发终端主机可达性信息的控制协议。为了克服泛洪-学习 VXLAN 的局限性,Cisco VXLAN MP- BGP EVPN 支-叶架构使用多协议边界网关协议以太网虚拟专用网(或 MP-BGP EVPN)作为 VXLAN 的控制平面。这种技术提供了控制平面和数据平面的分离,并为 VXLAN 叠加网络中的第 2 层和第 3层转发提供了统一的控制平面。本节将介绍 Cisco Nexus 硬件交换机(如 Cisco Nexus 5600 平台交换机和 Cisco Nexus 7000 和 9000 系列交换机)上的 VXLAN MP-BGP EVPN。

6.1 封装格式和标准兼容

VXLAN MP-BGP EVPN 椎-叶架构使用 VXLAN 封装。原始的第 2 层帧被封装在 VXLAN 标头中,后放入UDP-IP 数据包并在 IP 网络中传输。这种设计符合 IETF RFC 7348 和 draft-ietf-bess-evpn-overlay 标准。

6.1.1 Underlay 网络

VXLAN MP-BGP EVPN 支-叶架构使用第 3 层 IP 作为底层网络。

6.1.2 Overlay 网络

VXLAN MP-BGP EVPN 脊叶架构将 MP-BGP EVPN 用于 VXLAN overlay网络的控制平面。

6.2 广播和未知单播流量

底层 IP PIM 或入口复制功能用于发送广播和未知单播流量。
在底层网络中启用 IP 组播后,每个 VXLAN 网段或 VNID 都会映射到传输 IP 网络中的一个 IP 组播组。每个 VTEP 设备都与该组播组独立配置,并参与 PIM 路由。该组的组播分布树是根据参与的 VTEP 的位置通过传输网络建立的。
有了入口复制功能,底层网络就不需要组播了。VXLAN VTEP 使用网络中其他 VTEPS 的 IP 地址列表来发送广播和未知单播流量。这些 IP 地址通过 BGP EVPN 控制平面或静态配置在 VTEP 之间交换。
请注意,只有 Cisco Nexus 9000 系列交换机支持入口复制功能。

6.3 主机检测和可达性

MP-BGP EVPN 控制平面提供内置的路由和转发(功能),它会对 VXLAN overlay 网络内的 end-host 的 L2/L3 可达性信息进行分发(distribution)。每个 VTEP 从与它相连的主机中自动学习 MAC 地址(通过传统的 MAC 地址学习)和 IP 地址信息(基于 ARP snooping),然后通过控制平面进行分发,因此远端主机的信息是 控制平面同步过来的。这种方式避免了通过网络泛洪学习远端主机信息的问题,为 end-host 可达性信息的分发提供了更好的控制。

6.4 组播流量

VXLAN MP-BGP EVPN 使用底层 IP 组播或入口复制功能支持覆盖租户第 2 层组播流量。请注意,仅 Cisco Nexus 9000 系列交换机支持入口复制。
重叠租户第 3 层组播流量有两种支持方式:(1) Cisco Nexus 7000 系列交换机(包括 Cisco Nexus 7700 平台交换机和 Cisco Nexus 9000 系列交换机)在外部路由器上基于第 3 层 PIM 的组播路由。(2) 用于 Cisco Nexus 9000 Cloud Scale 系列交换机的租户路由组播(TRM)。TRM 基于 IETF RFC 6513 和 6514 中描述的基于标准的下一代控制平面 (ngMVPN)。它以高效、弹性的方式提供租户第 3 层组播流量。请注意,TRM仅支持较新一代的 Nexus 9000 交换机,如基于 Cloud Scale ASIC 的交换机。有关 TRM 的功能支持和更多信息,请参阅本文档末尾列出的配置指南、发布说明和参考文档。
正如前面讨论 Cisco VXLAN 泛洪-学习组播流量的章节所述,您需要仔细设计组播组的扩展。

6.5 L3 路由功能

L3 路由需要解决两个问题:

  1. VXLAN 网络内部的路由:使用分布式任播网关(distributed anycast gateways)解决
  2. VXLAN 网络和外部网络(包括园区网、WAN 和互联网)的路由:在几个特定交换机上实现
6.5.1 分布式任播网关:解决 VXLAN 网络内部路由

在 MP-BGP EVPN 网络中,一个 VNI 内的任意一个 VTEP 都可以作为它所在子网的分布式 任播网关,对它们配置相同的虚拟网关 IP 和虚拟网关 MAC 即可,如图 16 所示。
EVPN 的这种任播网关功能,使得 VNI 内的主机可以将本地 VTEP 作为其网关,将跨网段的 流量发送到 VTEP 设备。这使得 VXLAN 网络中从主机出来的北向流量可以达到最优转发。 分布式任播网关还给 overlay 网络带来了透明主机漂移(transparent host mobility)的 好处。因为一个 VNI 的所有 VTEP 设备上的网关 IP 和 MAC 地址都是相同的,当一个主机 从一个 VTEP 移动到另一个 VTEP 后,它无需发送 ARP 请求来重新学习网关的 MAC 地址。


图 16 内部路由的分布式任播网关

6.5.2 在 Border Leaf 做外部路由

图 17 显示了使用一对连接到外部路由设备的边界叶子交换机的典型设计。边界叶子交换机在内部与 VXLAN 结构中的其他 VTEP 一起运行 MP-BGP EVPN,并与它们交换 EVPN 路由。同时,它在租户 VRF 实例中与外部路由设备一起运行普通 IPv4 或 IPv6 单播路由。路由协议可以是常规的 eBGP 或任意选择的内部网关协议 (IGP)。边界叶子交换机学习外部路由,并将其作为 EVPN 路由向 EVPN 域公布,以便其他 VTEP 叶子节点也能了解外部路由,从而发送出站流量。
也可将边界叶子交换机配置为将在第 2 层 VPN EVPN 地址族中学习到的 EVPN 路由发送到 IPv4 或 IPv6 单播地址族,并将其公布给外部路由设备。在这种设计下,租户流量需要经过两次底层跳转(VTEP 到脊柱到边界叶子)才能到达外部网络。但是,脊柱交换机只需运行 BGP-EVPN 控制平面和 IP 路由,而无需支持 VXLAN VTEP 功能。

在这里插入图片描述
图 17 Border Leaf 做外部路由的设计

6.5.3 在 Border Spine 做外部路由

图 18 是典型的通过一对 border spine 交换机连接到外部路由设备的设计。这种设计中, spine 需要支持 VXLAN 路由。spine 在 VXLAN 网络侧运行 MP-BGP EVPN,和 VTEP 交换 EVPN 路由信息。同时,它在租户 VRF 实例中运行普通的 IPv4 或 IPv6 单播路由协议和外部路由设备交换路由信息。路由协 议可以是常规 eBGP,或任何内部网关协议(IGP)协议。spine 将学习来的外部路由 以 EVPN 路由的形式通告到 EVPN 域,因此 VTEP 就能学习到外部路由,然后就可以发送出 VXLAN 网络的流量。

也可以配置 spine 将学习到的 L2 VPN EVPN 地址族到 IPv4 或 IPv6 单播地址族的 路由,通告到外部路由。在这种设计中,租户流量只需经过 underlay 的一跳(VTEP 到 spine)就可以到达外部网络。然而,这种情况下 spine 需要运行 BGP-EVPN 控制平面和 IP 路由,以及支持 VXLAN VTEP 功能。

图 18 Border Spine 做外部路由的设计

6.6 多租户

VXLAN MP-BGP EVPN 脊叶架构将 MP-BGP EVPN 用于控制平面。作为 MP-BGP 的扩展,MP-BGP EVPN 利用 VRF 结构继承了 VPN 对多租户的支持。在 MP-BGP EVPN 中,多个租户可以共存并共享一个共同的 IP 传输网络,同时在 VXLAN 叠加网络中拥有各自独立的 VPN(图 19)。
在 VXLAN MP-BGP EVPN 脊叶网络中,VNI 定义了第 2 层域,并通过不允许第 2 层流量穿越 VNI 边界来执行第 2 层分段。同样,VXLAN 租户之间的第 3 层分段也是通过应用第 3 层 VRF 技术和使用映射到每个

VRF 实例的单独第 3 层 VNI 来执行租户之间的路由隔离来实现的。每个租户都有自己的 VRF 路由实例。特定租户 VNI 的 IP 子网位于同一第 3 层 VRF 实例中,该实例将第 3 层路由域与其他租户隔离。

图 19 Cisco VXLAN MP-BGP EVPN Spine-and-Leaf 网络的多租户

6.7 总结

VXLAN MP-BGP EVPN 脊叶架构将 MP-BGP EVPN 用于 VXLAN 的控制平面。这种设计符合 IETF VXLAN标准 RFC 7348 和 draft-ietf-bess-evpn-overlay。它为 VXLAN 叠加网络中的第 2 层和第 3 层转发提供了控制平面和数据平面分离以及统一的控制平面。控制平面学习终端主机第 2 层和第 3 层可达性信息(MAC 和 IP地址),并通过 EVPN 地址族分发这些信息,从而在 VXLAN 重叠网络中提供集成桥接和路由。它通过基于控制平面的主机 MAC 和 IP 地址路由分配以及本地 VTEP 上的 ARP 抑制来减少网络泛洪。第 3 层内部路由流量由每个 ToR 交换机上的分布式任播网关以扩展方式直接路由。

表 3 Cisco VXLAN MP BGP EVPN 网络特性

7 Cicso MSDC Layer 3 Spine-Leaf 网络

规模可扩展数据中心(MSDC)是拥有数千台物理服务器(有时是数十万台)的大型数据中心,其规模和计算能力的扩展对现有基础设施的影响很小。这种规模的环境对网络有一系列独特的要求,重点是应用性能、网络的简单性和稳定性、可视性、易于故障排除和易于生命周期管理等。MSDC 的例子包括托管数千个租户的大型云服务提供商,以及托管大型分布式应用的门户网站和电子商务提供商。
思科的 MSDC 拓扑设计采用第 3 层脊叶架构。叶子层负责在网络结构中公布服务器子网。脊柱设备负责学习基础设施路由和终端主机子网路由。在大多数情况下,脊柱交换机不用于直接与外部世界或其他 MSDC 网络连接,但它会将此类流量转发给作为边界叶交换机的专用叶交换机。边界叶子交换机可注入默认路由,以吸引指向外部目的地的流量。根据需要支持的服务器数量,MSDC 设计有多种不同类型:两层脊叶拓扑、三层脊叶拓扑、超大规模结构平面 Clos 设计。有关使用 Cisco Nexus 9000 和 3000 交换机的 MSDC 设计的更多详情,请参阅《思科大规模可扩展数据中心网络 Fabric 白皮书》。
在路由设计方面,思科 MSDC 控制平面使用动态第 3 层协议(如 eBGP)来构建路由表,以便最有效地将数据包从源路由到脊柱节点。大多数客户使用 eBGP,因为它具有可扩展性和稳定性。
图 20 显示了一个带有 eBGP 控制平面(AS = 自治系统)的第 3 层 MSDC 脊叶网络示例。
在这里插入图片描述
图 20.带有 BGP 控制平面的 MSDC 第 3 层脊叶网络示例
第 3 层脊叶设计有意不支持跨 ToR 交换机的第 2 层 VLAN,因为它是一个第 3 层结构。每台主机都与一个主机子网相关联,并通过第 3 层路由与其他主机通信。不支持主机移动和多租户。
由于 Fabric 网络非常庞大,MSDC 客户通常采用基于软件的方法,为网络引入更多自动化和模块化功能。自动化工具可以处理不同的 Fabric 拓扑和外形尺寸,从而创建一个模块化解决方案,以适应不同规模的数据中心。MSDC 高度自动化,可在设备上部署配置,发现新设备在 Fabric 中的作用,监控 Fabric 并排除故障等。许多 MSDC 客户使用 Python、Puppet 和 Chef 以及其他 DevOps 工具和思科技术(如 Power-On Auto Provisioning (POAP))编写脚本来进行网络更改。

表 4 总结了第 3 层 MSDC 脊叶网络的特点。在这里插入图片描述

8 数据中心结构管理和自动化

设数据中心没有单一的方法。同样,管理数据中心结构也没有单一的方法。思科、第三方和开源社区提供了许多不同的工具,可用于监控、管理、自动化数据中心结构并排除故障。

思科数据中心网络管理员

Cisco Data Center Network Manager (DCNM) 是 Cisco® Unified Fabric 的管理系统。通过它,您可以对数据中心网络基础架构进行配置、监控和故障排除。Cisco DCNM 可以四种模式安装:
●经典局域网模式:管理在传统设计(如 vPC 设计、FabricPath 设计等)中部署的 Cisco Nexus 数据中心基础架构。它提供实时健康状况摘要、警报、可见性信息等。
●媒体控制器模式:为媒体解决方案管理思科 IP Fabric 网络,帮助从 SDI 路由器过渡到基于 IP 的基础架构。它提供工作流程自动化、流量策略管理和第三方演播室设备集成等功能(该模式与本白皮书无关)。
●存储区域网络 (SAN) 控制器模式:通过图形控制所有 SAN 管理功能,管理用于存储网络部署的Cisco MDS 系列交换机。它提供丰富的遥测信息和其他高级分析信息等(该模式与本白皮书无关)。
●LAN Fabric 模式:提供 Fabric Builder,用于自动化 VXLAN EVPN Fabric 底层部署、叠加部署、端到端流量跟踪、报警和故障排除、配置合规性和设备生命周期管理等。
从 Cisco DCNM 11.2 版开始支持 Cisco Network Insights 应用程序;这些应用程序包括可添加到数据中心网络管理器(DCNM) 的监控实用程序。支持两种 Cisco Network Insights 应用程序:
●思科网络洞察顾问(NIA):监控数据中心网络,找出可以解决的问题,以保持可用性并减少意外中断。NIA 不断扫描客户的网络,并提供积极主动的建议,重点是保持可用性,并提醒客户注意可能影响正常运行时间的潜在问题。
●Cisco Network Insights - Resources (NIR):提供了一种通过数据收集来收集信息的方法,以便全面了解整个数据中心网络管理器 (DCNM) 中的可用资源及其活动进程和配置。

9 总结

本文档介绍了思科公司的几种脊叶架构设计,包括在编写本文档时每种架构最重要的技术组件和设计考虑因素。
Cisco FabricPath 旋叶网络是思科专有的网络。它简单、灵活、稳定;具有良好的可扩展性和快速收敛特性

;支持第 2 层的多条并行路径。但 FabricPath 网络是一种基于泛洪和学习的第 2 层技术。它的控制平面协议是 FabricPath IS-IS,旨在确定 FabricPath 交换机 ID 的可达性信息。为了解终端主机可达性信息, FabricPath 交换机依赖于初始数据平面流量泛洪。随着广播域中主机数量的增加,泛洪数据包的负面影响会越来越明显。第 3 层路由功能位于第 2 层网络之上。常见的第 3 层设计使用集中路由:即第 3 层路由功能集中在特定的交换机(骨干交换机或边界叶子交换机)上。FabricPath 网络最多支持四个任播网关,用于内部 VLAN 路由。
Cisco VXLAN 泛在学习脊叶网络符合 IETF VXLAN 标准(RFC 7348)。它通过第 3 层 IP 底层网络传输第

2 层帧。但它仍是一种基于泛洪和学习的第 2 层技术。随着广播域中主机数量的增加,它将面临与

FabricPath 脊叶网络相同的泛洪挑战。第 3 层路由功能位于第 2 层网络之上。常见的第 3 层设计使用集中路

由:即第 3 层路由功能集中在特定交换机(脊柱交换机或边界叶子交换机)上。VXLAN 泛洪-学习脊叶网络最多可支持两个主动-主动网关,使用 vPC 进行内部 VXLAN 路由。
Cisco VXLAN MP-BGP EVPN spine-and-leaf 架构将 MP-BGP EVPN 用于 VXLAN 的控制平面。它符合 IETF VXLAN 标准 RFC 7348 和 RFC8365(以前的 draft-ietf-bess-evpn- overlay)。它为 VXLAN 叠加网络中的第 2 层和第 3 层转发提供了控制平面和数据平面分离以及统一的控制平面。第 3 层内部路由流量由每个 ToR 交换机上的分布式任播网关以扩展方式直接路由。VXLAN MP-BGP EVPN 支-叶架构具有以下主要优势:
●MP-BGP EVPN 协议以行业标准为基础,允许多厂商互操作。

●它能够在控制面学习终端主机第 2 层和第 3 层可达性信息,使企业能够构建更强大、可扩展的

VXLAN 叠加网络。

●它使用已有十年历史的 MP-BGP VPN 技术来支持可扩展的多租户 VXLAN 叠加网络。

●EVPN 地址族可携带第 2 层和第 3 层可达性信息,从而在 VXLAN 重叠网络中提供集成桥接和路由

●它通过在本地 VTEP 上基于协议的主机 MAC 地址 IP 地址路由分配和 ARP 抑制来减少网络泛洪。

●它为东西向和南北向流量提供最佳转发,并通过每个 ToR 交换机上的分布式任播功能支持工作负载的移动性。
●它提供 VTEP 对等发现和验证功能,可降低 VXLAN 叠加网络中恶意 VTEP 带来的风险。

●它提供了在第 2 层建立主动-主动多重会话的机制。

●其底层和上层管理工具提供了许多网络管理功能,可简化工作负载可见性、优化故障排除、自动配置 Fabric 组件、自动配置上层租户网络等。
Cisco VXLAN MP-BGP EVPN spine-and-leaf 架构是思科的最新创新技术之一。它旨在简化、优化和自动化现代多租户数据中心结构环境。
思科脊叶式第 2 层和第 3 层 Fabric 比较
表 5 比较了本文档中讨论的四种 Cisco 脊叶架构:FabricPath、VXLAN flood-and-learn、VXLAN MP-BGP EVPN 和 MSDC 第 3 层网络。请仔细阅读本表和本文档的每个部分,并阅读参考文档以获取更多信息,帮助您选择最适合您的数据中心环境的技术。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10 更多信息

  • 数据中心覆盖技术:https://www.cisco.com/c/en/us/products/collateral/switches/nexus-9000-series-switches/white-paper-c11-730116.html 带有 MP-BGP EVPN 控制平面的 VXLAN
  • 网络:https://www.cisco.com/c/en/us/products/collateral/switches/nexus-9000-series-switches/guide-c07-734107.html
  • 思科大规模可扩展数据中心白皮书:https://www.cisco.com/c/en/us/products/collateral/switches/nexus-9000-series-switches/white-paper-c11-743245.html
  • XLAN EVPN TRM 博客https://blogs.cisco.com/datacenter/vxlan-innovations-on-the-nexus-os-part-1-of-2
  • 带 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南:https://www.cisco.com/c/en/us/products/collateral/switches/nexus-9000-series-switches/guide-c07-734107.html
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐