46
采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南

采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

  • Upload
    others

  • View
    31

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

采用 MP-BGP EVPN 控制平面的

VXLAN 网络设计指南

Page 2: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

2

采用 MP-BGP EVPN 控制平面的

VXLAN 网络

1 简介 .............................................................................................................................. 3

2 MP-BGP EVPN 控制平面概述 ...................................................................................... 3

2.1 MP-BGP EVPN 控制平面的软件和硬件支持 ........................................................ 4

2.2 MP-BGP EVPN 中的多租户 ................................................................................. 5

2.3 MP-BGP EVPN NLRI 和 L2VPN EVPN 地址族 .................................................... 5

2.4 通过 MP-BGP EVPN 控制平面提供集成路由和桥接功能 ...................................... 6

2.4.1 本地主机学习 ............................................................................................ 7

2.4.2 EVPN 路由广播和远程主机学习 ................................................................ 7

2.4.3 对称 IRB 与不对称 IRB .............................................................................. 7

2.4.4 用于桥接域和 IP VRF 的 VNI ................................................................... 10

2.5 MP-BGP EVPN 中的 VXLAN VTEP 对等设备发现和身份验证 ........................... 11

2.6 MP-BGP EVPN 中的分布式任意播网关 .............................................................. 13

2.7 MP-BGP EVPN 中的 ARP 抑制 .......................................................................... 14

3 MP-BGP EVPN VXLAN VTEP 配置 ........................................................................... 15

4 MP-BGP EVPN VXLAN 中的 vPC VTEP ................................................................... 22

4.1 EVPN vPC VTEP 概述 ....................................................................................... 22

4.2 EVPN vPC VTEP 配置 ....................................................................................... 22

4.3 vPC VTEP MP-BGP 状态和 EVPN 路由更新 ..................................................... 25

5 MP-BGP EVPN VXLAN 架构设计 .............................................................................. 27

5.1 采用 MP-iBGP EVPN 的 VXLAN 架构 ................................................................ 27

5.1.1 网脊层上的 MP-iBGP 路由反射器............................................................ 27

5.1.2 叶层上的 MP-iBGP 路由反射器 ............................................................... 30

5.1.3 带专用路由反射器的 MP-iBGP ................................................................ 30

5.2 采用 MP-eBGP EVPN 的 VXLAN 架构............................................................... 31

6 MP-BGP EVPN VXLAN 外部路由 .............................................................................. 34

7 通过 MP-BGP EVPN VXLAN 进行数据中心互联 ........................................................ 44

8 结论 ............................................................................................................................ 45

9 参考资料 ..................................................................................................................... 45

Page 3: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

3

1 简介

虚拟可扩展局域网(VXLAN)是一项网络虚拟化覆盖技术。通过在 IP-UDP 隧穿封装中使用 MAC,它可在

共享第 3 层底层基础设施网络上,提供第 2 层扩展。在覆盖网络中获得第 2 层扩展的目的是,消除物理服务

器堆叠现象,或突破地理位置界线,并且在数据中心内部或数据中心间,灵活地部署工作负载。

最初的 IETF VXLAN 标准(RFC7348)定义了一个基于组播的洪泛和学习 VXLAN,无控制平面。它依靠数

据驱动的洪泛和学习行为,来发现远程 VTEP 对等设备和学习远端主机。覆盖广播,即未知单播和组播

(BUM)流量被封装到组播 VXLAN 分组中,通过底层组播转发,传送到远程 VTEP 交换机。这种部署中,

洪泛会给解决方案可扩展性带来挑战。此外,该解决方案的另一问题是,需要在底层网络中启用组播功能,

而部分机构不希望在数据中心和/或广域网中启用组播。

为突破 RFC7348 中基于组播的 VXLAN 的限制,可使用多协议 BGP 以太网 VPN(MP-BGP EVPN),作为

VXLAN 的控制平面。IETF 已将 BGP EVPN 定义为 VXLAN 覆盖网络的标准控制平面。MP-BGP EVPN 控制

平面提供基于协议的 VTEP 对等设备发现和终端主机可达性信息分发功能,支持可扩展性更高的 VXLAN 覆

盖网络设计,适用于专用和公共云。MP-BGP EVPN 控制平面提供一系列功能,消除或减少了覆盖网络中的

洪泛,并支持东西向和南北向流量的最佳转发。本白皮书重点探讨 MP-BGP EVPN 功能、配置以及采用了

MP-BGP EVPN 的典型 VXLAN 覆盖网络设计。

本白皮书不包括 VXLAN 基本要素、采用基于组播的洪泛和学习模式的 VXLAN 或相关网络设计选项等内容。

本白皮书还假定读者已具备 BGP、MP-BGP 和 BGP/MPLS IP VPN 相关知识。如需了解更多信息,请参考

以下 IETF RFC:

RFC4271 – 边界网关协议 4(BGP-4)

https://tools.ietf.org/html/rfc4271

RFC4760 -- BGP-4 多协议扩展

https://tools.ietf.org/html/rfc4760

RFC4364 -- BGP/MPLS IP 虚拟专用网(VPN)

https://tools.ietf.org/html/rfc4364#page-15

2 MP-BGP EVPN 控制平面概述

MP-BGP(多协议 BGP)EVPN(以太网虚拟专用网)是基于业界标准的 VXLAN 控制协议。在 EVPN 面世

之前,VXLAN 覆盖网络采用洪泛和学习模式。在此模式中,终端主机信息学习和 VTEP 发现都是由数据平

面驱动的。没有用于在 VTEP 间分发终端主机可达性信息的控制协议。MP-BGP EVPN 的出现改变了这一局

面。它为位于远程 VTEP 之后的终端主机提供了控制平面学习功能。它隔离了控制平面和数据平面,并为

VXLAN 覆盖网络中的第 2 层和第 3 层转发,提供了统一控制平面。

Page 4: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

4

MP-BGP EVPN 控制平面具备以下关键优势:

它是基于业界标准的控制协议,支持多厂商互操作性。

它使控制平面能够学习终端主机的第 2 层和第 3 层可达性信息,从而构建更为强大、可扩展性更高的

VXLAN 覆盖网络。

它利用投放市场已十年之久的 MP-BGP VPN 技术,支持可扩展多租户 VXLAN 覆盖网络。

EVPN 地址族携带第 2 层和第 3 层可达性信息。藉此,在 VXLAN 覆盖网络中提供了集成桥接和路由功能。

它通过协议驱动的主机 MAC/IP 路由分发和本地 VTEP 上的 ARP 抑制功能,将网络洪泛减至最少。

它通过分布式任意播功能,为东西向和南北向流量提供了最佳转发。

它提供 VTEP 对等设备发现和身份验证功能,降低了 VXLAN 覆盖网络出现恶意 VTEP 的风险。

它提供了在第 2 层建立主/主多寻址的机制。

2.1 MP-BGP EVPN 控制平面的软件和硬件支持

根据设备在 MP-BGP EVPN VXLAN 网络中扮演的角色不同,在采用 MP-BGP EVPN 控制平面的 VXLAN 网

络中,它可能只需要支持控制平面功能,也可能需要同时支持控制平面和数据平面功能。

运行 MP-BGP EVPN 的 IP 传输设备:

这些设备在底层网络提供 IP 路由功能。通过运行 MP-BGP EVPN 协议,它们成为 VXLAN 控制平面的一部

分,在其 MP-BGP EVPN 对等设备间分发 MP-BGP EVPN 路由。它们可以是一个 MP-iBGP EVPN 对等设

备或路由反射器,或是一个 MP-eBGP EVPN 对等设备。它们的操作系统软件需要支持 MP-BGP EVPN,且

能够了解 MP-BGP EVPN 更新,并使用标准定义结构,将更新分发给其它 MP-BGP EVPN 对等设备。在数

据转发方面,它们只根据 VXLAN 封装分组的外部 IP 地址,执行 IP 路由。它们无需支持 VXLAN 数据封装和

封装解除功能。

运行 MP-BGP EVPN 的 VXLAN VTEP:

运行 MP-BGP EVPN 的 VXLAN VTEP 需要既支持控制平面功能,又支持数据平面功能。在控制平面中,它

们启动 MP-BGP EVPN 路由,来广播其本地主机。它们接收来自对等设备的 MP-BGP EVPN 更新,并在转

发表中安装 EVPN 路由。而数据转发功能方面,它们在 VXLAN 中封装用户流量,并将其通过 IP 底层网络发

送。 从相反方向,它们接收到来自其它 VTEP 的 VXLAN 封装流量,解除封装,并用本地以太网封装将流量

发送到主机。

根据不同网络角色,须选择适合的交换机平台。对于 IP 传输设备,软件需支持 MP-EVPN 控制平面,但硬件

无需支持 VXLAN 数据平面功能。对于 VXLAN VTEP,交换机需既支持控制平面功能,又支持数据平面功能。

成为,根据交换机在网络中的角色不同,它可能需要利用其它技术,执行更多互联互通功能,如 DCI 节点,

为运行 EVPN/VXLAN 的数据中心和采用 MPLS VPN 等广域网技术的数据中心,提供了连接。

VXLAN 间路由:

MP-BGP EVPN 控制平面通过在 VXLAN 覆盖网络上分发第 2 层和第 3 层终端主机可达性信息,提供集成路

由和桥接功能。如需在分属于不同子网的主机间通信,将需要 VXLAN 间路由。BGP EVPN 通过分发第 3 层

可达性信息(主机 IP 路由或 IP 前缀),支持此通信。在数据平面,VTEP 需能够执行 IP 路由查询,并根据

查询结果,进行 VXLAN 封装,我们将此称为 VXLAN 路由功能。并非所有硬件平台都能支持 VXLAN 路由,

因此它会影响硬件平台的选择 。

Cisco Nexus 系列交换机上的 MP-BGP EVPN VXLAN 支持

Nexus 7000 系列交换机等其它 Nexus 交换机平台的 NX-OS 操作系统版本提供该软件功能。

Page 5: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

5

本白皮书中的许多 MP-BGP EVPN 功能和设计讨论是与平台无关的

2.2 MP-BGP EVPN 中的多租户

作为现有 MP-BGP 协议的扩展,MP-BGP EVPN 通过运用虚拟路由和转发(VRF)概念,自然继承了对于

VPN(虚拟专用网)结构中多租户的支持。在 MP-BGP EVPN 中,多租户可共存并共享通用 IP 传输网络,

同时还在 VXLAN 覆盖网络中拥有自己的独立 VPN。

在 EVPN VXLAN 覆盖网络中, VXLAN VNI 定义了第 2 层域,并通过禁止第 2 层流量穿行 VXLAN VNI 边界,

来执行第 2 层分段。类似的,VXLAN 租户实现第 3 层分段的方式,是应用第 3 层虚拟路由和转发(VRF)

技术,并使用映射到每个 VRF 的独立 VXLAN VNI,在租户间进行路由隔离。每个租户都有自己的 VRF 路由

实例。VXLAN VNI 中特定租户的 IP 子网位于相同的第 3 层 VRF 中,划分第 3 层路由域,与其它租户隔离开

来。

与基于组播的洪泛学习 VXLAN 或其它任意不具备多租户概念的第 2 层扩展技术相比,MP-BGP EVPN

VXLAN 的内置多租户支持明显是一个巨大优势。这使 VXLAN 技术更加适用于部署了多租户模式的云网络。

2.3 MP-BGP EVPN NLRI 和 L2VPN EVPN 地址族

和其它任意网络路由控制协议一样,MP-BGP EVPN 的设计具备为网络分发网络层可达性信息(NLRI)的功

能。EVPN NLRI 的独特性在于,它同时包括位于 EVPN VXLAN 重叠网络上终端主机的第 2 层和第 3 层可达

性信息。也就是说,它能够广播 EVPN VXLAN 终端主机的 MAC 和 IP 地址。这构成了通过 VXLAN 支持集

成路由和桥接的基础。

因为 VXLAN 是一项第 2 层扩展技术,所以需要分发第 2 层 MAC 地址。与限制于网络特定位置、始终保持在

第 2 层/第 3 层界线内的传统 VLAN 不同,VXLAN VNI 是覆盖网络中的虚拟第 2 层网段,但从底层网络角度

来看,它可分布跨越多个非邻接站点,伸展到底层基础设施的第 2 层/第 3 层界线之外(如图 1 所示)。同一

VXLAN VNI(VXLAN 网络标识符)中终端主机间的流量需要在覆盖网络中桥接,意味着一个给定 VNI 中的

VXLAN VTEP 设备需要了解此 VNI 中终端主机的其它 MAC 地址。经由 BGP EVPN 分发 MAC 地址,能够

减少甚或消除 VXLAN 中的未知单播洪泛。

图 1 横跨底层 IP 网络的 VXLAN VNI

底层 IP 网络

第 3 层主机 IP 地址通过 MP-BGP EVPN 广播,以便 VXLAN 间流量能够经由最佳路径,路由到目的地终端

主机。对于需要路由到目的地终端主机的 VXLAN 间流量来说,基于主机的 IP 路由能够提供最优转发路径,

传输到目的地主机的确切位置。

VTEP

VXLANVNI5000

UnderlayIPNetwork

VTEP

VXLANVNI5000

VTEP

VXLANVNI5000

Page 6: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

6

MP-BGP EVPN 也可广播 VXLAN VNI 的 IP 子网前缀路由。当主机 IP 路由丢失,例如,VTEP 未能通过

MP-BGP 学习到 IP 路由时,可使用前缀路由,将流量路由到目的地主机。如果子网需被 VXLAN 网络外部所

知并可路由,VXLAN VTEP 也可将前缀路由广播到 VXLAN 网络外部。

EVPN NLRI 在 BGP 中,利用 BGP 多协议扩展传输,采用一个称为 L2VPN EVPN 地址族的新地址族。与基于

BGP/MPLS 的 IP VPN(RFC4364)中使用的 VPNv4 地址族非常类似,用于 EVPN 的 L2VPN EVPN 地址族

使用路由区分符(RD),来保持相同路由在不同 VRF 中的独特性,并使用路由目标来定义如何在它们之间共

享路由的策略。

RD,一个八位字节数,能够区分不同路由集(VRF)。它是预分配给每个路由的独特号码,以便当在多个不同

VRF 中使用相同路由时,考虑 RD 后,BGP 能将它们作为远程路由使用。当与其它 MP-BGP 对等设备交换

EVPN 路由时,一条路由经由 MP-BGP 携带一个 RD。

可向一个 VRF 应用路由目标(RT),来控制该 VRF 与其它 VRF 间的路由导入和导出。一条路由的 RT 属性

以 BGP 扩展团体的形式分发。因此,须启动 MP-BGP 通话设备,生成和/或处理扩展团体。

在 Cisco NX-OS 部署中,可自动生成 BGP RD 和 RT ,以简化配置。BGP 路由区分符能够自动从 VXLAN

VNI 和 VTEP 交换机的 BGP 路由器 ID 获得,而 BGP 路由目标则可自动生成为 BGP AS: VXLAN VNI。 另

外,也可以手动配置 BGP RD 和 RT。如果网络中所有的 MP-BGP EVPN VTEP 都是 Cisco Nexus 交换机平

台,则建议使用自动生成的 RD 和 RT 值。而如果与多个厂商的 VTEP 设备互操作,则建议手动配置它们,

以免因厂商部署差异而发生问题。对于需要 eBGP 的部署环境,则必须手动分配 BGP 路由目标。

2.4 通过 MP-BGP EVPN 控制平面提供集成路由和桥接功能

MP-BGP EVPN 控制平面分发位于 VXLAN 覆盖网络中终端主机的第 2 层和第 3 层可达性信息,从而提供集成

路由和桥接功能。每个 VTEP 都进行本地学习,获取本地相连主机的 MAC 和 IP 地址信息,并通过 MP-BGP

EVPN 控制平面分发。与远程 VTEP 相连的主机的远程学习则是通过 MP-BGP 控制平面完成的。它最大限度地

减少了终端主机学习的网络洪泛,并且更好地控制终端主机可达性信息分发。

图 2 为一个使用路由反射器的 MP-iBGP EVPN 网络中,终端主机 NLRI 学习和分发的示例。

图 2 MP-BGP EVPN 主机 NLRI 学习和分发

将安装主机信息传输到

RIB/FIB:

H-MAC-1→MAC 表

BGP 更新: 路由反射器 BGP 更新: 将安装主机信息传输到

RIB/FIB:

H-MAC-1→MAC 表

BGP 更新:

MAC Host IP VNI VTEP

H-MAC-1 H-IP-1 VNII-1 VTEP-1

VTEP-2

VTEP-1

VTEP-3

H-MAC-1

H-IP-1

VLAN-1 /VNI-1

BGP Update:

H-MAC-1

H-IP-1

VTEP-1

VNI-1

BGP Update:

H-MAC-1

H-IP-1

VTEP-1

VNI-1

BGP Update:

H-MAC-1

H-IP-1

VTEP-1

VNI-1

Install host info to RIB/FIB:

H-MAC-1 MAC table

H-IP-1 VRF IP host table

Route Reflector

Install host info to RIB/FIB:

H-MAC-1 MAC table

H-IP-1 VRF IP host table

Local learning of host info:

H-MAC-1 (MAC table)

H-IP-1 (VRF IP host table )

1

2

3

3

4 4

MAC Host IP VNI VTEP

H-MAC-1 H-IP-1 VNII-1 VTEP-1

Page 7: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

7

H-IP-1→VRF IP 主机表 H-IP-1→VRF IP 主机表

MAC 主机 IP VNI VTEP MAC 主机 IP VNI VTEP

主机信息的本地学习:

H-MAC-1(MAC 表)

H-IP-1(VRF IP 主机表)

2.1.1 本地主机学习

位于 MP-BGP EVPN 中的 VXLAN VTEP 通过本地学习,来学习本地相连终端主机的 MAC 地址和 IP 地址。

这可以利用标准以太网和 IP 学习流程,由本地数据平面驱动,如从输入的以太网帧进行源 MAC 学习,以及

当主机发送 GARP/RARP 分组或对 VTEP 上网关 IP 的 ARP 请求时,进行 IP 学习等。此外,也可通过使用

控制平面或经由 VTEP 和本地主机间的管理平面集成,来完成学习。

2.1.2 EVPN 路由广播和远程主机学习

学习了本地主机 MAC/IP 地址后,VXLAN VTEP 在 MP-BGP EVPN 控制平面中广播主机信息,以便可分发

到其它 VTEP。这使 EVPN VTEP 在 MP-BGP EVPN 控制平面中即能学习远程终端主机。

EVPN 路由通过 L2VPN EVPN 地址广播。BGP L2VPN EVPN 路由包括以下信息:

RD:路由区分符

MAC 地址长度:6 字节

MAC 地址:主机 MAC 地址

IP 地址长度:32 或 128

IP 地址:主机 IP 地址(IPv4 或 IPv6)

L2 VNI:终端主机所属的桥接域的 VNI

L3 VNI:与租户 VRF 路由实例相关联的 VNI

MP-BGP EVPN 使用 BGP 扩展团体来传输路由目标属性。当 EVPN VTEP 接收到一个 EVPN 路由,它将比

较所接收路由中的路由目标属性及其本地配置的路由目标导入策略,来确定应该导入还是忽略该路由。这充

分发挥了已存在十多年的 MP-BGP VPN 技术(RFC4364)的作用,并提供可扩展多租户,没有本地 VRF 功

能的节点不能导入相应路由。通过采用正规 BGP 结构,如 RT 约束路由分发(RFC 4684)等,可进一步优

化 VPN 扩展能力。

当一个 VTEP 交换机为本地学习的终端主机发出 MP-BGP EVPN 路由时,它使用自己的 VTEP 地址作为

BGP 下一跳。在网络路由分发过程中,此 BGP 下一跳信息保持不变,是十分重要的 ,这是因为当为覆盖网

络转发分组时,远程 VTEP 必须学习原始 VTEP 地址,作为 VXLAN 封装的下一跳。

底层网络应在通过底层网络向出口 VTEP 路由封装 VXLAN 分组的所有 VTEP 地址间,提供 IP 可达性。底层

网络中的网络设备只需要保持 VTEP 地址的路由信息。它们无需学习 EVPN 路由。这简化了底层网络的运行,

提高了它的稳定性和可扩展性。

2.1.3 对称 IRB与不对称 IRB

IETF EVPN 草案定义了两个集成路由和桥接(IRB)语义,即不对称 IRB 和对称 IRB。用于 Nexus 交换机平

台的 Cisco NX-OS 软件采用对称 IRB,因为它在可扩展性和简化第 2 层/第 3 层多租户支持方面具有优势。

不对称 IRB:

Page 8: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

8

使用对称 IRB 时,入口 VTEP 执行第 2 层桥接和第 3 层路由查询,而出口 VTEP 只执行第 2 层桥接查询功能。

如图 3 所示,若使用不对称 IRB,当一个分组在两个 VXLAN VNI 间传输时,入口 VTEP 将该分组从源 VNI

路由到目标 VNI。出口 VTEP 则将该分组桥接到目标 VNI 中的目标位置。

图 3 采用不对称 IRB 时的 VXLAN 路由

入口 VTEP 将分组从源

VNI 路由到目标 VNI。内

部报头中的 D-MAC 是目

标主机 MAC。

出口 VTEP 在目标 VNI 中

桥接分组。

主机 1 主机 2

不对称 IRB 要求入口 VTEP 配置源 VNI 和目标 VNI,用于第 2 层和第 3 层转发。实际上,这意味着每个

VTEP 都需要配置 VXLAN 网络中的所有 VNI,并需要学习所有与这些 VNI 相连的终端主机的 ARP 项和

MAC 地址(请参见图 4)。随着覆盖网络中终端主机密度的增长,这会导致可扩展性问题。

图 4 不对称 IRB 中的 VTEP VNI 成员

主机 1 主机 2 主机 3 每个 VTEP 需要位于所有 VNI 中。

每个 VTEP 需要保留所有 VNI 的 MAC 表,包括那些没有本地

主机的 VNI。

对称 IRB:

使用对称 IRB 时,入口和出口 VTEP 都执行第 2 层和第 3 层查询。对称 IRB 引入了一些新逻辑结构:

Host 1 H-MAC-1

H-IP-1 VNI-A

VTEP-4 GW-MAC

VTEP-3 GW-MAC

VTEP-2 GW-MAC

VTEP-1 GW-MAC

Host 2 H-MAC-2

H-IP-2 VNI-B

VNI A

VNI B

VNI B

VNI A

S-MAC:H-MAC-1D-MAC:GW-MAC

S-IP:H-IP-1D-IP:H-IP-2

Ingress VTEP

routes packets

from source VNI to

destination VNI. D-

MAC in the inner

header is the

destination host

MAC

1 S-MAC:GW-MACD-MAC:H-MAC-2

S-IP:H-IP-1D-IP:H-IP-2

S-IP:VTEP-1D-IP:VTEP-4

VNI:VNI-B

S-MAC:GW-MACD-MAC:H-MAC-2

S-IP:H-IP-1D-IP:H-IP-2

Egress VTEP

bridges packets in

the destination

VNI

2

Host 1 MAC1 IP 1 VLAN 100 VXLAN 5100

Host 2 MAC2 IP 2 VLAN 100 VXLAN 5100

SVI 100

Host 3 MAC3 IP 3 VLAN 200 VXLAN 5200

VTEP VTEP VTEP VTEP

SVI 200 SVI 200 SVI 100 SVI 200 SVI 100 SVI 200 SVI 100

Every VTEP needs to be in all VNIs

Every VTEP needs to maintain MAC tables for all VNIs, including those they

don’t have local hosts for.

Page 9: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

9

第 3 层 VNI:

每个租户 VRF 映射到网络中的一个独特第 3 层 VNI,网络中所有 VTEP 的此映射必须一致。所有 VXLAN 间

路由流量在 VXLAN 报头中,采用第 3 层 VNI 封装,并为接收方提供 VRF 上下文环境。接收方使用此 VNI 来

判断需转发内部 IP 分组的 VRF 上下文环境。该 VNI 还提供了在数据平面中执行第 3 层分段的基础。

VTEP 路由器 MAC:

每个 VTEP 都有一个独特系统 MAC 地址,供其它 VTEP 用来进行 VNI 间路由,在本白皮书中,该 MAC 地

址被称为路由器 MAC。路由器 MAC 地址用作 VXLAN 封装分组的内部目标 MAC 地址。

如图 5 所示,当一个分组从 VNI A 发送到 VNI B 时,入口 VTEP 将分组路由到第 3 层 VNI。它将内部目标

MAC 地址重写到出口 VTEP 的路由器 MAC 并在 VXLAN 报头中进行第 3 层 VNI 编码。一旦出口 VTEP 接收

到封装 VXLAN 分组,它将首先解封装,删除 VXLAN 报头,然后查看内部分组报头。因为内部分组报头中的

目标 MAC 地址是自己的 MAC 地址,它将执行第 3 层路由查询,分组报头中的第 3 层 VNI 则提供执行此路

由查询的 VRF 上下文环境……

图 5 采用对称 IRB 的 VXLAN 路由

入口 VTEP 将分组从源 VNI 路由至第 3

层 VNI。内部报头中的 D-MAC 是出口

VTEP 路由器 MAC

出口 VTEP 将分组从第 3

层 VNI 桥接到目标

VNI/VLAN

主机 1 主机 2

对称 IRB 的优势:

Host 1 H-MAC-1

H-IP-1 VNI-A

VTEP-4 GW-MAC

Router MAC-4

VTEP-3 GW-MAC

Router MAC-3

VTEP-2 GW-MAC

Router MAC-2

VTEP-1 GW-MAC

Router MAC-1

Host 2 H-MAC-2

H-IP-2 VNI-B

VNI A

L3 VNI

VNI B

L3 VNI

S-MAC:H-MAC-1D-MAC:GW-MAC

S-IP:H-IP-1D-IP:H-IP-2

Ingress VTEP

routes packets

from source VNI to

L3 VNI. D-MAC in

the inner header is

the egress VTEP

router MAC

1 S-MAC:GW-MAC

D-MAC:Router-MAC-4

S-IP:H-IP-1D-IP:H-IP-2

S-IP:VTEP-1D-IP:VTEP-4

VNI:L3VNI

S-MAC:GW-MACD-MAC:H-MAC-2

S-IP:H-IP-1D-IP:H-IP-2

Egress VTEP

routes packets

from L3 VNI to the

destination VNI/

VLAN 2

Page 10: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

10

采用对称 IRB,入口 VTEP 无需目标 VNI,就能进行 VNI 间路由。这意味着 VTEP 无需为与出口 VNI 相连、

没有本地主机的远程主机,学习和维护 MAC 地址信息(请参见图 6)。藉此能够更好地在 VTEP 上利用

MAC 表和 ARP 邻接。例如图 5 中的示例,VNI-B 中的所有主机 MAC 和 ARP 邻接都无需在 VTEP-1 上提供。

因此其可扩展性高于不对称 IRB。Cisco NX-OS 软件采用对称 IRB 来实现最优学习和扩展。

图 6 采用对称 IRB 的 VTEP VNI 成员

主机 1 主机 2 主机 3 每个 VTEP 只需要位于有本地主机的 VNI 中。

每个 VTEP 不必为无本地主机的 VNI 保留 MAC 表。

2.1.4 用于桥接域和 IP VRF的 VNI

一个 EVPN VXLAN 租户可以有多个第 2 层网络,每个都有一个对应 VXLAN VNI。这类 VNI 通常称为第 2 层

(L2)VNI。另一方面,如果需要 VXLAN 间路由,每个租户还需要一个用于对称 IRB 的第 3 层(L3)VNI。

虽然 VTEP 可以在 VXLAN EVPN 中有全部或部分第 2 层 VNI,但它必须有用于 VXLAN 间路由的第 3 层

VNI。EVPN 中的所有 VTEP 必须采用相同第 3 层 VNI(如图 7 所示)。

图 7 用于桥接域和 IP VRF 的 VNI

第 2 层 VNI

(网络 VNI)

第 3 层 VNI

(VRF VNI)

第 2 层 VNI

(网络 VNI)

当 EVPN VXLAN VTEP 对它从本地终端主机接收到的分组进行转发查询和 VXLAN 封装时,它可在 VXLAN

报头中使用 L2 VNI 或 L3 VNI,具体取决于分组是需要桥接还是路由。如果原始分组报头中的目标 MAC 地

址不属于本地 VTEP,则本地 VTEP 将执行第 2 层查询,并将分组桥接到目标终端主机,目标终端主机与源

主机位于同一 L2 VNI 中。本地 VTEP 将此 L2 VNI 内嵌到 VXLAN 报头之中。此时,源和目标主机位于相同

L2 广播域。如果目标 MAC 地址属于本地 VTEP 交换机,即本地 VTEP 是源主机的 IP 网关,则分组将由本

Host 1 MAC1 IP 1 VLAN 100 VXLAN 5100

Host 2 MAC2 IP 2 VLAN 100 VXLAN 5100

SVI 100

Host 3 MAC3 IP 3 VLAN 200 VXLAN 5200

VTEP VTEP VTEP VTEP

SVI 100 SVI 200

Every VTEP only needs to be in VNIs that it has local hosts for.

VTEPs don’t need to maintain MAC

tables for VNIs that they don’t have local hosts for.

VTEP VTEP VTEP VTEP

Layer-3VNI(VRFVNI)

Layer-2VNI(NetworkVNI)

Layer-2VNI(NetworkVNI)

Page 11: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

11

地 VTEP 路由。这种情况下,它将执行第 3 层路由查询,并显示出源和目标主机位于不同子网的流量。它将

根据目标主机路由或子网前缀路由来解析远程 VTEP。然后,它用 VXLAN 报头中的 L3 VNI 封装分组,并将

内部目标 MAC 重写到远程 VTEP 的路由器 MAC。收到封装 VXLAN 分组后,远程 VTEP 将根据内部报头执

行另一次路由查询,因为所收到的分组的内部 MAC 目标属于它自身。

VXLAN 分组的外部 IP 报头中的目标 VTEP 地址能够识别底层网络中的目标主机位置。根据外部目标 IP 地址,

VXLAN 分组通过底层网络,路由到出口 VTEP。一旦分组到达出口 VTEP,就会检查 VXLAN 报头中的 VNI,

来判断分组应在哪个 VLAN 中桥接或应在哪个租户 VRF 中路由。如果是后者,VXLAN 报头用 L3 VNI 加密。

L3 VNI 与租户 VRF 路由实例关联。因此出口 VTEP 可直接将所路由的 VXLAN 分组映射到相应的租户路由

实例。图 8 显示了对称 IRB 中的这一转发概念。它使得第 2 层和第 3 层分区中能够更轻松地支持多租户。

图 8 采用对称 IRB 路由的 VXLAN 分组转发

使用外部报头中的

VTEP 地址,将封

装分组路由到出口

VTEP

使用 L3-VNI

识别租户 VRF

主机 1 主机 2 租户 A 租户 B 租户 C

2.5 MP-BGP EVPN 中的 VXLAN VTEP 对等设备发现和身份验证

在 MP-BGP EVPN 面世前,VXLAN 没有控制协议驱动的 VTEP 对等设备发现机制,也没有对 VTEP 对等设

备进行身份验证的方法。这给实际 VXLAN 部署带来了巨大的安全风险,因为它允许将一个恶意 VTEP 轻松

插入 VXLAN VNI 分区,收发 VXLAN 流量。

采用 MP-BGP EVPN 控制平面后,VTEP 设备首先需要与其它 VTEP 或 iBGP 路由反射器建立 BGP 邻居邻

接关系。除了针对终端主机 NLRI 的 BGP 更新外,VTEP 还通过 BGP 交换以下与他们自身相关的信息:

L3 VNI

VTEP-1 VTEP

VTEP VTEP-2

Host1H-MAC-1

H-IP-1VNI-A

L3-VNI-A

VRF-A

Host2H-MAC-2

H-IP-2VNI-B

L3-VNI-A

VRF-A

IP Transport Network

S-MAC:H-MAC-1

D-MAC:H-MAC-2

S-IP:H-IP-1

D-IP:H-IP-2

S-MAC:H-MAC-1

D-MAC:H-MAC-2

S-IP:H-IP-1

D-IP:H-IP-2

S-MAC:Router-MAC-1D-MAC:Router-MAC-2

S-IP:H-IP-1D-IP:H-IP-2

S-IP:VTEP-1D-IP:VTEP-2

VNI:L3-VNI-A

Use VTEP addresses in the outer

header to route encapsulated

packets to the egress VTEP

S-MAC:Router-MAC-1D-MAC:Router-MAC-4

S-IP:H-IP-1D-IP:H-IP-2

S-IP:VTEP-1D-IP:VTEP-2

VNI:L3–VNI-A Use L3-VNI to identify

the tenant VRF

TenantAVRF-AL3-VNI-AH-IP-2

TenantBVRF-BL3-VNI-B

TenantCVRF-CL3-VNI-C

TenantAVRF-AL3-VNI-AH-IP-2

Page 12: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

12

VTEP 地址

路由器 MAC

VTEP 一旦接收到了来自远程 VTEP BGP 邻居的 BGP EVPN 路由更新,它就会将从此路由广播中获得的

VTEP 地址添加到 VTEP 对等设备列表中。随后,该 VTEP 对等设备列表用作有效 VTEP 对等设备“白名单”,

源自非此白名单中 VTEP 的 VXLAN 流量都被认为是无效或未授权来源。

在数据平面转发中, BGP EVPN VTEP 仅接受来自“白名单”中 VTEP 对等设备的 VXLAN 封装分组。因此,

MP-BGP EVPN 提供了基于协议的 VTEP 发现,并能将 VXLAN 覆盖流量分发仅限制在学习了 BGP 的 VTEP

中。

除了推动 VTEP 对等设备学习的 VTEP 地址外,BGP EVPN 路由还传输 VTEP 路由器 MAC。每个 VTEP 都

有一个路由器 MAC,用作路由 VXLAN 分组的内部 MAC 地址,也可编程为 VTEP 对等设备的一个属性,用

于封装传输到该 VTEP 对等设备的 VXLAN 间路由分组 。

为进一步增强安全,可方便地将现有 BGP MD5 身份验证应用到 BGP 邻居会话中,以便只有在交换机通过

预配置 MD5 3DES 密钥相互成功验证后,它们才会成为 BGP 邻居,交换 MP-BGP EVPN 路由。MP-BGP

EVPN 中的 BGP 邻居身份验证采用的配置方式与前面所述 BGP 支持方式相同。以下是一个示例:

在 VTEP-1 上:

在 VTEP-2 上:

可使用 CLI 命令和明确密码 “password cisco123”配置。在运行配置显示中,系统将自动更换为

3DES 加密密码。

邻居的密码需相同。

以下是 Cisco NX-OS 软件中 VXLAN VNI 对等设备状态和信息显示示例:

router bgp 100

router-id 10.1.1.101

log-neighbor-changes

address-family ipv4 unicast

address-family l2vpn evpn

neighbor 10.1.1.102 remote-as 100

password 3 a667d47acc18ea6b

update-source loopback0

address-family ipv4 unicast

send-community both

address-family l2vpn evpn

send-community both

• CanbeconfiguredusingtheCLIcommandwithaclearpassword,“passwordcisco123”.Thesystemwillautoma callychangeittothe3DESencryptedpasswordintherunningconfigura ondisplay.

• Bothneighborsneedtohavetheiden calpassword.

OnVTEP-1:

OnVTEP-2:

router bgp 100

router-id 10.1.1.102

log-neighbor-changes

address-family ipv4 unicast

address-family l2vpn evpn

retain route-target all

neighbor 10.1.1.101 remote-as 100

password 3 a667d47acc18ea6b

update-source loopback0

address-family ipv4 unicast

send-community both

address-family l2vpn evpn

send-community both

Page 13: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

13

2.6 MP-BGP EVPN 中的分布式任意播网关

在 MP-BGP EVPN 中,通过支持相同虚拟网关 IP 地址和虚拟网关 MAC 地址,VXLAN VNI 中的任意 VTEP

都可作为其 IP 子网中终端主机的分布式任意播网关(请参见图 9)。利用 EVPN 中的任意播网关功能,

VXLAN VNI 中的终端主机可始终使用其本地 VTEP 作为默认网关,向其 IP 子网外部发送流量。藉此,

VXLAN 覆盖网络中终端主机的北向流量可实现最优转发。分布式任意播网关还在 VXLAN 覆盖网络中提供了

无缝主机移动性的优势。因为 VXLAN VNI 中所有 VTEP 的网关 IP 和虚拟 MAC 地址都相同配置,当一个终

端主机从一个 VTEP 移动到另一 VTEP 时,无需为网关 MAC 地址重新应用 ARP。

图 9 MP-BGP EVPN 中的分布式任意播网关

VNI 中所有 VTEP 配置相同的任意播网关虚拟 IP 地址和 MAC 地址。

主机 1 主机 2 主机 3 主机 4

VTEP1-1# sh nve peers

Interface Peer-IP State LearnType Uptime Router-Mac

--------- --------------- ----- --------- -------- -----------------

nve1 10.1.1.102 Up CP 1w3d 6412.2574.6ae7

nve1 10.1.1.134 Up CP 1w3d 7c69.f6df.e71f

VTEP-1#

VTEP-1# sh nve peers peer-ip 10.1.1.102 det

Details of nve Peers:

----------------------------------------

Peer-Ip: 10.1.1.102

NVE Interface : nve1

Peer State : Up

Peer Uptime : 1w3d

Router-Mac : 6412.2574.6ae7

Peer First VNI : 20100

Configured VNIs : 20000,20100,21000,21100,39000,39010

Provision State : add-complete

Route-Update : Yes

Peer Flags : DisableLearn

Learnt CP VNIs : 20000,20100

----------------------------------------

VTEP-1#

Host 1 MAC1 IP 1 VLAN A VXLAN A

VTEP VTEP VTEP VTEP

SVI GW IP

GW MAC

# VLAN to VNI mapping

vlan 200

vn-segment 5200

# Anycast Gateway MAC, identically configured on all

VTEPs

fabric forwarding anycast-gateway-mac 0002.0002.0002

# Distributed IP Anycast Gateway (SVI)

# Gateway IP address needs to be identically

configured on all VTEPs

interface vlan 200

no shutdown

vrf member Tenant-A

ip address 20.0.0.1/24

fabric forwarding mode anycast-gateway

SVI GW IP

GW MAC

SVI GW IP

GW MAC

SVI GW IP

GW MAC

Host 2 MAC2 IP 2 VLAN A VXLAN A

Host 3 MAC3 IP 3 VLAN A VXLAN A

Host 4 MAC4 IP 4 VLAN A VXLAN A

ThesameanycastgatewayvirtualIPaddressandMACaddressareconfigr u edonallVTEPsintheVNI

Page 14: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

14

2.7 MP-BGP EVPN 中的 ARP 抑制

ARP 抑制是 MP-BGP EVPN 控制平面提供的一项增强功能,旨在减少因 ARP 请求广播而引起的网络洪泛。

当为一个 VXLAN VNI 启用 ARP 抑制功能时,它的每个 VTEP 都分别保留一个 ARP 抑制高速缓存表,用于

保存已知 IP 主机及其在 VNI 分区中的相关 MAC 地址。如图 10 所示,当 VNI 中的一个终端主机向另一终端

主机发送了一个 ARP 请求,其本地 VTEP 就截获此 ARP 请求,并在其 ARP 抑制高速缓存表中检查经过

ARP 处理的 IP。如果找到匹配结果,则本地 VTEP 将代表远程终端主机发送 ARP 响应。本地主机将在 ARP

响应中学习到远程主机的 MAC 地址。如果本地 VTEP 在其 ARP 抑制表中未找到经过 ARP 处理的 IP 地址,

则它将向 VNI 中的其它 VTEP 发送洪泛 ARP 请求。在对网络中的一个静默主机初次进行 ARP 请求时,可能

会发生这种 ARP 洪泛。在另一主机对其 IP 地址进行 ARP 并发送 ARP 响应之前,本地 VTEP 不会看到来自

此静默主机的任何流量。一旦本地 VTEP 学习了该静默主机的 MAC/IP 地址,信息就将通过控制平面分发。

随后的 ARP 请求就无需洪泛。

鉴于大多数终端主机一旦上线后,就会立刻发送免费 ARP(GARP)或反向 ARP(RARP)请求,来向网络

宣布它们的存在,所以其本地 VTEP 将有机会快速学习它们的 MAC 和 IP 地址,并通过 MP-BGP EVPN 控

制平面分发到其它 VTEP。因此,VXLAN EVPN 中的大多数有效 IP 主机都可由 VTEP 通过本地学习或控制

平面驱动的远程学习,来完成学习过程。藉此,ARP 抑制可大幅减少由主机 ARP 学习行为引起的网络洪泛。

图 10 MP-BGP EVPN 中的 ARP 抑制功能

IP 地址 MAC 地址 VLAN 物理接口索引 标记 网脊

IP-1 MAC-1 10 E1/1 本地

IP-2 MAC-2 10 空 远程

IP-3 MAC-3 10 空 远程

VTEP-1 截获 ARP 请求。

在其 ARP 抑制高速缓存

中检查,发现 vlan 10 中

Leaf

Spine

Host 1 MAC1 IP 1

VLAN 10 VXLAN 5000

Host 2 MAC2 IP-2

VLAN 10 VXLAN 5000

Host-1 in vlan 10 sends an ARP request for Host-2’s IP-2

1

VTEP 1

VTEP 2

VTEP 3

VTEP 4

VTEP-1 intercepts the ARP Request. Checks in its arp-suppression cache. It finds a match for IP-2 in vlan 10 in its arp-suppression cache

2

Ip Addr. Mac Addr. VLAN Physical-ifindex

Flags

IP-1 MAC-1 10 E1/1 Local

IP-2 MAC-2 10 Null Remote

IP-3 MAC-3 10 Null Remote

3 VTEP-1 sends an ARP response back to Host-1 with MAC-2.

Host-1 learns IP-2 / MAC-2 mapping

4

Page 15: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

15

IP-2 匹配。

VTEP-1 将带 MAC-2 的

ARP 响应发送回主机 1。

主机 1 主机 2

主机 1 学习 IP-2/MAC-2

映射

vlan 10 中的主机 1 向主

机 2 的 IP-2 发送一个

ARP 请求

3 MP-BGP EVPN VXLAN VTEP 配置

第 1 步:初始化每 VTEP 交换机配置:

启用 VXLAN 和 MP-BGP EVPN 控制平面 启用 VXLAN

启用 基于 VXLAN 的 VLAN(当前唯一模式)

启用 BGP

为 VXLAN 启用 EVPN 控制平面

可能需要启用其它功能 如果所选为底层 IGP 路由协议,则启用 OSPF

在底层网络中启用 IP PIM 组播路由

如果 VTEP 需要为 VXLAN VLAN IP 子网的 IP 网关和路

feature nv overlay

feature vn-segment-vlan-based

feature bgp

nv overlay evpn

Enable VXLAN and MP-BGP EVPN Control Plane

Enable VXLAN

Enable VLAN-based VXLAN (the currently only mode)

Enable OSPF if it’s chosen to be the underlay IGP routing protocol

Enable VLAN SVI interfaces if the VTEP needs to be IP gateway and route for the VXLAN VLAN IP subnet.

Enable EVPN control plane for VXLAN

feature ospf

feature pim

feature interface-vlan

Other features may need to be enabled

Enable BGP

Enable IP PIM multicast routing in the underlay network

Page 16: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

16

由,则启用 VLAN SVI 接口

Page 17: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

17

第 2 步:配置 EVPN 租户 VRF

下例显示了一个包括两个租户 VRF 的配置:

创建一个 VXLAN 租户 VRF

为租户 VRF 中的 VXLAN 路由定义第 3 层 VNI

定义 VRF RD(路由区分符)

在地址族 ipv4 单播中定义 VRF 路由目标和导入/导出策略

按照以上步骤,创建第二个租户 VRF 的示例

第 3 步:为每个租户 VRF 创建一个第 3 层 VNI:

vrf context evpn-tenant-1

vni 39000

rd auto

address-family ipv4 unicast

route-target import 39000:39000

route-target export 39000:39000

route-target both auto evpn

Create a VXLAN Tenant VRF

Specify the Layer-3 VNI for VXLAN routing within the tenant VRF

Define VRF Route Target and import/export policies in address-family ipv4 unicast

Define VRF RD (route distinguisher)

vrf context evpn-tenant-2

vni 39010

rd auto

address-family ipv4 unicast

route-target import 39010:39010

route-target export 39010:39010

route-target both auto evpn

Example to create a 2nd tenant VRF following the above steps

vlan 3900 name l3-vni-vlan-for-tenant-1 vn-segment 39000 interface Vlan3900 description l3-vni-for-tenant-1-routing no shutdown vrf member evpn-tenant-1 vrf context evpn-tenant-1 vni 39000 rd auto

address-family ipv4 unicast route-target import 39000:39000

route-target export 39000:39000 route-target both auto evpn

Create the VLAN for the Layer-3 VNI. One Layer-3 VNI per tenant VRF routing instance

Create the SVI interface for the Layer-3 VNI Put this SVI interface into the tenant VRF context

Associate the Layer-3 VNI with the tenant VRF routing instance.

Page 18: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

18

为第 3 层 VNI 创建 VLAN。

每租户 VRF 路由实例一个第 3 层 VNI

为第 3 层 VNI 创建 SVI 接口

将此 SVI 接口置于租户 VRF 环境中

将第 3 层 VNI 与租户 VRF 路由实例相关联

按照前一张幻灯片中的相同步骤,为第二个租户定义第 3 层 VNI

第 4 步:为第 2 层网络配置 EVPN L2 VNI

此步将 VLAN 映射到第 2 层 VNI,并定义其 EVPN 参数

将 VLAN 映射到 VXLAN VNI

在 EVPN 配置中,为每个第 2 层 VNI 定义 RD 和 RT 导入/导出策略

vlan 3901

name l3-vni-vlan-for-tenant-2

vn-segment 39010

interface Vlan3901

description l3-vni-for-tenant-2-routing

no shutdown

vrf member evpn-tenant-2

vrf context evpn-tenant-2

vni 39010

rd auto

address-family ipv4 unicast

route-target import 39010:39010

route-target export 39010:39010

route-target both auto evpn

Define Layer-3 VNI for a 2nd tenant following the same steps in the previous slide

vlan 200

vn-segment 20000

vlan 210

vn-segment 21000

Map VLAN to VXLAN VNI

evpn

vni 20000 l2

rd auto

route-target import auto

route-target export auto

vni 21000 l2

rd auto

route-target import auto

route-target export auto

Under EVPN configuration, define RD and RT import/export policies for each Layer-2 VNIs

Page 19: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

19

第 5 步:为第 2 层 VNI 配置 SVI 接口,并在 SVI 接口下启用任意播网关。

为一个第 2 层 VNI 创建 SVI 接口。

将其与租户 VRF 关联。

所有此 VLAN/VNI 的 VTEP 都应具有与分布式 IP 网关相同的 SVI 接口 IP 地址。

为此 VLAN/VNI 启用分布式任意播网关。

第 6 步:配置 EVPN 分布式任意播网关

此步骤包括为每个 VTEP 配置任意播网关虚拟 MAC 地址,和为每个 VXLAN VNI 配置任意播网关 IP 地址。

必须确保 EVPN 域中的所有 VTEP 都具有相同任意播网关虚拟 MAC 地址,且作为默认 IP 网关,特定

VXLAN VNI 有相同任意播网关 IP 地址。

配置分布式网关虚拟 MAC 地址

每 VTEP 一个虚拟 MAC

属于分布式网关的所有交换机需要有相同任意播网关 MAC 地址

配置虚拟 IP 地址

此 VLAN 的所有 VTEP 都应有相同虚拟 IP 地址

为此 VLAN 启用分布式网关

interface Vlan200

no shutdown

vrf member evpn-tenant-1

ip address 20.1.1.1/8

fabric forwarding mode anycast-gateway

interface Vlan210

no shutdown

vrf member evpn-tenant-2

ip address 21.1.1.1/8

fabric forwarding mode anycast-gateway

Create SVI interface for a Layer-2 VNI. Associate it with the tenant VRF.

Enable distributed anycast gateway for this VLAN/VNI

All VTEPs for this VLAN/VNI should have the same SVI interface IP address as the distributed IP gateway.

Page 20: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

20

第 7 步:配置 VXLAN 隧道接口 nve1 ,并将 L2 VNI 和 L3 VNI 与其相关联。

指定 loopback0 作为源接口

定义 BGP 作为主机可达性广播机制

将租户 VNI 关联到隧道接口 nve1

逐个 VNI 定义组播群组

逐个 VNI 启用 ARP 抑制

添加第 3 层 VNI,每个租户 VRF 一个

这个回路接口是 VXLAN 隧道的源头

第 8 步:在 VTEP 上配置 MP-BGP

地址族 ipv4 单播,用于基于前缀的路由

地址族 l2vpn evpn ,用于 evpn 主机路由

interface nve1

no shutdown

source-interface loopback0

host-reachability protocol bgp

member vni 20000

suppress-arp

mcast-group 239.1.1.1

member vni 21000

suppress-arp

mcast-group 239.1.1.2

member vni 39000 associate-vrf

member vni 39010 associate-vrf

interface loopback 0

ip address 10.1.1.11/32

ip ospf network point-to-point

ip router ospf 1 area 0.0.0.0

ip pim sparse-mode

Specify loopback0 as the source interface

Define BGP as the mechanism for host reachability advertisement

Add Layer-3 VNIs, one per tenant VRF

Associate tenant VNIs to the tunnel interface nve1 Define the mcast group on a per-VNI basis

Enable arp suppression on a per-VNI basis

The loopback interface to source VXLAN tunnels

router bgp 100

router-id 10.1.1.11

log-neighbor-changes

address-family ipv4 unicast

address-family l2vpn evpn

neighbor 10.1.1.1 remote-as 100

update-source loopback0

address-family ipv4 unicast

address-family l2vpn evpn

send-community extended

neighbor 10.1.1.2 remote-as 100

update-source loopback0

address-family ipv4 unicast

address-family l2vpn evpn

send-community extended

vrf evpn-tenant-1

address-family ipv4 unicast

advertise l2vpn evpn

vrf evpn-tenant-2

address-family ipv4 unicast

advertise l2vpn evpn

Address-family ipv4 unicast for prefix-based routing

Define MP-BGP neighbors. Under each neighbor define address-family ipv4 unicast and l2vpn evpn

Under address-family ipv4 unicast of each tenant VRF instance, enable advertising EVPN routes

Send extended community in l2vpn evpn address-family to distribute EVPN route attributes

Address-family l2vpn evpn for evpn host routes

Page 21: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

21

定义 MP-BGP 邻居。

在每个邻居下,定义地址族 ipv4 单播和 l2vpn evpn

在 l2vpn evpn 地址族中发送扩展团体,分发 EVPN 路由属性

在每个租户 VRF 实例的地址族 ipv4 单播下,启用广播 EVPN 路由

第 9 步:配置 iBGP 路由反射器

地址族 ipv4 单播,用于基于前缀的路由

地址族 l2vpn evpn ,用于 EVPN vxlan 主机路由

保留路由目标属性

iBGP RR 客户对等设备模板

在地址族 ipv4 单播中发送标准和扩展团体

在地址族 l2vpn evpn 中发送标准和扩展团体

router bgp 100

router-id 10.1.1.1

log-neighbor-changes

address-family ipv4 unicast

address-family l2vpn evpn

retain route-target all

template peer vtep-peer

remote-as 100

update-source loopback0

address-family ipv4 unicast

send-community both

route-reflector-client

address-family l2vpn evpn

send-community both

route-reflector-client

neighbor 10.1.1.11

inherit peer vtep-peer

neighbor 10.1.1.12

inherit peer vtep-peer

neighbor 10.1.1.13

inherit peer vtep-peer

neighbor 10.1.1.14

inherit peer vtep-peer

Address-family ipv4 unicast for prefix-based routing

iBGP RR client peer template

Send both standard and extended community in address-family l2vpn evpn

Send both standard and extended community in address-family ipv4 unicast

Address-family l2vpn evpn for EVPN vxlan host routes Retain route-targets attributes

Page 22: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

22

4 MP-BGP EVPN VXLAN 中的 vPC VTEP

4.1 EVPN vPC VTEP 概述

vPC VTEP 结合了 virtual PortChannel(vPC)和 VXLAN VTEP 两项技术,为 VXLAN VTEP 提供了设备

级冗余。一对 vPC 交换机共享相同 VTEP 地址,该地址通常被称为任意播 VTEP 地址,作为逻辑 VTEP 运

行。网络中的其它 VTEP 将看到它们是拥有任意播 VTEP 地址的单一 VTEP。当两个 vPC VTEP 交换机启动

运行,它们以主-主形式共享负载。万一其中一个 vPC 交换机发生故障,另一交换机将接管全部流量负载,

从而使得故障不会造成与此 vPC 对相连的设备丢失连接。

NX-OS 中部署了 MP-BGP EVPN 控制平面,与 vPC VTEP 一同无缝运行。借助 MP-BGP EVPN 控制平面,

vPC VTEP 继续作为采用任意播 VTEP 地址的单一逻辑 VTEP,提供 VXLAN VTEP 功能,但从 MP-BGP 协

议角度,它们作为两个独立实体运行。它们拥有不同的 BGP 路由器 ID,与邻接的 BGP 对等设备构成 BGP

邻居,并独立广播 EVPN 路由。在 EVPN 路由中,它们都使用任意播 VTEP 地址作为下一跳,以便远程

VTEP 能使用学习到的 EVPN 路由和封装分组,使用任意播 VTEP 地址作为封装分组外部 IP 报头的目标地址。

4.2 EVPN vPC VTEP 配置

vPC VTEP 交换机通过配置,在回路接口上使用一个备用 IP 地址,作为 VXLAN 隧道源头的 VTEP 地址(接

口 nve1)。EVPN VXAN 配置的其余部分与普通 VTEP 相同。两个交换机必须有自己的 BGP 配置,采用独

特路由器 ID。图 11 阐述了 MP-BGP EVPN vPC VTEP 概念。当为 EVPN 路由构建 BGP 更新时,MP-BGP

将使用任意播 VTEP 地址作为下一跳。

图 11 MP-BGP EVPN vPC VTEP

BGP 路由器 ID 1 底层 IP 网络 BGP 路由器 ID 2

BGP 对等设备

BGP 对等设备

BGP 对等设备

BGP 对等设备

UnderlayIPNetwork

vPC PortChannel

Layer3Link

Layer2Link

vPC VTEP-1 vPC VTEP-2

vPC VTEP with

Anycast-VTEP

address

BGPpeer

BGPpeer

BGPpeer

BGPpeer

BGP Router ID 1 BGP Router ID 2

Page 23: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

23

VPC VTEP,采用任意播 VTEP 地

VPC PortChannel 第 2 层连接

第 3 层连接

以下是 vPC VTEP 配置示例。

vPC VTEP-1 配置:

interface nve1

no shutdown source-interface loopback0

host-reachability protocol bgp

member vni 20000

suppress-arp

mcast-group 239.1.1.1

member vni 20100

suppress-arp

mcast-group 239.1.1.2

member vni 39000 associate-vrf

interface loopback0

ip address 10.1.1.13/32

ip address 10.1.1.134/32 secondary

ip ospf network point-to-point

ip router ospf 1 area 0.0.0.0

ip pim sparse-mode

router bgp 100

router-id 10.1.1.13

log-neighbor-changes

address-family ipv4 unicast

address-family l2vpn evpn

neighbor 10.1.1.1 remote-as 100

update-source loopback0

address-family ipv4 unicast

address-family l2vpn evpn

send-community extended

neighbor 10.1.1.2 remote-as 100

update-source loopback0

address-family ipv4 unicast

address-family l2vpn evpn

send-community extended

vrf evpn-tenant-1

address-family ipv4 unicast

advertise l2vpn evpn

evpn

vni 20000 l2

rd auto

route-target import auto

route-target export auto

vni 20100 l2

rd auto

route-target import auto

route-target export auto

vrf context evpn-tenant-1

rd auto

address-family ipv4 unicast

route-target import 39000:39000

接口 loopback 0 是 VXLAN 隧道

的源头

VXLAN 隧道接口

这一备用 IP 地址将用作任意播

VTEP 地址。两个 vPC VTEP 都

需配置相同的任意播 VTEP 地

址。

BGP 实例,采用自己的路由器 ID

10.1.1.13

Page 24: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

24

route-target export 39000:39000

route-target both auto evpn

n9396-vPC-VTEP-1#

vPC VTEP-2 配置:

interface nve1

no shutdown

source-interface loopback0

host-reachability protocol bgp

member vni 20000

suppress-arp

mcast-group 239.1.1.1

member vni 20100

suppress-arp

mcast-group 239.1.1.2

member vni 39010 associate-vrf

interface loopback0

ip address 10.1.1.14/32

ip address 10.1.1.134/32 secondary

ip router ospf 1 area 0.0.0.0

ip pim sparse-mode

router bgp 100

router-id 10.1.1.14

log-neighbor-changes

address-family ipv4 unicast

address-family l2vpn evpn

neighbor 10.1.1.1 remote-as 100

update-source loopback0

address-family ipv4 unicast

address-family l2vpn evpn

send-community extended

neighbor 10.1.1.2 remote-as 100

update-source loopback0

address-family ipv4 unicast

address-family l2vpn evpn

send-community extended

vrf evpn-tenant-1

address-family ipv4 unicast

advertise l2vpn evpn

evpn

vni 20000 l2

rd auto

route-target import auto

route-target export auto

vni 20100 l2

rd auto

route-target import auto

route-target export auto

vrf context evpn-tenant-1

rd auto

address-family ipv4 unicast

route-target import 39000:39000

route-target export 39000:39000

route-target both auto evpn

VXLAN 隧道接口

接口 loopback 0 是 VXLAN 隧道

的源头

这一备用 IP 地址将用作任意播

VTEP 地址。两个 vPC VTEP 都

需配置相同的任意播 VTEP 地

址。

BGP 实例,采用自己的路由器 ID

10.1.1.14

Page 25: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

25

n9396-vPC-VTEP-2#

4.3 vPC VTEP MP-BGP 状态和 EVPN 路由更新

对它们的 MP-BGP 邻居来说,vPC VTEP 是两个不同的邻居。以下是 vPC VTEP 的 BGP 邻居的 show bgp

l2vpn evpn summary 命令输出示例:

spine-9508-1# sh bgp l2vpn evpn summary

BGP summary information for VRF default, address family L2VPN EVPN

BGP router identifier 10.1.1.1, local AS number 100

BGP table version is 75, L2VPN EVPN config peers 4, capable peers 4

13 network entries and 13 paths using 1716 bytes of memory

BGP attribute entries [12/1728], BGP AS path entries [0/0]

BGP community entries [0/0], BGP clusterlist entries [0/0]

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

10.1.1.11 4 100 8247 8262 75 0 0 5d17h 6

10.1.1.12 4 100 8254 8259 75 0 0 1d08h 3

10.1.1.13 4 100 8258 8409 75 0 0 1d16h 2

10.1.1.14 4 100 8257 8455 75 0 0 1d16h 2

两个 vPC VTEP 使用相同任意播-VTEP 地址作为 BGP 下一跳地址,广播 EVPN 路由。以下是两个 vPC

VTEP 路由广播的示例:

在 VTEP-1 上:

n9396-vPC-VTEP-1# sh bgp l2vpn evpn neighbors 10.1.1.1 advertised-routes

Peer 10.1.1.1 routes for address family L2VPN EVPN:

BGP table version is 94, local router ID is 10.1.1.13

Status: s-suppressed, x-deleted, S-stale, d-dampened, h-history, *-valid, >-best

Path type: i-internal, e-external, c-confed, l-local, a-aggregate, r-redist, I-injected

Origin codes: i - IGP, e - EGP, ? - incomplete, | - multipath, & - backup

Network Next Hop Metric LocPrf Weight Path

Route Distinguisher: 10.1.1.11:32967

Route Distinguisher: 10.1.1.11:32968

Route Distinguisher: 10.1.1.11:32977

Route Distinguisher: 10.1.1.12:2

Route Distinguisher: 10.1.1.12:6

Route Distinguisher: 10.1.1.13:32967 (L2VNI 20000)

*>l[2]:[0]:[0]:[48]:[0000.1330.e586]:[0]:[0.0.0.0]/216

10.1.1.134 100 32768 i

*>l[2]:[0]:[0]:[48]:[0000.1330.e586]:[32]:[20.0.0.98]/272

10.1.1.134 100 32768 i

两个 vPC VTEP 显示为

两个独立 BGP 邻居

下一跳是任意播-VTEP 地址10.1.1.134

Page 26: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

26

Route Distinguisher: 10.1.1.13:32977 (L2VNI 21000)

Route Distinguisher: 10.1.1.14:32967

Route Distinguisher: 10.1.1.13:3 (L3VNI 39000)

n9396-vPC-VTEP-1#

在 VTEP-2 上:

n9396-vPC-VTEP-2# sh bgp l2vpn evpn neighbors 10.1.1.1 advertised-routes

Peer 10.1.1.1 routes for address family L2VPN EVPN:

BGP table version is 117, local router ID is 10.1.1.14

Status: s-suppressed, x-deleted, S-stale, d-dampened, h-history, *-valid, >-best

Path type: i-internal, e-external, c-confed, l-local, a-aggregate, r-redist, I-injected

Origin codes: i - IGP, e - EGP, ? - incomplete, | - multipath, & - backup

Network Next Hop Metric LocPrf Weight Path

Route Distinguisher: 10.1.1.11:32967

Route Distinguisher: 10.1.1.11:32968

Route Distinguisher: 10.1.1.11:32977

Route Distinguisher: 10.1.1.12:2

Route Distinguisher: 10.1.1.12:6

Route Distinguisher: 10.1.1.13:32967

Route Distinguisher: 10.1.1.14:32967 (L2VNI 20000)

*>l[2]:[0]:[0]:[48]:[0000.1330.e586]:[0]:[0.0.0.0]/216

10.1.1.134 100 32768 i

*>l[2]:[0]:[0]:[48]:[0000.1330.e586]:[32]:[20.0.0.98]/272

10.1.1.134 100 32768 i

Route Distinguisher: 10.1.1.14:32977 (L2VNI 21000)

Route Distinguisher: 10.1.1.14:3 (L3VNI 39000)

n9396-vPC-VTEP-2#

在其它 VTEP 上,被学习的 EVPN 路由以任意播 VTEP 作为下一跳。以下是远程 VTEP 上,针对与上面广播

的相同路由,执行 show bgp l2vpn evpn 命令的输出结果:

Route Distinguisher: 10.1.1.14:32967

* i[2]:[0]:[0]:[48]:[0000.1330.e586]:[0]:[0.0.0.0]/216

10.1.1.134 100 0 i

*>i 10.1.1.134 100 0 i

*>i[2]:[0]:[0]:[48]:[0000.1330.e586]:[32]:[20.0.0.98]/272

10.1.1.134 100 0 i

* i 10.1.1.134 100 0 i

下一跳是任意播-VTEP 地址10.1.1.134

Page 27: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

27

5 MP-BGP EVPN VXLAN 架构设计

越来越多的机构在部署全新可扩展数据中心网络的同时,转向使用两层网脊-叶架构(请参见图 12)。这个

两层架构设计为网络扩展提供了极高灵活性,能够满足应用对于连接密度和转发能力不同提高的需求。该架

构作为第 3 层网络运行,利用了 OSPF、BGP 或 IS-IS 等当前第 3 层路由协议的成熟稳定性和可扩展性优势。

图 12 两层网脊-叶架构

网脊

采用第 3 层 ECMP 负载共享的 IP 网络

采用第 3 层架构时,第 2 层域包括在每个叶交换机中。对于假定其计算节点间有直接第 2 层邻接关系的应用

来说,这可能会造成工作负载位置限制。VXLAN 可部署用于第 3 层架构上的第 2 层域扩展,以实现工作负

载位置灵活性。本章节讨论利用 MP-BGP EVPN 控制平面进行路由分发和提供多租户支持的 VXLAN 架构的

部分典型可选设计。

MP-BGP EVPN 是 BGP 中的一个新地址族,使用独立于地址族的 BGP 机制。它不强制采用 iBGP(内部

BGP)或 eBGP(外部 BGP)。这种灵活性使得机构能够更方便地从当前数据中心 BGP 设计,过渡到 MP-

BGP EVPN VXLAN 设计,并在分配 BGP 自治系统编号方面提供了灵活性。本章节中既探讨 MP-iBGP

EVPN 设计,也探讨 MP-eBGP EVPN 设计。

5.1 采用 MP-iBGP EVPN 的 VXLAN 架构

采用 MP-iBGP EVPN 设计时,所有 MP-BGP 发言者都位于同一 BGP AS 中。为简化 iBGP 对等拓扑结构,

在网络中部署了 iBGP 路由反射器(RR)。此外,可部署一个首选 IGP 路由协议,在底层网络中提供 VTEP

地址的 IP 可达性。根据软件功能和可扩展性的不同,iBGP RR 可部署在网脊层、叶层,或作为专用设备部

署,提供更高可扩展性。

5.1.1 网脊层上的 MP-iBGP 路由反射器

在此可选设计中,叶交换机为 VXLAN VTEP 设备。它们运行 MP-iBGP,与一对在网脊交换机上运行的 RR

对等。这要求所选网脊设备具备 MP-BGP EVPN 软件功能,但它们并不一定必须是 VXLAN VTEP。

图 13 显示了一个在网脊层上采用 iBGP RR(路由反射器)的 MP-iBGP EVPN VXLAN 架构示例。在此设计

中,每个 VTEP 叶都有两个 iBGP 邻居,分别为两个网脊 BGP RR。每个网脊 BGP RR 将所有 VTEP 叶作为

路由反射器客户端,为 VTEP 叶反射 EVPN 路由。

Spine

Leaf

IP Network with Layer-3 ECMP Load Sharing

Page 28: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

28

图 13 在网脊层上采用路由反射器的 MP-iBGP EVPN VXLAN 架构设计

网脊

VXLAN 覆盖网络 MP-iBGP EVPN MP-iBGP 会话

以下是此设计中 VTEP 叶采用 MP-iBGP 配置的示例:

n9396-vtep-1# sh run bgp

!Command: show running-config bgp

!Time: Fri Jan 23 07:38:48 2015

version 7.0(3)I1(1)

feature bgp

router bgp 100

router-id 10.1.1.11

log-neighbor-changes

address-family ipv4 unicast

address-family l2vpn evpn

neighbor 10.1.1.1 remote-as 100

update-source loopback0

address-family ipv4 unicast

address-family l2vpn evpn

send-community extended

neighbor 10.1.1.2 remote-as 100

update-source loopback0

address-family ipv4 unicast

address-family l2vpn evpn

send-community extended

vrf evpn-tenant-1

address-family ipv4 unicast

advertise l2vpn evpn

evpn

vni 20000 l2

rd auto

route-target import auto

route-target export auto

vni 20100 l2

rd auto

route-target import auto

route-target export auto

vni 21000 l2

rd auto

route-target import auto

route-target export auto

vni 21100 l2

Leaf VTEP VTEP VTEP VTEP VTEP VTEP

Spine RR RR

MP-iBGP Sessions

VXLAN Overlay

MP-iBGP EVPN

配置两个网脊 BGP 路由反射器作为两个 iBGP 邻居。在每

个邻居下方,通过地址族 l2vpn evpn 发送扩展团体。EVPN

路由使用扩展团体传输 EVPN 属性。

将 EVPN 路由广播到地址族 ipv4 单播。这是可选项。如果

此 VTEP 路由到广域网边缘路由器等外部设备,则其必选,

并需要将 EVPN 路由分发到外部。

Page 29: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

29

rd auto

route-target import auto

route-target export auto

vrf context evpn-tenant-1

rd auto

address-family ipv4 unicast

route-target import 39000:39000

route-target export 39000:39000

route-target both auto evpn

vrf context evpn-tenant-2

rd auto

address-family ipv4 unicast

route-target import 39010:39010

route-target export 39010:39010

route-target both auto evpn

n9396-vtep-1#

以下是网脊 BGP 路由反射器上采用 MP-iBGP 配置的示例:

启用 MP-BGP l2vpn evpn

地址族 l2vpn evpn 用于 vxlan EVPN 路由。

需要在将 EVPN 路由从一个 iBGP RR 客户端广播到其它客户端时,保留原始路由目标属性。这对于确保其它 RR 客户端

能接收到此路由很重要。

IBGP RR 客户端对等设备模板

在地址族 l2vpn evpn 中发送标准和扩展团体

将 VTEP 叶作为 iBGP RR 客户端

feature bgp

nv overlay evpn

router bgp 100

router-id 10.1.1.1

log-neighbor-changes

address-family ipv4 unicast

address-family l2vpn evpn

retain route-target all

template peer vtep-peer

remote-as 100

update-source loopback0

address-family ipv4 unicast

send-community both

route-reflector-client

address-family l2vpn evpn

send-community both

route-reflector-client

neighbor 10.1.1.11

inherit peer vtep-peer

neighbor 10.1.1.12

inherit peer vtep-peer

neighbor 10.1.1.13

inherit peer vtep-peer

neighbor 10.1.1.14

inherit peer vtep-peer

iBGP RR client peer template

Send both standard and extended community in address-family l2vpn evpn

Address-familyl 2vpn evpn for vxlan EVPN routes. Need to retain the original route-target

attributes while advertising EVPN routes from one iBGP RR client to the others. This is

important for the routes to be received by the other RR clients.

Enable MP-BGP l2vpn evpn

VTEP leafs as iBGP RR clients

Page 30: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

30

5.1.2 叶层上的 MP-iBGP 路由反射器

对于 MP-iBGP EVPN 来说,网脊层上的 BGP 路由反射器采用了直观设计。它要求所选网脊设备支持 MP-

iBGP EVPN 协议的软件功能,以便能够为 EVPN 路由处理和分发 MP-iBGP 更新。如果网脊无法运行 MP-

BGP EVPN,BGP RR 功能需移动到叶层,叶交换机支持 MP-BGP EVPN 和 VXLAN VTEP 功能(请参见图

14)。

图 14 在叶层上提供 BGP 路由反射器功能的 MP-iBGP EVPN 架构设计

网脊 网脊交换机不能运行 MP-BGP EVPN

叶 VXLAN 覆盖网络 所选叶交换机向其它 iBGP VTEP 叶提供 iBGP 路由反射

器功能。其它所有叶通过 iBGP 与它们对等。

在此设计中,网脊交换机完全不参与 MP-BGP EVPN 控制平面。它们运行底层网络路由协议,为 VTEP 地

址和 iBGP 对等地址(如果它们的地址与 VTEP 地址不同,比如位于 vPC VTEP 上时)建立 IP 可达性。

5.1.3 带专用路由反射器的 MP-iBGP

EVPN 中 MP-iBGP 路由反射器的作用与普通 iBGP 路由反射器相同,即在 iBGP 对等设备间反射 BGP 更新,

以便它们不会形成全网格 iBGP 对等拓扑结构。它大幅简化了 iBGP 拓扑,并提高了该协议的可扩展性。因

为 BGP 路由反射器是一个纯控制平面功能,所以它无需位于数据平面转发路径中。藉此,为路由反射器的

部署和平台选择提供了更高灵活性。一个可扩展设计选项是,在数据路径之外,采用专用路由反射器(请参

见图 15)。所选设备需支持 MP-BGP EVPN,并应具备相应的 BGP 控制平面可扩展性和控制平面计算能力,

实现快速收敛。采用专用路由反射器,可消除网脊层对于 MP-BGP EVPN 功能的需求,并避免给 VTEP 叶

带来负担,要求其除了转发数据外,还必须运行 BGP 路由反射器功能。尽管从逻辑上来说,VTEP 叶与路由

反射器有直接 iBGP 邻居邻接关系,但路由反射器仍可以叶节点形式,物理连接到 VXLAN 架构。必须考虑

路由因素,使得 VTEP 地址间的底层数据传输路径不必途经路由反射器。这可以确保 RR 位于数据转发路径

之外。

Spine

Leaf

VTEP

N9300

VTEP

N9300

VTEP

N9300

VTEP

N9300 VTEP

N9300

iBGP iBGP iBGP iBGP iBGP RR RR

VXLAN Overlay

Spine Switches are not capable of

running MP-BGP EVPN

Leaf switches chosen to provide

iBGP route reflector functions to

the other iBGP VTEP leafs. All

other leafs peer with them through

iBGP

Page 31: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

31

图 15 采用专用路由反射器的 MP-iBGP EVPN 设计

网脊 网脊交换机无需运行 MP-BGP

EVPN。它们是纯 IP 传输设备。

专用 MP-BGP EVPN 路由能够提高可扩展性和控制平面性

能。它们可以叶节点形式,连接到网络。

叶 所有叶 VTEP 都与专用路由反射器之间运行 iBGP 会话。

5.2 采用 MP-eBGP EVPN 的 VXLAN 架构

虽然 MP-iBGP EVPN 设计是一种常见惯例,但一些机构可能选择在其叶层和网脊层之间运行 eBGP。MP-

BGP EVPN 能够灵活地与 iBGP 和 eBGP 共用。提供 MP-eBGP 对等的 EVPN 是一个可行设计选项。采用

eBGP 设计时,BGP AS 分配有多种可选方案。图 16 是每个 VTEP 叶都位于自己独有 BGP AS 中的设计,

而图 17 则是另一种设计,所有 VTEP 叶都位于同一 AS,且它们都通过 eBGP 与网脊交换机对等。

鉴于 MP-BGP EVPN 是 BGP 协议的扩展,它继承了标准 BGP 行为。在 MP-BGP EVPN 网络中,部分默认

行为是不受欢迎的。例如,当一个 BGP 路由器向一个 eBGP 对等设备广播 BGP 路由时,默认情况它会将

BGP 下一跳改为它自己的 IP 地址。在 MP-BGP EVPN 中,当一个 VTEP 发起一个 BGP 更新,广播它的

EVPN 路由,它会将自己的 VTEP 地址作为 BGP 下一跳。在逐跳 BGP 路由分发过程中,这个下一跳信息须

保留,以便其它 VTEP 能够收到原 VTEP 地址作为下一跳的 EVPN 路由,并可利用该路由,在数据中心启动

VXLAN 隧道。因此,网脊交换机上的 eBGP 需配置为不更改 BGP 下一跳。BGP 路由器在发送 eBGP 路由

时,还可能修改 BGP 团体属性。在 MP-EVPN 中,这会造成 EVPN 路由中的路由目标属性修改或删除。因

此,需要对中间 eBGP 对等设备应用更多配置,来确保它们都包含所有路由目标属性。

Spine

Leaf

VTEP

N9300

VTEP

N9300

VTEP

N9300

VTEP

N9300 VTEP

N9300

iBGP iBGP iBGP iBGP iBGP

RR

RR

Spine Switches don’t need to be

able to run MP-BGP EVPN. They

are purely IP transport devices Dedicated MP-BGP EVPN Route

Reflector for better scalability and

control plane performance.

They can be connected into the

fabric network in the fashion of a

leaf node

All Leaf VTEPs run iBGP sessions with

the dedicated route reflectors

Page 32: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

32

图 16 VTEP 叶位于独有 AS 中的 MP-eBGP EVPN VXLAN 架构

网脊 MP-eBGP 会话

以下是图 16 设计中 VTEP 叶和网脊交换机的 MP-BGP 配置示例,包括在网脊交换机上应用不更改 eBGP 路

由下一跳的出站策略。

设置下一跳策略,不更改下一跳属性

Leaf VTEP VTEP VTEP VTEP VTEP VTEP

Spine

MP-eBGPSessions

AS65001 AS65002 AS65003 AS65004 AS65005 AS65006

AS65000

[BGP configuration on a leaf switch in Figure 16 Design]

route-map permit-all permit 10

set ip next-hop unchanged

router bgp 65001

address-family ipv4 unicast

neighbor 192.167.11.1 remote-as 65000

address-family ipv4 unicast

allowas-in

send-community extended

address-family l2vpn evpn

send-community extended

neighbor 192.168.11.1 remote-as 65000

address-family ipv4 unicast

send-community extended

address-family l2vpn evpn

send-community extended

vrf evpn-tenant-1

address-family ipv4 unicast

advertise l2vpn evpn

Spineswitch1aseBGPneighbor

Spineswitch2aseBGPneighbor

Page 33: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

33

当向 eBGP 对等设备广播 EVPN BGP 路由时,保留带所有路由目标的路由

设置出站策略,向该 eBGP 邻居广播所有路由

网脊交换机 1 作为 eBGP 邻居

网脊交换机 2 作为 eBGP 邻居

图 17 为所有叶都位于同一 AS,且它们各自通过 MP-eBGP 与网脊节点对等的 MP-eBGP 设计。

图 17 VTEP 叶位于同一 BGP AS 的 MP-eBGP 设计

网脊 MP-eBGP 会话

以下是图 17 设计中 VTEP 叶和网脊交换机的配置示例。除了图 16 设计中的配置外,图 17 中的网脊交换机

需禁用对等 AS 检查功能,因为它们需要在位于同一 BGP AS 的两个 eBGP 邻居间传输 MP-BGP EVPN 路

由。图 17 中的 VTEP 叶需要启用 allowas-in 功能,以便它们能够从与其位于同一 BGP AS 的其它 VTEP 接

受 BGP 路由。

设置下一跳策略,不更改下一跳属性

当向 eBGP 对等设备广播 EVPN BGP 路由时,保留所有路由目标属性

Leaf VTEP VTEP VTEP VTEP VTEP VTEP

Spine

MP-eBGPSessions

AS65100 AS65100 AS65100 AS65100 AS65100 AS65100

AS65000

Page 34: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

34

VTEP 叶作为 eBGP 对等设备。所有 VTEP 位于同一 BGP AS 65100

为此邻居禁用对等 AS 检查功能

设置出站策略,向该 eBGP 邻居广播所有路由

VTEP 叶作为 eBGP 对等设备。所有 VTEP 位于同一 BGP AS 65100

网脊交换机 1 作为 eBGP 邻居

允许本地 AS BGP 路由位于此邻居的 AS 路径中

网脊交换机 2 作为 eBGP 邻居

允许本地 AS BGP 路由位于此邻居的 AS 路径中

6 MP-BGP EVPN VXLAN 外部路由

在大多数机构中,数据中心与网络其余部分,包括园区网、WAN(广域网)和互联网等并不隔离。虽然

EVPN VXLAN 架构部署在数据中心,但它也需要与位于其外部的上述网络保持连接。

在标准网脊-叶架构中,通过使用边缘叶连接外部路由设备,能够实现外部连接。图 18 介绍了采用一对边缘

叶的这一设计理念。

[BGP configuration on a leaf switch in Figure 17 design]

route-map permit-all permit 10

set ip next-hop unchanged

router bgp 65001

address-family ipv4 unicast

neighbor 192.167.11.1 remote-as 65000

address-family ipv4 unicast

allowas-in

send-community extended

address-family l2vpn evpn

allowas-in

send-community extended

neighbor 192.168.11.1 remote-as 65000

address-family ipv4 unicast

allowas-in

send-community extended

address-family l2vpn evpn

allowas-in

send-community extended

vrf evpn-tenant-1

address-family ipv4 unicast

advertise l2vpn evpn

Spineswitch1aseBGPneighbor

AllowBGProuteswiththelocalASintheASpathfromthisneighbor

Spineswitch2aseBGPneighbor

AllowBGProuteswiththelocalASintheASpathfromthisneighbor

Page 35: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

35

图 18 用于 MP-BGP EVPN VXLAN 架构外部路由的边缘叶

网脊 边缘叶 VXLAN 重叠网络 EVPN VRF/VRF 空间

VXLAN 重叠网络 EVPN MP-BGP 首选路由协议 叶

IP 路由 全局默认 VRF 或用户空间 VRF

边缘叶交换机在内部和 VXLAN 架构的其它 VTEP 一起运行 MP-BGP EVPN,并和它们交换传输 EVPN 路由。

同时,它在租户 VRF 实例上运行到外部路由设备的普通 IPv4 单播路由。路由协议可采用常规 eBGP 或任意

可选 IGP 协议。在设计方面,MP-BGP EVPN 自动将从 ipv4 单播地址族学习到的 BGP 路由导入 l2vpn evpn

地址族。因此,一旦边缘叶交换机学习了外部路由,它可将它们作为 EVPN 路由,广播到 EVPN 域,以便其

它 VTEP 叶也能学习外部路由,发送出站流量。边缘叶交换机还可通过配置,将从 l2vpn evpn 地址族学习到

的 EVPN 路由发送到 ipv4 单播地址族,并将它们广播到外部路由设备。因此,如果 VXLAN 架构中有公共子

网,它们可广播到架构外部,使得来自外部、传输到这些公共子网的入站流量,能够路由到 VXLAN 架构。

因为 MP-BGP EVPN 采用内置多租户概念,VXLAN 覆盖网络的第 3 层子网位于租户 VRF 路由实例中。默认

状态下,不同租户可保留其各自独立的第 3 层路由实例。因此,不同租户的外部路由需要单独提供。边缘叶

需要为每个租户 VRF 提供一个连接到外部的第 3 层接口,运行外部路由(请参见图 19)。

如果需要将这种不同租户间的第 3 层路由分区扩展到外部网络,外部路由器也可将其连接边缘叶的第 3 层接

口置于租户 VRF 中。边缘叶和外部路由器间的路由会话将在两侧以 vrf-lite 形式运行。

在 VXLAN 边缘叶上端接第 3 层分区的设计中,外部路由器可运行默认路由表中的所有路由会话,这意味着

VXLAN 阵列上不同租户路由实例的路由都将合并到同一个外部默认路由表中。鉴于此类设计中,租户实际上

共享外部路由,所以 VXLAN 租户间不应使用覆盖 IP 地址。

Leaf VTEP VTEP VTEP VTEP VTEP VTEP

Spine RR RR

Global Default VRF

Or User Space VRFs

Border Leaf

VXLAN Overlay

EVPN MP-BGP

IP Routing

Routing Protocol

of Choice

VXLAN Overlay

EVPN VRF/VRFs Space

Page 36: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

36

图 19 支持多租户外部路由的 MP-BGP EVPN VXLAN 架构

边缘叶

每个覆盖 VRF

一个第 3 层接

口。路由协议邻

居位于 EVPN

VRF 地址族中。

重叠 EVPN VRF A 重叠 EVPN VRF B 重叠 EVPN VRF C 接口类型选项:

物理路由端口

子接口

汇 聚 端 口 上 的

SVI VLAN 接口

外部设备上的第

3 层接口可位于

租户 VRF 或全

局默认 VRF

中。

租户 VRF 或默认 VRF

边缘路由器

VXLAN EVPN 边缘叶和外部路由器间 eBGP 配置示例

以下是 VXLAN 边缘叶和外部路由器间 eBGP 路由的配置示例。eBGP 会话不但位于边缘叶上的租户 VRF 中,

而且位于默认路由表中,供外部路由器共享外部路由。

在边缘叶上,BGP 通过配置,广播 VXLAN IP 子网前缀。默认状态下,BGP 将广播 MP-BGP EVPN IP 主机

路由。配置示例中采用路由过滤器,拦截/32 IP 主机路由,以便只有前缀路由能够广播到外部路由器。因为

外部无需特定主机路由来传输入站流量,所以使路由器提高了外部路由可扩展性。

Tenant VRF or Default VRF

VRF OSPF Process

Overlay EVPN

VRF A

Overlay EVPN

VRF B

Overlay EVPN

VRF C

VRFA

Layer-3 interfaces, one per overlay VRF. Routing protocol neighbor is in

EVPN VRF address family

Layer-3 interfaces on the external devices can be either in tenant VRFs or

the global default VRF.

Edge Router

VRFB VRFC Interface type Options: • Physical routed ports • Sub-interfaces

• SVI VLAN interfaces over trunk ports

Border Leaf

Page 37: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

37

在 VXLAN 边缘叶上:

外部 eBGP 邻居。它位于租户 VRF 路由实例的地址族 ipv4 单播中。

为提高可扩展性,应用前缀列表,过滤出/32 IP 主机路由。只将前缀路由广播到外部 eBGP 邻居。

外部路由器上的 BGP 配置

router bgp 100

router-id 10.1.1.16

log-neighbor-changes

address-family ipv4 unicast

address-family l2vpn evpn

neighbor 10.1.1.1 remote-as 100

update-source loopback0

address-family ipv4 unicast

address-family l2vpn evpn

send-community extended

neighbor 10.1.1.2 remote-as 100

update-source loopback0

address-family ipv4 unicast

address-family l2vpn evpn

send-community extended

vrf evpn-tenant-1

address-family ipv4 unicast

network 20.0.0.0/24

neighbor 30.10.1.2 remote-as 200

address-family ipv4 unicast

prefix-list outbound-no-hosts out

ip prefix-list outbound-no-hosts seq 5 deny 0.0.0.0/0 eq 32

ip prefix-list outbound-no-hosts seq 10 permit 0.0.0.0/0 le 32

OntheVXLANBorderLeaf:

eBGPneighborontheoutside.It’sinaddress-familyipv4unicastofthetenantVRFrou nginstance.

Forbe erscalability,applyprefix-listtofilterout/32IPhostroutes.Onlyadver seprefixroutestotheexternaleBGPneighbor.

Page 38: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

38

在上述示例中,VXLAN VNI 子网路由 20.0.0.0/24 通过全局路由表中显示的 vrf-lite eBGP,广播到外部路由

器,如下所示:

从外部路由器学习到的路由,通过 MP-BGP EVPN 协议,经由边缘叶分发到 VXLAN 架构。以下是内部

VXLAN VTEP 上外部路由的捕获。VTEP 经由路由反射器,从边缘叶学习外部路由。路由通过 MP-BGP

EVPN 分发。

外部路由通过 EVPN 分发,并导入租户 VRF

N9372TX-2-ext# sh ip bgp 20.0.0.0/24

BGP routing table information for VRF default, address family IPv4 Unicast

BGP routing table entry for 20.0.0.0/24, version 36

Paths: (1 available, best #1)

Flags: (0x00001a) on xmit-list, is in urib, is best urib route

Advertised path-id 1

Path type: external, path is valid, is best path, no labeled nexthop

AS-Path: 100 , path sourced external to AS

30.10.1.1 (metric 0) from 30.10.1.1 (20.0.0.1)

Origin IGP, MED not set, localpref 100, weight 0

Path-id 1 not advertised to any peer

N9372TX-2-ext#

N9372TX-2-ext# sh ip route 20.0.0.0/24

IP Route Table for VRF "default"

20.0.0.0/24, ubest/mbest: 1/0

*via 30.10.1.1, [20/0], 1w2d, bgp-200, external, tag 100

N9372TX-2-ext#

n9396-vtep-1# sh vrf evpn-tenant-1 detail

VRF-Name: evpn-tenant-1, VRF-ID: 3, State: Up

VPNID: unknown

RD: 10.1.1.11:3

VNI: 39000

Max Routes: 0 Mid-Threshold: 0

Table-ID: 0x80000003, AF: IPv6, Fwd-ID: 0x80000003, State: Up

Table-ID: 0x00000003, AF: IPv4, Fwd-ID: 0x00000003, State: Up

n9396-vtep-1#

n9396-vtep-1# sh bgp l2vpn evpn rd 10.1.1.11:3 100.0.0.0

BGP routing table information for VRF default, address family L2VPN EVPN

Route Distinguisher: 10.1.1.11:3 (L3VNI 39000)

BGP routing table entry for [5]:[0]:[0]:[24]:[100.0.0.0]:[0.0.0.0]/224, version 324

Paths: (1 available, best #1)

Flags: (0x00001a) on xmit-list, is in l2rib/evpn

Advertised path-id 1

Path type: internal, path is valid, is best path, no labeled nexthop

Imported from 10.1.1.16:3:[5]:[0]:[0]:[24]:[100.0.0.0]:[0.0.0.0]/120

AS-Path: NONE, path sourced internal to AS

10.1.1.16 (metric 3) from 10.1.1.1 (10.1.1.1)

Origin IGP, MED not set, localpref 100, weight 0

Received label 39000

Extcommunity: RT:100:39000 ENCAP:8 Router MAC:6412.2574.6ae7

Originator: 10.1.1.16 Cluster list: 10.1.1.1

Path-id 1 not advertised to any peer

n9396-vtep-1#

TheexternalrouteisdistributedthroughEVPNandimportedintothetenantVRF

Page 39: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

39

外部路由

下一跳为边缘叶的 VTEP 地址

租户 VRF L3 VNI

10.1.1.16 为边缘叶的 BGP 路由器 ID

10.1.1.1 为网脊路由反射器

iBGP 路由

下一跳为边缘叶的 VTEP 地址

VXLAN EVPN 边缘叶和外部路由器间 OSPF 配置示例

图 20 是将 OSPF 用作 EVPN VXLAN 边缘叶上的外部路由协议,与外部交换传输路由的示例。考虑到多租户

因素,该示例使用子接口进行边缘叶和外部路由器间的路由。通过子接口,多个租户能够共享相同物理链接,

进行外部路由,边缘叶上每个租户 VRF 路由实例对应一个子接口。在此例中,外部路由器上的路由位于默认

VRF 中。通过在外部设备上配置 vrf-lite 子接口,也可能将租户 VRF 扩展到外部设备。

n9396-vtep-1# sh ip bgp vrf evpn-tenant-1 100.0.0.0

BGP routing table information for VRF evpn-tenant-1, address family IPv4 Unicast

BGP routing table entry for 100.0.0.0/24, version 70

Paths: (1 available, best #1)

Flags: (0x08041a) on xmit-list, is in urib, is best urib route vpn: version 75, (0x100002) on xmit-list

Advertised path-id 1, VPN AF advertised path-id 1

Path type: internal, path is valid, is best path, no labeled nexthop

Imported from unknown dest

AS-Path: NONE, path sourced internal to AS

10.1.1.16 (metric 3) from 10.1.1.1 (10.1.1.1)

Origin IGP, MED not set, localpref 100, weight 0

Received label 39000

Extcommunity: RT:100:39000 ENCAP:8 Router MAC:6412.2574.6ae7

Originator: 10.1.1.16 Cluster list: 10.1.1.1

VRF advertise information:

Path-id 1 not advertised to any peer

VPN AF advertise information:

Path-id 1 not advertised to any peer

n9396-vtep-1#

n9396-vtep-1# sh ip route vrf evpn-tenant-1 100.0.0.0/24

IP Route Table for VRF "evpn-tenant-1"

'*' denotes best ucast next-hop

'**' denotes best mcast next-hop

'[x/y]' denotes [preference/metric]

'%<string>' in via output denotes VRF <string>

100.0.0.0/24, ubest/mbest: 1/0

*via 10.1.1.16%default, [200/0], 01:01:14, bgp-100, internal, tag 100 (evpn)segid: 0x9858 tunnelid:

0xa010110 encap: 1

n9396-vtep-1#

Theexternalroute

ThetenantVRFL3VNI

Next-hopistheVTEPaddressoftheborderleaf

10.1.1.16isBGProuter-IDoftheborderleaf.10.1.1.1isthespineroutereflector

iBGProuteNext-hopistheVTEPaddressoftheborderleaf

Page 40: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

40

图 20 采用 OSPF 的 EVPN VXLAN 外部路由

VXLAN 覆盖 EVPN VRF/VRF 空间 网脊

边缘叶

默认 VRF 中的 IP 路由

IPRou ng

inthedefaultVRF

VTEP

VTEP

VTEP

VTEP

Spine RR RR

VXLAN Overlay

EVPN VRF/VRFs Space

VTEP

Border Leaf interface Ethernet2/9.10

mtu 9216

encapsulation dot1q 10

vrf member evpn-tenant-1

ip address 30.10.1.1/30

ip router ospf 1 area 0.0.0.0

no shutdown

interface Ethernet1/50.10

mtu 9216

encapsulation dot1q 10

ip address 30.10.1.2/30

ip router ospf 1 area 0.0.0.0

no shutdown

Page 41: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

41

以下是边缘叶上的相关配置:

将 BGP 路由重新分发到 OSPF。

过滤出 /32 IP 主机路由。

当一个 BGP 路由器是 ASBR 时,它将修改 l2vpn evpn 路由中的路由目标。需要保留原始路由目

标。

将 OSPF 重新分发到 BGP。

将重新分发的路由广播到 L2VPN EVPN。

在此设计中,边缘叶通过租户 VRF 实例中的 OSPF 学习外部路由。它将路由重新分发到 VRF 实例中的 MP-

BGP ,然后通过 MP-BGP L2VPN EVPN 将它们广播到内部 VXLAN VTEP。

ip prefix-list bgp-ospf-no-hosts seq 5 permit 0.0.0.0/0 eq 32

route-map permit-bgp-ospf deny 5

match ip address prefix-list bgp-ospf-no-hosts

route-map permit-bgp-ospf permit 10

route-map permit-ospf-bgp permit 10

router ospf 1

router-id 10.1.1.16

vrf evpn-tenant-1

redistribute bgp 100 route-map permit-bgp-ospf

router bgp 100

router-id 10.1.1.16

log-neighbor-changes

address-family ipv4 unicast

address-family l2vpn evpn

retain route-target all

neighbor 10.1.1.1 remote-as 100

update-source loopback0

address-family ipv4 unicast

address-family l2vpn evpn

send-community extended

neighbor 10.1.1.2 remote-as 100

update-source loopback0

address-family ipv4 unicast

address-family l2vpn evpn

send-community extended

vrf evpn-tenant-1

address-family ipv4 unicast

advertise l2vpn evpn

redistribute ospf 1 route-map permit-ospf-bgp

RedistributeBGProutesintoOSPF.Filterout/32IPhostroutes.

ABGProuterwillmodifyroute-targetsinl2vpnevpnrouteswhenitisanASBR.Needtoretaintheoriginalroute-target.

RedistributeOSPFintoBGP.Adver setheredistributedroutesintoL2VPNEVPN.

Page 42: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

42

以下是一个边缘叶上外部路由分发示例:

通过租户 VRF 中的 OSPF,学习一个外部路由

外部 OSPF 路由重新分发到 BGP ,并通过 MP-BGP L2VPN EVPN ,分发到其它 VTEP

BGP 下一跳是边缘叶的 VTEP 地址

MP-BGP EVPN 路由广播到 BGP 对等设备

n9396-border-leaf# sh ip route 100.0.0.0/24 vrf evpn-tenant-1

IP Route Table for VRF "evpn-tenant-1”

100.0.0.0/24, ubest/mbest: 1/0

*via 30.10.1.2, Eth2/9.10, [110/2], 01:43:07, ospf-1, intra

n9396-border-leaf# sh bgp l2vpn evpn 100.0.0.0 vrf evpn-tenant-1

BGP routing table information for VRF default, address family L2VPN EVPN

Route Distinguisher: 10.1.1.16:3 (L3VNI 39000)

BGP routing table entry for [5]:[0]:[0]:[24]:[100.0.0.0]:[0.0.0.0]/224, version 325

Paths: (1 available, best #1)

Flags: (0x00000a) on xmit-list, is not in l2rib/evpn

Advertised path-id 1

Path type: local, path is valid, is best path, no labeled nexthop

AS-Path: NONE, path locally originated

10.1.1.16 (metric 0) from 0.0.0.0 (10.1.1.16)

Origin IGP, MED not set, localpref 100, weight 32768

Received label 39000

Extcommunity: RT:100:39000

Path-id 1 advertised to peers:

10.1.1.1 10.1.1.2

n9396-border-leaf#

AnexternalroutelearnedthroughOSPFinthetenantVRF

TheexternalOSPFrouteisredistributedintoBGPanddistributedtootherVTEPsthroughMP-BGPL2VPNEVPN

TheBGPnext-hopistheVTEPaddressoftheborderleaf.

TheMP-BGPEVPNrouteisadver sedtoBGPpeers.

Page 43: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

43

内部 VTEP 通过 MP-BGP EVPN 学习外部路由:

通过 MP-BGP EVPN 学习到的外部路由,导入租户 VRF

下一跳是边缘叶的 VTEP 地址

租户 VRF 路由实例的第 3 层 VNI

EVPN VXLAN 边缘叶的可扩展性考虑因素

VXLAN 边缘叶是 VXLAN 架构与外部的连接点。它们学习外部路由,并通过 MP-BGP EVPN 将其重新分发

到其它 VTEP。同时,它们向外部广播位于 VXLAN 架构上的公共子网。

到 EVPN VXLAN 架构的外部路由分发

边缘叶可能从外部接收大量外部路由。因为边缘叶通常是架构内部设备的出口网关,它可能无需将所有外部

路由分发到架构中。相反,较好的做法是,先总结路由,再将它们广播到 MP-BGP EVPN。某些情况下,将

每租户一个默认路由广播到架构中就已足够。减少所分发外部路由数目,将确保内部 VTEP 设备不会耗尽

LPM 路由表资源。它还能减轻内部 VTEP 的 MP-BGP EVPN 控制平面负担,从而提高控制平面性能。

EVPN VXLAN 架构对外的内部网络广播

一个 EVPN VXLAN 覆盖网络中的部分第 3 层子网需要从外部可达。边缘叶需为这些公共子网广播第 3 层可

达性信息。MP-BGP EVPN 可能对外分发 IP 主机路由和内部子网前缀路由。在边缘叶和外部路由器间的路

由协议会话中,建议采用过滤器,以避免将内部 IP 主机路由发送到外部。大多数情况下,外部网络需要的是

用于公共子网的 LPM 前缀路由,以便向 VXLAN 架构发送流量。

边缘叶上的 EVPN 租户可扩展性

边缘叶为 VXLAN 覆盖网络中的租户提供外部连接。它们需要参与所有租户 VRF 路由实例,在其中起到边缘

叶作用。进行大规模多租户设计时,必须小心,不要超出一个边缘叶能够支持的最大 EVPN L3 VRF 数目。

n9396-vtep-1# sh vrf evpn-tenant-1 detail

VRF-Name: evpn-tenant-1, VRF-ID: 3, State: Up

VPNID: unknown

RD: 10.1.1.11:3

VNI: 39000

Max Routes: 0 Mid-Threshold: 0

Table-ID: 0x80000003, AF: IPv6, Fwd-ID: 0x80000003, State: Up

Table-ID: 0x00000003, AF: IPv4, Fwd-ID: 0x00000003, State: Up

n9396-vtep-1# sh bgp l2vpn evpn rd 10.1.1.11:3 100.0.0.0

BGP routing table information for VRF default, address family L2VPN EVPN

Route Distinguisher: 10.1.1.11:3 (L3VNI 39000)

BGP routing table entry for [5]:[0]:[0]:[24]:[100.0.0.0]:[0.0.0.0]/224, version 396

Paths: (1 available, best #1)

Flags: (0x00001a) on xmit-list, is in l2rib/evpn

Advertised path-id 1

Path type: internal, path is valid, is best path, no labeled nexthop

Imported from 10.1.1.16:3:[5]:[0]:[0]:[24]:[100.0.0.0]:[0.0.0.0]/120

AS-Path: NONE, path sourced internal to AS

10.1.1.16 (metric 3) from 10.1.1.1 (10.1.1.1)

Origin IGP, MED not set, localpref 100, weight 0

Received label 39000

Extcommunity: RT:100:39000 ENCAP:8 Router MAC:6412.2574.6ae7

Originator: 10.1.1.16 Cluster list: 10.1.1.1

Path-id 1 not advertised to any peer

n9396-vtep-1#

TheexternalroutelearnedthroughMP-BGPEVPN,getsimportedintothetenantVRF.

TheL3VNIofthetenantVRFrou nginstance

Thenext-hopistheVTEPaddressoftheborderleaf

Page 44: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

44

边缘叶上的 IP 主机路由可扩展性

为了确保最优转发目的地为内部终端主机的入站流量,边缘叶需要为租户公共子网中的终端主机执行基于 IP

主机的路由。这意味着,边缘叶需要学习主机路由,并将其存储到 IP 主机路由的硬件转发表中。IP 主机表

的大小决定了租户公共子网中可部署的终端主机总数。

7 通过 MP-BGP EVPN VXLAN 进行数据中心互联

虽然 OTV 和 VPLS 仍然是目前最成熟的第 2 层数据中心互联(DCI)解决方案,但在某些部署环境中,采用

MP-BGP EVPN 控制平面的 VXLAN 不失为一个出色的替代方案。当在数据中心部署 VXLAN 时,因为它为

数据中心内外提供了统一网络覆盖解决方案,所以使用它来互联数据中心,能够简化网络整体设计,降低复

杂度。

图 21 为一个采用 MP-BGP EVPN VXLAN 的简单数据中心和 DCI 设计。在此设计中,每个数据中心保留自

己的 BGP AS ,并部署运行 MP-iBGP 和路由反射器的 EVPN VXLAN 架构,以实现出色简洁性和可扩展性。

在数据中心之间,它们的 DCI 边缘叶相互运行多跳 MP-eBGP EVPN 。藉此,两个数据中心实现互联,形成

一个统一 MP-BGP EVPN 路由域。在控制平面中,EVPN 路由将借助数据中心间的 iBGP-eBGP-iBGP 路径

分发。在数据平面中,当数据中心 A 的一个终端主机向数据中心 B 的另一主机发送流量时,数据分组将穿越

一个 VXLAN 隧道,由数据中心 A 的入口 VTEP 封装,由数据中心 B 的出口 VTEP 解除封装。由此在覆盖网

络中提供了最高效的 DCI 数据转发。

图 21 提供统一 MP-BGP EVPN 管理域的 DCI 解决方案

DCI 边缘叶 DCI 边缘叶

数据中心间 EVPN eBGP(多跳)

跨越两个数据中心的一个 EVPN 管理域

图 22 是另一种采用 MP-BGP EVPN 的 DCI 设计。它为每个数据中心提供一个独立 MP-iBGP EVPN 域,并

通过 DCI VTEP 间的数据中心间 MP-eBGP EVPN 域,将它们互联。如果不直接连接,则 DCI VTEP 间的

MP-eBGP 会话必须为多跳。该设计能够灵活地在每个数据中心部署不同 EVPN 运行或功能模式。此外,它

还提高了数据中心可扩展性,采用数据中心间 VTEP 对等连接,允许每个数据中心有自己的 EVPN 域。

VXLAN Overlay

EVPN VRF/VRFs Space

Global Default VRF

Or User Space VRFs

VTEP VTEP VTEP VTEP VTEP VTEP

DCI Border Leaf

VTEP VTEP VTEP VTEP VTEP VTEP

DCI Border Leaf DC B

EVPN iBGP

Inter-DC EVPN eBGP (multi-hop)

DC A EVPN iBGP

One EVPN Administrative Domain Stretched Across Two Data Centers

Page 45: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

45

图 22 采用两个独立 MP-BGP EVPN 管理域的 DCI

边缘叶 边缘叶

EVPN 管理域 A VLAN 切换 EVPN 管理域 B

数据中心间 EVPN 管理域

8 结论

MP-BGP EVPN 改变了 VXLAN 覆盖网络的模式。它引入控制平面学习机制,为任意规模的网络提供统一信

号转发数据库,无需再依靠洪泛和学习。MP-BGP EVPN 这项简单的互操作技术,以行业标准草案为基础,

是多家厂商和服务供应商密切合作的结晶。它为覆盖网络提供了集成桥接和路由功能,优化了流量的交付。

借助 NX-OS 软件的 MP-BGP EVPN 功能和 Nexus 硬件的 VXLAN 路由功能,Nexus 交换机能够构建最为强

大、性能出众、具备最高可扩展性的 VXLAN 覆盖网络。

9 参考资料

IETF 草案 – 基于 BGP MPLS 的以太网 VPN

https://tools.ietf.org/html/draft-ietf-l2vpn-evpn-11

IETF 草案 – 采用 EVPN 的网络虚拟化覆盖解决方案

https://tools.ietf.org/html/draft-ietf-bess-evpn-overlay-00

IETF 草案 – EVPN 中的集成路由和桥接

https://tools.ietf.org/html/draft-ietf-bess-evpn-inter-subnet-forwarding-00

IETF 草案 – EVPN 中的 IP 前缀广播

https://tools.ietf.org/html/draft-rabadan-l2vpn-evpn-prefix-advertisement-02

RFC4271 – 边界网关协议 4(BGP-4)

https://tools.ietf.org/html/rfc4271

VXLAN Overlay

EVPN VRF/VRFs Space

Global Default VRF

Or User Space VRFs

VTEP VTEP VTEP VTEP VTEP VTEP

RR RR

DCI VTTEP

VTEP VTEP VTEP VTEP VTEP VTEP

RR RR

Border Leaf

DC B iBGP

Inter-DC eBGP

DC A iBGP

EVPN Administrative Domain A

VTEP VTEP VTEP VTEP

EVPN Administrative Domain B

Inter-DC EVPN Administrative Domain

VLAN Hand-off

DCI VTTEP

Border Leaf

Page 46: 采用 MP-BGP EVPN 控制平面的 VXLAN 网络设计指南 · mp-bgp evpn 的典型vxlan 覆盖网络设计。 本白皮书不包括vxlan 基本要素、采用基于组播的洪泛和学习模式的vxlan

46

RFC4760 -- BGP-4 多协议扩展

https://tools.ietf.org/html/rfc4760

RFC4364 -- BGP/MPLS IP 虚拟专用网(VPN)

https://tools.ietf.org/html/rfc4364#page-15