使用以太网 VPN (EVPN) 的网络虚拟化Overlay解决方案

简介: 关键词“必须”、“不得”、“要求”、“应该”、“不应该”、“应该”、“不应该”、“推荐”、“不推荐”、“可以”和“可选” “当且仅当它们以所有大写字母出现时,本文档中的内容将按照 BCP 14 [RFC2119] [RFC8174] 中的描述进行解释,如此处所示。

640.gif


RFC8365:A Network Virtualization Overlay Solution Using Ethernet VPN (EVPN),March 2018


梗概


本文档详细说明了以太网 VPN (Ethernet VPN,EVPN) 如何用作网络虚拟化Overlay (Network Virtualization Overlay,NVO) 解决方案,并探讨了 IP 上的各种隧道封装选项及其对 EVPN 控制平面和程序的影响。特别地,分析了以下封装选项:虚拟可扩展局域网 (Virtual Extensible LAN,VXLAN)使用通用路由封装的网络虚拟化 (Network Virtualization using Generic Routing Encapsulation,NVGRE) 和 MPLS over GRE。本规范也适用于通用网络虚拟化封装(Generic Network Virtualization Encapsulation,GENEVE);但是,需要一些增量工作,这将在单独的文件中介绍。该文件还规定了用于水平分割过滤和批量撤销的新多宿主程序。它还规定了 VXLAN/NVGRE 封装的 EVPN 路由结构和网络虚拟化边缘 (Network Virtualization Edge,NVE) 设备多宿主的自治系统边界路由器 (Autonomous System Border Router,ASBR) 程序。


本备忘录的状态


这是一个 Internet 标准跟踪文档。


本文档是 Internet 工程任务组 (IETF) 的产品。它代表了 IETF 团体的共识。它已接受公众审查,并已被互联网工程指导小组 (IESG) 批准出版。有关 Internet 标准的更多信息,请参见 RFC 7841 的第 2 节。

有关本文档当前状态、任何勘误以及如何提供反馈的信息,请访问 https://www.rfc-editor.org/info/rfc8365


版权声明


版权所有 (c) 2018 IETF Trust 和确定为文档作者的人员。版权所有。


本文档受 BCP 78 和 IETF 信托与 IETF 文档相关的法律规定 (https://trustee.ietf.org/license-info) 的约束,该规定在本文档发布之日生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文档中提取的代码组件必须包含 Trust Legal Provisions 第 4.e 节中所述的简化 BSD 许可文本,并且不提供如简化 BSD 许可中所述的保证。


1、 介绍


本文档详细说明了以太网 VPN (EVPN) [RFC7432-基于BGP MPLS的EVPN] 如何用作网络虚拟化Overlay (NVO) 解决方案,并探讨了 IP 上的各种隧道封装选项及其对 EVPN 控制平面和程序的影响。特别地,分析了以下封装选项:虚拟可扩展局域网 (VXLAN) [RFC7348-VXLAN基于三层网络实现二层虚拟化的框架]、使用通用路由封装的网络虚拟化 (NVGRE) [RFC7637] 和基于通用路由封装 (GRE) 的 MPLS [RFC4023]。本规范也适用于通用网络虚拟化封装(GENEVE)[GENEVE];但是,需要一些增量工作,这将在单独的文档 [EVPN-GENEVE] 中介绍。该文件还规定了用于水平分割过滤和批量撤销的新多宿主程序。它还规定了 VXLAN/NVGRE 封装的 EVPN 路由结构和网络虚拟化边缘 (NVE) 设备多宿主的自治系统边界路由器 (ASBR) 程序。


在本文档的环境中,NVO 是一种解决多租户数据中心需求的解决方案,尤其是具有虚拟化主机(例如虚拟机 (Virtual Machines,VM) 或虚拟工作负载)的数据中心。如 [RFC7364] 中所述,此类解决方案的关键要求如下:


- 隔离每个租户的网络流量


- 支持大量租户(数万或数十万)


- 跨数据中心内或不同数据中心之间不同交付点 (Points of Delivery,PoD) 的属于指定租户段(子网)的不同 VM 之间的2层 (Layer 2,L2) 连接扩展


- 允许指定的 VM 在指定的 L2 段内的不同物理连接点之间迁移


假设 NVO 解决方案的底层网络提供 NVO 端点之间的 IP 连接。


本文档描述了如何将 EVPN 用作 NVO 解决方案,并探讨 EVPN 功能和程序的适用性。特别地,它描述了 EVPN over IP 的各种隧道封装选项及其对 EVPN 控制平面的影响以及两个主要场景的程序:


(a) 单宿主 NVE - 当 NVE 驻留在虚拟机管理程序中时,以及

(b) 多宿主 NVE - 当 NVE 驻留在架顶式 (Top-of-Rack,ToR) 设备中时。


本文档中分析的 EVPN Overlay的可能封装选项包括:


- VXLAN 和 NVGRE

- MPLS over GRE


在开始介绍 EVPN over IP 的不同封装选项之前,重要的是强调 EVPN 解决方案的主要功能、这些功能当前的支持方式以及封装对这些功能的任何影响。


2、 需求符号和约定


关键词“必须”、“不得”、“要求”、“应该”、“不应该”、“应该”、“不应该”、“推荐”、“不推荐”、“可以”和“可选” “当且仅当它们以所有大写字母出现时,本文档中的内容将按照 BCP 14 [RFC2119] [RFC8174] 中的描述进行解释,如此处所示。


3、 术语


本文档中使用的大部分术语来自 [RFC7432-基于BGP MPLS的EVPN] 和 [RFC7365-数据中心(DC)网络虚拟化框架]。


VXLAN:Virtual Extensible LAN,虚拟可扩展局域网

GRE:Generic Routing Encapsulation,通用路由封装

NVGRE:Network Virtualization using Generic Routing Encapsulation,使用通用路由封装的网络虚拟化

GENEVE:Generic Network Virtualization Encapsulation,通用网络虚拟化封装

PoD:Point of Delivery,交付点

NV:Network Virtualization,网络虚拟化

NVO:Network Virtualization Overlay,网络虚拟化Overlay

NVE:Network Virtualization Edge,网络虚拟化边缘

VNI:VXLAN Network Identifier,VXLAN 网络标识符

VSID:Virtual Subnet Identifier,虚拟子网标识符(用于 NVGRE)

I-SID:Service Instance Identifier,服务实例标识符

EVPN:Ethernet VPN,以太网VPN

EVI:EVPN Instance,EVPN 实例。跨越参与该 EVPN 的提供商边缘 (Provider Edge,PE) 设备的 EVPN 实例

MAC-VRF:PE 上媒体访问控制 (Media Access Control,MAC) 地址的虚拟路由和转发表(Virtual Routing and Forwarding table)

IP-VRF:PE 上 Internet 协议 (Internet Protocol,IP) 地址的虚拟路由和转发表(Virtual Routing and Forwarding table)

ES:Ethernet Segment,以太网段。当客户站点(设备或网络)通过一组以太网链路连接到一个或多个 PE 时,该组链路称为“以太网段”。

ESI:Ethernet Segment Identifier,以太网段标识符,标识以太网段的唯一非零标识符称为“以太网段标识符”。

Ethernet Tag:以太网标签,以太网标签标识特定的广播域,例如 VLAN。一个 EVPN 实例由一个或多个广播域组成。

PE:Provider Edge,提供商边缘

Single-Active Redundancy Mode:单活冗余模式,当连接到 ES 的所有 PE 中只有一个 PE 被允许向/从该 ES 转发指定 VLAN 的流量时,以太网段被定义为在单活冗余中运行模式。

All-Active Redundancy Mode:全活冗余模式,当允许连接到以太网段的所有 PE 向/从该 ES 转发指定 VLAN 的已知单播流量时,ES 被定义为在全活冗余模式下运行。

PIM-SM:Protocol Independent Multicast - Sparse-Mode,协议独立组播 - 稀疏模式

PIM-SSM:Protocol Independent Multicast - Source-Specific Multicast,协议独立组播 - 特定于源的组播

BIDIR-PIM:Bidirectional PIM,双向 PIM


4、 EVPN 功能


EVPN [RFC7432-基于BGP MPLS的EVPN] 最初旨在支持 [RFC7209-EVPN:以太网VPN的要求] 中详述的要求,因此具有以下直接解决控制平面扩展和易于部署问题的属性。


1. 控制平面信息通过 BGP 分发,广播和组播流量使用共享组播树或入口复制发送。

2. 控制平面学习用于 MAC(和 IP)地址,而不是数据平面学习。后者需要未知单播和地址解析协议 (Address Resolution Protocol,ARP) 帧的泛洪;而前者不需要任何泛洪。

3. 路由反射器(Route Reflector,RR)用于将 PE 设备之间的全网状 BGP 会话减少为 PE 和 RR 之间的单个 BGP 会话。此外,可以利用 RR 层次结构来扩展 RR 上 BGP 路由的数量。

4. 通过BGP自动发现用于发现参与指定VPN的PE设备、参与指定冗余组的PE设备、隧道封装类型、组播隧道类型、组播成员等。

5. 使用全活多宿主。这允许指定的客户边缘 (Customer Edge,CE) 设备具有到多个 PE 的多条链路,并且进出该 CE 的流量充分利用所有这些链路。

6. 当CE 和PE 之间的链路发生故障时,通过撤消单个EVPN 路由通知该EVI 的PE。这允许这些 PE 删除作为与故障链路关联的每个 MAC 地址的下一跳的撤销 PE。这被称为“大规模撤销”。

7. 利用 BGP 路由过滤和约束路由分发来确保指定 EVI 的控制平面流量仅分发到该 EVI 中的 PE。

8. 当CE和PE之间使用IEEE 802.1Q [IEEE.802.1Q]接口时,该接口上的每个VLAN ID(VID)都可以映射到一个网桥表(最多4094个这样的网桥表)。所有这些网桥表都可以映射到单个 MAC-VRF(在 VLAN 感知绑定服务的情况下)。

9. VM 迁移机制确保指定 EVI 中的所有 PE 知道指定 VM(由其 MAC 和 IP 地址标识)当前与其关联的 ES。

10. RT 用于允许操作员(或客户)定义一系列逻辑网络拓扑,包括网状、中心辐射和外联网(例如,站点由不同企业拥有的 VPN),而无需专有软件或其他虚拟或物理设备的帮助。


由于 NVO 的设计目标是每个通用物理基础设施有数百万个实例,因此 NVO 控制平面的扩展特性极其重要。EVPN 和此处描述的扩展在设计时就考虑到了这种级别的可扩展性。


5、 EVPN Overlay的封装选项


5.1、 VXLAN/NVGRE 封装


VXLAN 和 NVGRE 都是提供数据平面封装的技术示例,该封装用于通过网络虚拟化边缘 (NVE) 之间的公共物理 IP 基础设施传输数据包,例如 VXLAN 网络中的 VXLAN 隧道端点 (VXLAN Tunnel End Points,VTEP)。这两种技术都在每个数据包中包含特定 NVO 实例的标识符,VXLAN 中的 VNI 和 NVGRE 中的 VSID。在本文档的其余部分,我们使用 VNI 作为 NVO 实例的表示,并理解如果封装是 NVGRE,则 VSID 也可以同等使用,除非另有说明。


请注意,PE 等效于 NVE/VTEP。


VXLAN 封装基于UDP,UDP 头后面有一个8 字节的头。VXLAN 提供 24 位 VNI,通常提供到租户 VID 的一对一映射,如 [RFC7348] 中所述。在这种情况下,入口 VTEP 在封装的帧上不包含内层 VLAN 标记,出口 VTEP 会丢弃带有内层 VLAN 标记的帧。[RFC7348] 中的这种操作模式映射到 [RFC7432] 中的基于 VLAN 的服务,其中租户 VID 被映射到 EVI。

如果在 VTEP 中明确配置,VXLAN 还提供了在封装帧中包含内部 VLAN 标记的选项。这种操作模式可以映射到 [RFC7432] 中的 VLAN Bundle Service,因为所有租户的标记帧都映射到单个网桥表/MAC-VRF,并且在执行 VXLAN 解封装时,内部 VLAN 标记不被配置 PE 用于查找在 [RFC7348] 的第 6 节中描述。


[RFC7637] 封装基于 GRE 封装,它要求包含可选的 GRE Key 字段,该字段携带 VSID。VSID 和租户 VID 之间存在一对一的映射,如 [RFC7637] 中所述。禁止包含内部 VLAN 标记。[RFC7637] 中的这种操作模式映射到 [RFC7432] 中的基于 VLAN 的服务。


如下一节所述,除了使用 BGP 封装扩展团体来指示封装类型(例如,VXLAN 或 NVGRE)外,EVPN 路由的编码没有更改以支持 VXLAN 或 NVGRE 封装。但是,根据 NVE 所在的位置(即在管理程序或 ToR 中)以及是否需要多宿主功能,对 EVPN 程序有潜在影响。


5.1.1、 虚拟标识符范围


尽管 VNI 被定义为 24 位全局唯一值,但在某些情况下,需要为 VNI 使用本地有效值,尤其是在数据中心互连的环境中。


5.1.1.1、 数据中心与网关互联


在不同数据中心的NVE需要互联的情况下,NVE需要使用VNI作为数据中心内的全局唯一标识符,那么就需要在数据中心网络(data-center network,DCN)的边缘采用网关(Gateway,GW)。这是因为网关将在跨越网络边界时提供转换 VNI 的功能,这可能与操作员的控制范围边界一致。例如,考虑图 1 的网络。假设有三个网络操作员:DC1、DC2 和 WAN 网络各有一个。位于数据中心边缘的网关负责在每个 DCN 中使用的值和 WAN 中使用的值之间转换 VNI。


640.png


图 1:数据中心与网关互连


5.1.1.2、 无网关的数据中心互连


在不同数据中心的NVE需要互联的情况下,NVE需要使用本地分配的VNI(例如,类似于MPLS标签),可能不需要在DCN的边缘部署网关。更具体地说,发送 NVE 使用的 VNI 值由接收流量的 NVE 分配(换句话说,这类似于“下游分配的”MPLS 标签)。这允许 VNI 空间在不同 DCN 之间解耦,而无需在数据中心边缘使用专用网关。此主题在第 10.2 节中介绍。


640.png

图 2:数据中心互连与 ASBR


5.1.2、 虚拟标识符到 EVI 映射


就像在 [RFC7432] 中,存在两个选项用于将广播域(由 VLAN ID 表示)映射到 EVI,当 EVPN 控制平面与 VXLAN(或 NVGRE 封装)结合使用时,也有两个选项用于映射广播由 VXLAN VNI(或 NVGRE VSID)表示的域到 EVI:


选项 1:每个 EVI 一个广播域


在此选项中,由 VNI 表示的单个以太网广播域(例如,子网)映射到唯一的 EVI。这对应于 [RFC7432] 中的基于 VLAN 的服务,其中面向租户的接口、逻辑接口(例如,由 VID 表示)或物理接口被映射到 EVI。因此,每个 NVE 上的每个 VNI 都需要一个 BGP 路由识别符 (Route Distinguisher,RD) 路由目标 (Route Target,RT)。该模型的优点是它允许使用 BGP RT 约束机制,以将路由的传播和导入限制为仅对指定 VNI 感兴趣的 NVE。如果 RD 和 RT 不是从 VNI 自动派生的,则此模型的缺点可能是配置开销。


在此选项中,MAC-VRF 表由控制平面中的 RT 和数据平面中的 VNI 标识。在此选项中,特定的 MAC-VRF 表仅对应于单个网桥表。


选项 2:每个 EVI 多个广播域


在此选项中,多个子网(每个子网由唯一的 VNI 表示)映射到单个 EVI。例如,如果租户有多个段/子网,每个段/子网都由一个 VNI 表示,那么该租户的所有 VNI 都映射到单个 EVI;例如,这种情况下的 EVI 代表租户而不是子网。这对应于 [RFC7432] 中的 VLAN 感知绑定服务。此模型的优点是不需要为每个 VNI 配置 RD/RT。但是,与使用自动推导的选项 1 相比,这是一个有争议的问题。此模型的缺点是路由将由可能对指定 VNI 不感兴趣的 NVE 导入。


在该选项中,MAC-VRF表由控制平面中的RT标识;该 MAC-VRF 的特定桥接表由控制平面中的 <RT, Ethernet Tag ID> 标识。在此选项中,数据平面中的 VNI 足以识别特定的桥接表。


5.1.2.1、 RT 的自动推导


为了简化配置,当使用每个 EVI 的单个 VNI 选项时,用于 EVPN 的 RT 可以自动导出。RD 可以按照 [RFC7432] 中的描述自动生成,RT 可以按照下面的描述自动导出。


由于图 1 中描述的网关 PE 同时参与 DCN 和 WAN BGP 会话,因此重要的是,当 RT 值自动从 VNI 派生时,DCN 和 WAN 之间的 RT 空间不存在冲突,假设两者都是在同一个自治系统 (Autonomous System,AS) 内运行。此外,在某些情况下,同一 DCN 中可能需要 VXLAN 和 NVGRE 封装,并且它们对应的 VNI 是独立管理的,这意味着 VNI 空间可以重叠。为了避免 RT 空间中的冲突,DCN 的 6 字节 RT 值和 2 个八位字节的 AS 编号可以自动导出如下:


640.png


6 个八位字节的 RT 字段由两个子字段组成:


- Global Administrator子字段:2 个八位字节。该子字段包含由 IANA <https://www.iana.org/assignments/as-numbers/> 分配的 AS 编号。


- Local Administrator子字段:4 个八位字节


* A:一个单比特字段,指示这个 RT 是否是自动导出的

0:自动导出
1:手动导出


* Type:类型,一个 3 位字段,用于标识定义其他 3 个字节的空间。定义了以下空间:

0 : VID (802.1Q VLAN ID)
1 : VXLAN
2 : NVGRE
3 : I-SID
4 : EVI
5 : dual-VID (QinQ VLAN ID)


* D-ID:一个 4 位字段,用于标识域 ID。domain-id 的默认值为零,表示对于指定技术仅存在单个编号空间。但是,如果指定技术存在多个数字空间(例如,重叠的 VXLAN 空间),则每个数字空间都需要通过其从 1 开始的相应域 ID 来标识。


* Service ID:服务ID,此 3 个八位字节字段设置为 VNI、VSID、I-SID 或 VID。


需要注意的是,RT 自动推导适用于 2 个八位字节的 AS 编号。对于 4个八位字节的AS 号,RT 需要手动配置,因为 3个八位字节的VNI 字段无法放入 2个八位字节的本地管理员字段。


5.1.3、 构建EVPN BGP路由


在 EVPN 中,例如标识转发表的 MPLS 标签由出口 PE 通过 EVPN 控制平面分发,并由入口 PE 放置在指定数据包的 MPLS 标头中。该标签在出口 PE 接收到该数据包时用于处理该数据包。这与出口 NVE 使用 VNI 非常相似,不同之处在于 MPLS 标签具有局部意义,而 VNI 通常具有全局意义。因此,特别是为了支持本地分配的 VNI 选项、MAC/IP 通告路由中的 MPLS 标签1 字段、每个 EVI 路由的以太网 AD 中的 MPLS 标签字段以及 P-组播服务接口(P-Multicast Service Interface,PMSI)中的 MPLS 标签字段包含组播以太网标签(Inclusive Multicast Ethernet Tag,IMET)路由的隧道属性用于承载VNI。为了本备忘录的平衡,上述 MPLS 标签字段将被称为 VNI 字段。VNI 字段用于本地和全局 VNI;无论哪种情况,整个 24 位字段都用于对 VNI 值进行编码。


对于基于 VLAN 的服务(每个 MAC-VRF 有一个 VNI),MAC/IP 通告中的以太网标签字段、每个 EVI 的以太网 AD 和 IMET 路由必须设置为零,就像在 [RFC7432]。


对于 VLAN 感知绑定服务(每个 MAC-VRF 有多个 VNI,每个 VNI 与自己的网桥表相关联),MAC 通告中的以太网标签字段、每个 EVI 的以太网 AD 和 IMET 路由必须标识 MAC 内的网桥表-VRF;该 EVI 的以太网标签集需要在该 EVI 内的所有 PE 上一致配置。对于本地分配的 VNI,以太网标签字段中通告的值必须设置为 VID,就像在 [RFC7432] 中的 VLAN 感知绑定服务中一样。必须在指定域内参与该 EVI 的所有 PE 设备上一致地进行此类设置。对于全局 VNI,以太网标签字段中通告的值应该设置为 VNI,只要它匹配以太网标签的现有语义,即,它标识 MAC-VRF 内的网桥表,并且 VNI 集已配置在该 EVI 中的每个 PE 上始终如一。


为了指示要使用哪种类型的数据平面封装(即 GRE 中的 VXLAN、NVGRE、MPLS 或 MPLS),[RFC5512] 中定义的 BGP 封装扩展团体包含在所有 EVPN 路由(即 MAC出口 PE 通告的通告、每个 EVI 的以太网 AD、每个 ESI、IMET 和以太网段的以太网 AD)。IANA 分配了五个新值以扩展 [RFC5512] 中定义的封装类型列表;它们列在第 11 节中。


需要第 11 节中列出的 MPLS 封装隧道类型,以区分仅支持非 MPLS 封装的广播节点和支持 MPLS 和非 MPLS 封装的广播节点。仅支持 MPLS 封装的通告节点不需要通告任何封装隧道类型;即,如果 BGP 封装扩展团体不存在,则假定 MPLS 封装或静态配置的封装。


路由的 MP_REACH_NLRI 属性的 Next Hop 字段必须设置为 NVE 的 IPv4 或 IPv6 地址。每个路由中的其余字段根据 [RFC7432] 设置。


请注意,此处定义的程序——在指定使用 VNI 的隧道封装扩展团体存在的情况下使用 MPLS 标签字段携带 VNI——与[TUNNEL-ENCAP]的第 8.2.2.2 节中描述的程序一致。(“当尚未发出有效 VNI 信号时”)。


5.2、 基于 GRE 的 MPLS


EVPN 数据平面被建模为位于 MPLS PSN 隧道服务器层之上的 EVPN MPLS 客户端层。某些 EVPN 功能(水平分割、别名和备份路径)与 MPLS 客户端层相关联。如果使用 MPLS over GRE 封装,则 EVPN MPLS 客户端层可以透明地通过 IP PSN 隧道承载。因此,对 EVPN 程序和相关数据平面操作没有影响。


[RFC4023] 定义了使用 MPLS over GRE 封装的标准,可用于此目的。但是,当 MPLS over GRE 与 EVPN 结合使用时,建议存在 GRE 密钥字段并仅在 P 节点可以执行基于等价多路径 (Equal-Cost Multipath,ECMP) 散列的情况下才用于提供 32 位熵值在 GRE 键上;否则,GRE 头不应该包含 GRE 密钥字段。不得包括校验和和序列号字段,并且必须将 GRE 头中相应的 C 和 S 位设置为零。能够支持这种封装的 PE 应该通告它的 EVPN 路由以及隧道封装扩展团体,指示 MPLS over GRE 封装,如上一节所述。


6、 具有多个数据平面封装的 EVPN


根据 [RFC5512] 使用 BGP 封装扩展团体允许指定 EVI 中的每个 NVE 了解该 EVI 中每个其他 NVE 支持的每个封装。也就是说,指定 EVI 中的每个 NVE 都可以支持多个数据平面封装。只有当出口 NVE 通告的封装集与入口 NVE 支持的封装集形成非空交集时,入口 NVE 才能向出口 NVE 发送帧;从这个交集中选择哪个封装由入口 NVE 决定。(如第 5.1.3 节所述,如果 BGP 封装扩展团体不存在,则假定默认 MPLS 封装或本地配置的封装。)


当 PE 通告多个支持的封装时,它必须通告使用相同 EVPN 程序的封装,包括与第 8.3.1 节中描述的水平分割过滤相关的程序。例如,VXLAN 和 NVGRE(或 MPLS 和 MPLS over GRE)封装使用相同的 EVPN 程序;因此,PE 可以同时通告它们,并且可以同时支持它们中的任何一个或两者。但是,PE 不得同时通告 VXLAN 和 MPLS 封装,因为 (a) EVPN 路由的 MPLS 字段设置为 MPLS 标签或 VNI,但不能同时设置和 (b) 某些 EVPN 程序(例如水平分割过滤)对于 VXLAN/NVGRE 和 MPLS 封装是不同的。


使用共享组播树发送广播或组播帧的入口节点可以为每个不同的封装类型维护不同的树。


指定 EVI 的操作员有责任确保该 EVI 中的所有 NVE 支持至少一种通用封装。如果违反此条件,可能会导致服务中断或失败。BGP 封装扩展团体的使用提供了一种检测何时违反此条件的方法,但要采取的措施由操作员自行决定,不在本文档的范围内。


7、 单宿主NVE-驻留在Hypervisor中的NVE


当 NVE 及其主机/虚拟机位于同一物理设备中时,例如,当它们驻留在服务器中时,它们之间的链路是虚拟的,并且它们通常共享命运。也就是说,主题主机/VM 通常不是多宿主的,或者如果它们是多宿主的,则多宿主对于托管 VM 和 NVE 的服务器来说是纯粹的本地事务,并且不需要对驻留在其上的任何其他 NVE“可见”其他服务器。因此,它不需要任何特定的协议机制。最常见的情况是 NVE 驻留在虚拟机管理程序上。


在接下来的小节中,我们将讨论当 NVE 驻留在虚拟机管理程序上并且使用 VXLAN(或 NVGRE)封装的情况下对 EVPN 过程的影响。


7.1、 对 VXLAN/NVGRE 封装的 EVPN BGP 路由和属性的影响


在不同数据中心组位于不同管理域下,并且这些数据中心通过一个或多个骨干核心提供商连接的场景中,如 [RFC7365] 所述,RD 必须是每个 EVI 或每个 NVE 的唯一值,如 [RFC7432]。换句话说,只要全局 VNI 有多个管理域,就必须使用唯一的 RD;或者,只要 VNI 值具有本地意义,就必须使用唯一的 RD。因此,建议始终使用 [RFC7432] 中描述的唯一 RD。


当 NVE 驻留在虚拟机管理程序上时,不再需要与多宿主关联的 EVPN BGP 路由和属性。这将所需的路由和属性减少到 [RFC7432] 的第 7 节中列出的总共八个中的四个的以下子集:


- MAC/IP 通告路由

- 包含组播以太网标签路由

- MAC 迁移扩展团体

- 默认网关扩展团体


但是,如 [RFC7432] 的第 8.6 节所述,为了使单归属入口 NVE 在与附加到指定 ES 的多归属出口 NVE 交互时能够利用快速收敛、别名和备份路径,单归属入口 NVE 应该能够接收和处理每个 ES 的以太网 AD 和每个 EVI 的以太网 AD 的路由。


7.2、 对 VXLAN/NVGRE 封装的 EVPN 程序的影响


当 NVE 驻留在虚拟机管理程序上时,不再需要与多宿主关联的 EVPN 过程。这将 NVE 上的程序限制为以下子集。

1. 根据 [RFC7432-基于BGP MPLS的EVPN] 的第 10.1 节从 VM 接收到的 MAC 地址的本地学习。

2. 使用 MAC/IP 通告路由在 BGP 中通告本地学习的 MAC 地址。

3. 根据 [RFC7432] 的第 9.2 节使用 BGP 执行远程学习。

4. 发现其他NVE并使用IMET路由构建组播隧道。

5. 按照 [RFC7432] 中第 15 节的程序处理 MAC 地址迁移事件。


然而,如 [RFC7432] 的第 8.6 节所述,为了使单归属入口 NVE 在与附加到指定 ES 的多归属出口 NVE 交互时能够利用快速收敛、别名和备份路径,单归属入口 NVE 应实现路由的入口节点处理,这些路由是 [RFC7432] 的第 8.2 节(“快速收敛”)和 8.4(“别名和备份路径”)中定义的每个 ES 的以太网 AD 和每个 EVI 的以太网 AD。


8、 多宿主NVE-驻留在ToR交换机中的NVE


在本节中,我们讨论 NVE 驻留在 ToR 交换机中并且服务器(VM 驻留的地方)多宿主到这些 ToR 交换机的场景。多宿主 NVE 在全活或单活冗余模式下运行。如果服务器是单宿主到 ToR 交换机,那么就所需的 EVPN 功能而言,情况将类似于 NVE 驻留在虚拟机管理程序上的情况,如第 7 节所述。


[RFC7432] 定义了一组 BGP 路由、属性和过程来支持多宿主。我们首先描述这些功能和过程,然后讨论其中哪些受 VXLAN(或 NVGRE)封装的影响以及需要进行哪些修改。正如本节稍后将看到的,唯一受非 MPLS Overlay封装(例如,VXLAN 或 NVGRE)影响的 EVPN 过程是水平分割过滤,它为一个 ID 而不是一堆标签提供空间对于第 8.3.1 节中描述的多宿主 ES。


8.1、 EVPN 多宿主功能


在本节中,我们将回顾 EVPN 的多宿主特性以突出封装依赖性。本节仅在较高级别描述特性和功能。更详细的内容请读者参考[RFC7432]。


8.1.1、 多宿主 ES 自动发现


连接到同一 ES(例如,通过链路聚合组 (Link Aggregation Group,LAG) 的同一服务器)的 EVPN NVE(或 PE)可以通过交换 BGP 路由,以最少或无需配置自动发现彼此。


8.1.2、 快速收敛和大量撤销


EVPN 定义了一种机制,可以在与 ES 的连接发生故障(例如,链路或端口故障)时,向远程 NVE 有效且快速地发出信号,通知需要更新其转发表。这是通过让每个 NVE 为每个本地连接段为每个 ES 通告以太网 A-D 路由来完成的。在连接到连接段失败时,NVE 撤消相应的以太网 A-D 路由。这会触发所有收到撤销请求的 NVE 更新与相关 ES 关联的所有 MAC 地址的下一跳邻接关系。如果没有其他 NVE 为同一段通告了以太网 A-D 路由,那么收到撤销的 NVE 只会使该段的 MAC 条目无效。否则,NVE 相应地更新下一跳邻接表。


8.1.3、 水平分割


如果服务器多宿主到两个或多个 NVE(由 ES ES1 表示)并在全活冗余模式下运行,则向这些 NVE 之一发送 BUM(即,广播、未知单播或组播)数据包,然后它确保数据包不会通过连接到此服务器的另一个 NVE 环回服务器很重要。NVE 上防止此类循环和数据包重复的过滤机制称为“水平分割过滤”。


8.1.4、 别名和备份路径


在一个站点多宿主到多个 NVE 的情况下,可能只有一个 NVE 获知与该站点传输的流量相关联的一组 MAC 地址。这导致远程 NVE 从单个 NVE 接收这些地址的 MAC 通告路由的情况,即使多个 NVE 连接到多宿主站也是如此。结果,远程 NVE 无法在连接到多宿主 ES 的 NVE 之间有效地负载均衡流量。例如,当 NVE 对访问执行数据路径学习并且站上的负载均衡功能将流量从指定的源 MAC 地址散列到单个 NVE 时,可能就是这种情况。另一种发生这种情况的情况是,当 NVE 依赖控制平面学习访问时(例如,使用 ARP),因为 ARP 流量将散列到 LAG 中的单个链路。


为了缓解这个问题,EVPN 引入了“别名”的概念。这是指 NVE 发出信号表明它可以到达指定的本地连接 ES 的能力,即使它没有从该网段获知任何 MAC 地址。为此使用每个 EVI 的以太网 A-D 路由。接收具有非零 ESI 的 MAC 通告路由的远程 NVE 应将 MAC 地址视为可通过所有使用具有相同 ESI 和单活标志重置的以太网 A-D 路由通告相关段的可达性的 NVE 可达。


Backup Path 是一项密切相关的功能,尽管它适用于冗余模式为 Single-Active 的情况。在这种情况下,NVE 发出信号,表明它也可以使用以太网 A-D 路由到达指定的本地连接 ES。接收 MAC 通告路由的远程 NVE,具有非零 ESI,应认为 MAC 地址可通过通告 NVE 访问。此外,远程 NVE 应该为所述 MAC 安装一个备份路径,该 NVE 使用具有相同 ESI 和单活标志集的以太网 A-D 路由通告了相关段的可达性。


8.1.5、 DF选举


如果主机多宿主到运行在全活冗余模式下的 ES 上的两个或多个 NVE,那么对于指定的 EVI,只有这些 NVE 中的一个,称为“指定转发器”( Designated Forwarder,DF)负责向其发送广播,组播,如果为该 EVI 配置了未知单播帧。


这是必需的,以防止在全活冗余的情况下将多目标帧重复传送到多宿主主机或 VM。


在从主机接收到标记为 IEEE 802.1Q [IEEE.802.1Q] 的帧的 NVE 中,应该根据 [RFC7432] 的第 8.5 节中的主机 VID 执行 DF 选择。此外,指定 ES 的多宿主 PE 可以使用配置的 ID(例如 VNI、EVI、规范化 VID 等)执行 DF 选举,因为这些 ID 在多宿主 PE 上是一致配置的。


在接收到 VXLAN 封装帧的 GW 中,在 VNI 上进行 DF 选举。再次假设,对于指定的以太网段,VNI 是唯一且一致的(例如,不存在重复的 VNI)。


8.2、 对 EVPN BGP 路由和属性的影响


由于在这种情况下支持多宿主,因此使用了 [RFC7432] 中定义的整个 BGP 路由和属性集。MAC 通告、Ethernet A-D per EVI 和 IMET) 路由中以太网标签字段的设置遵循第 5.1.3 节的设置。此外,每个 EVI 路由的 MAC 通告和以太网 A-D 中 VNI 字段的设置遵循第 5.1.3 节的设置。


8.3、 对 EVPN 程序的影响


这里需要检查两种情况,具体取决于 NVE 是在单活还是全活冗余模式下运行。


首先,让我们考虑单活冗余模式的情况,其中主机多宿主到一组 NVE;但是,对于指定的 VNI,在指定的时间点只有一个 NVE 处于活动状态。在这种情况下,不需要Aliasing,也可以不需要水平分割过滤,但需要其他功能,如多宿主ES自动发现、快速收敛和批量撤销、Backup Path、DF选举。


其次,让我们考虑 All-Active 冗余模式的情况。在这种情况下,在第 8.1 节中列出的所有 EVPN 多宿主功能中,使用 VXLAN 或 NVGRE 封装会影响水平分割和别名功能,因为这两个功能依赖于 MPLS 客户端层。鉴于这些类型的封装不存在此 MPLS 客户端层,因此需要替代程序和机制来提供所需的功能。接下来将详细讨论这些。


8.3.1、 水平分割


在 EVPN 中,MPLS 标签用于水平分割过滤以支持全活多宿主,其中入口 NVE 在封装数据包时添加与源站点对应的标签(也称为 ESI 标签)。出口 NVE 在尝试从接口转发多目标帧时检查 ESI 标签,如果标签对应于与该接口关联的相同站点标识符 (ESI),则数据包将被丢弃。这可以防止转发循环的发生。


由于 VXLAN 和 NVGRE 封装不包括 ESI 标签,因此必须为这些封装设计其他执行水平分割过滤功能的方法。当使用 VXLAN(或 NVGRE)封装时,建议使用以下方法进行水平分割过滤。


每个 NVE 都跟踪与其共享多宿主 ES 的其他 NVE 关联的 IP 地址。当 NVE 收到来自Overlay网络的多目标帧时,它会检查隧道头中的源 IP 地址(对应于入口 NVE)并在连接到与入口共享的 ES 的所有本地接口上过滤掉该帧NVE。使用这种方法,入口 NVE 需要在本地执行复制到所有直接连接的以太网段(无论 DF 选举状态如何),用于所有来自访问接口(即来自主机)的洪泛流量入口。这种方法被称为“本地偏差”,其优点是每个 NVE 只需要使用一个 IP 地址来进行水平分割过滤,而不是每个 NVE 每个以太网段需要一个 IP 地址。


为了允许在同一组多宿主 PE 设备之间正确运行水平分割过滤,PE 设备与 MPLS over GRE 封装的混合运行来自 [RFC7432] 的程序,一方面用于水平分割过滤和 VXLAN/NVGRE不得配置在指定以太网段上的另一个上运行本地偏置程序的封装。


8.3.2、 别名和备份路径


VXLAN/NVGRE 封装的别名和备份路径过程与 MPLS 的非常相似。在 MPLS 的情况下,对应 ES 运行在 All-Active 多宿主中时,每个 EVI 的以太网 A-D 路由用于 Aliasing,当相应 ES 运行在 Single-Active 多宿主时,相同的路由用于 Backup Path。在 VXLAN/NVGRE 的情况下,相同的路由用于别名和备份路径,不同之处在于每个 EVI 路由的以太网 A-D 中的以太网标签和 VNI 字段的设置如第 5.1.3 节所述。


8.3.3、 未知单播流量指定


在 EVPN 中,当入口 PE 使用入口复制将未知单播流量泛洪到出口 PE 时,入口 PE 使用不同的 EVPN MPLS 标签(与用于已知单播流量的标签不同)来识别此类 BUM 流量。出口 PE 使用此标签来识别此类 BUM 流量,从而为全活多宿主站点应用 DF 过滤。在没有未知单播流量指定和启用未知单播泛洪的情况下,在以下条件下可能会出现临时复制流量到全活多宿主站点:主机 MAC 地址由出口 PE 获知并公布到入口 PE;然而,MAC Advertisement 尚未被入口PE 接收或处理,导致主机MAC 地址在入口PE 上未知,但在出口PE 上已知。因此,当发往该主机 MAC 地址的数据包到达入口 PE 时,它通过入口复制将其泛洪到所有出口 PE,并且由于出口 PE 知道它们,因此将多个副本发送到All-Active 多宿主站点。应该注意的是,这种瞬时数据包复制仅在以下情况下发生:a) 目标主机通过 All-Active 冗余模式进行多宿主,b) 在网络中启用了未知单播的泛洪,c) 使用入口复制,以及 d)目标主机在通过 BGP EVPN 通告获知主机 MAC 地址之前到达入口 PE。如果希望避免这种瞬态重复数据包的发生(尽管可能性很小),则需要在这些 PE 之间使用 VXLAN-GPE 封装,并且入口 PE 需要设置 BUM 流量位(B 位)[VXLAN -GPE] 表示这是入口复制的 BUM 流量。


9、 支持组播


EVPN IMET 路由用于发现与用于基于 VLAN 的服务的指定 EVI(例如,指定的 VNI)和用于 VLAN 感知绑定服务的指定 <EVI, VLAN> 相关联的端点之间的组播隧道。该路由的所有字段都按照第 5.1.3 节中的描述进行设置。始发路由器的 IP 地址字段设置为 NVE 的 IP 地址。该路由使用 PMSI 隧道属性进行标记,该属性用于对要使用的组播隧道类型以及组播隧道标识符进行编码。根据第 5.1.1 节,通过添加 BGP 封装扩展团体对隧道封装进行编码。例如,PMSI隧道属性可以指示组播隧道是协议无关组播-稀疏模式(PIM-SM)类型;而 BGP 封装扩展团体可能指示该隧道的封装类型为 VXLAN。[RFC6514] 中定义的以下隧道类型可用于 VXLAN/NVGRE 的 PMSI 隧道属性:

+ 3 - PIM-SSM 树
+ 4 - PIM-SM 树
+ 5 - BIDIR-PIM 树
+ 6 - 入口复制


在 VXLAN 和 NVGRE 封装与本地分配的 VNI 的情况下,就像在 [RFC7432] 中一样,每个 PE 必须向 EVPN 实例中的其他 PE 通告一条 IMET 路由,用于它使用的组播隧道类型(即入口复制、PIM-SM 、PIM-SSM 或 BIDIR-PIM 隧道)。然而,对于全局分配的 VNI,每个 PE 必须向 EVPN 实例中的其他 PE 通告一条 IMET 路由以用于入口复制或 PIM-SSM 隧道,并且它们可以为 PIM-SM 或 BIDIR-PIM 隧道通告 IMET 路由。在 PIM-SM 或 BIDIR-PIM 隧道的情况下,PE 不需要 IMET 路由中的信息来建立这些隧道。


在组播隧道是树的场景中,Inclusive 和 Aggregate Inclusive 变体都可以使用。在前一种情况下,组播树专用于 VNI。而在后者中,组播树在多个 VNI 之间共享。对于基于 VNI 的服务,聚合包含模式是通过让 NVE 通告具有不同 RT(每个 VNI 一个)但具有在 PMSI 隧道属性中编码的相同隧道标识符的多个 IMET 路由来实现的。对于 VNI 感知绑定服务,聚合包含模式是通过让 NVE 通告多个 IMET 路由来实现的,这些 IMET 路由具有在以太网标签字段中编码的不同 VNI,但具有在 PMSI 隧道属性中编码的相同隧道标识符。


10、 数据中心互连 (DCI)


对于 DCI,在 MPLS/IP 核心网络上连接运行 evpn-overlay(如此处所述)的数据中心时,会考虑以下两个主要场景:


- 场景 1:DCI 使用 GW

- 场景 2:DCI 使用 ASBR


以下两个小节描述了这些场景中的每一个的操作。


10.1、 DCI 使用 GW


这是通过 WAN 互连数据中心的典型场景。在这种情况下,EVPN 路由在每个 GW 中终止和处理,MAC/IP 路由总是从 DC 到 WAN 重新通告,但从 WAN 到 DC,如果未知 MAC 地址(和默认 IP 地址)被重新通告,则它们不会重新通告在 NVE 中使用。在这种情况下,每个 GW 为每个 EVI 维护一个 MAC-VRF(和/或 IP-VRF)。这种方法的主要优点是当使用默认IP路由和未知MAC路由时,NVE不需要维护来自任何远程数据中心的MAC和IP地址;也就是说,他们只需要维护自己DC本地的路由。当使用默认 IP 路由和未知 MAC 路由时,来自 NVE 的任何未知 IP 和 MAC 数据包都会转发到维护所有 VPN MAC 和 IP 路由的 GW。这种方法显着减少了 NVE 的 MAC-VRF 和 IP-VRF 的大小。此外,由于与故障相关的 BGP 路由(例如大量撤销消息)不需要一直传播到远程远程 DC 中的 NVE。[DCI-EVPN-OVERLAY]的第3.4节详细描述了这种方法。


10.2、 使用 ASBR 的 DCI


这种方法可以被认为是第一种方法的对立面。它有利于简化 DCI 设备而不是 NVE,因此需要在 NVE 上维护更大的 MAC-VRF(和 IP-VRF)表;而 DCI 设备不需要维护任何 MAC(和 IP)转发表。此外,DCI 设备不需要终止和处理与多宿主相关的路由,而是中继这些消息以建立端到端标签交换路径 (Label Switched Path,LSP)。换句话说,这种方法中的 DCI 设备的操作类似于 ASBR 的 AS 间选项 B(参见 [RFC4364] 的第 10 节)。这要求使用本地分配的 VNI,就像下游分配的 MPLS VPN 标签一样,在所有实际用途中,VNI 的功能类似于 24 位 VPN 标签。这种方法同样适用于采用 MPLS 封装的数据中心(或操作员以太网)。


在跨域选项B中,当ASBR通过内部BGP(iBGP)从其DC接收到一条EVPN路由并将其重新通告给其他ASBR时,它通过向自身重新写入BGP下一跳来重新通告EVPN路由,从而丢失发起通告的 PE 的身份。BGP 下一跳的这种重写对 EVPN 大规模撤销路由(每个 ES 的以太网 A-D)及其过程产生不利影响。但是,它不会影响 EVPN 别名机制/过程,因为当通告别名路由(每个 EVI 的以太网 AD)时,接收 PE 首先将指定 EVI 的 MAC 地址解析为其相应的 <ES, EVI>,然后,它将 <ES, EVI> 解析为多个路径(及其相关的下一跳),通过这些路径可以到达 <ES, EVI>。由于别名和 MAC 路由都基于每个 EVI 进行通告,并且它们使用相同的 RD 和 RT(每个 EVI),因此接收 PE 可以基于每个 BGP 路径(例如,每个始发 PE)将它们关联在一起.因此,它可以执行递归路由解析,例如,MAC 可通过 <ES, EVI> 到达,而后者又可通过一组 BGP 路径到达;因此,MAC 可以通过一组 BGP 路径到达。由于基于per-EVI,MAC路由和对应的Aliasing路由的关联是固定的,由同一个RD和RT决定;当这些路由通过 ASBR 时重写这些路由的 BGP 下一跳时没有歧义。也就是说,接收 PE 可能会从单个下一跳(单个 ASBR)接收到同一个 EVI 的多个别名路由,并且它仍然可以创建多个通往该 <ES, EVI> 的路径。


但是,当源PE对应的BGP下一跳地址被改写时,大量撤销路由(Ethernet AD per ES)与其对应的MAC路由之间的关联不能基于它们的RD和RT,因为mass的RD撤销路由与MAC路由不同。因此,ASBR 和接收 PE 所需的功能取决于是否发起批量撤销路由以及是否需要处理该路由的路由解析歧义。以下两个小节描述了 ASBR 和接收 PE 所需的功能,具体取决于 NVE 是驻留在虚拟机管理程序中还是驻留在 ToR 交换机中。


10.2.1、 具有单归属 NVE 的 ASBR 功能


如第 7.1 节所述,当 NVE 驻留在虚拟机管理程序中时,不存在多宿主;因此,始发 NVE 无需为每个 ES 发送以太网 A-D 或每个 EVI 路由发送以太网 A-D。然而,如第 7 节所述,为了使单归属入口 NVE 在与附加到指定 ES 的多归属出口 NVE 交互时能够利用快速收敛、别名和备份路径,单归属 NVE 应该能够接收和处理每个 ES 的以太网 AD 和每个 EVI 路由的以太网 AD。这些路由的处理将在下一节中描述。


10.2.2、 具有多宿主 NVE 的 ASBR 功能


当 NVE 驻留在 ToR 交换机中并在多宿主冗余模式下运行时,如第 8 节所述,需要发端多宿主 NVE 发送每个 ES 路由的以太网 AD(用于大规模撤销)和每个 EVI 的以太网 AD路线(用于别名)。如上所述,当远程 NVE 在不同的 ASBR 中接收每个 ES 路由的以太网 AD 时,ASBR 对 BGP 下一跳的重写会产生歧义,因为接收 NVE 无法将该路由与该 ES 通告的 MAC/IP 路由相关联。相同的起源 NVE。这种模糊性通过在不同的 AS 中接收 NVE 抑制了每个 ES 的大规模撤销功能。


例如,考虑一个CE多宿主到PE1和PE2的场景,这些PE通过ASBR1然后ASBR2连接到远程PE3。此外,请考虑PE1 从CE1 接收M1 而不是PE2。因此,PE1 为每个 ES1 通告以太网 A-D,每个 EVI1 和 M1 通告以太网 A-D;而 PE2 只为 ES1 通告以太网 A-D,为每个 EVI1 通告以太网 A-D。ASBR1 接收所有这五个通告并将它们传递给 ASBR2(将其自身作为 BGP 下一跳)。反过来,ASBR2 将它们传递到远程 PE3,并将其自身作为 BGP 下一跳。PE3 收到这 5 条路由,它们都具有相同的 BGP 下一跳(即 ASBR2)。此外,PE3收到的每ES路由的两条以太网A-D具有相同的信息,即相同的ESI和相同的BGP下一跳。尽管这两条路由都由 PE3 中的 BGP 进程维护(因为它们具有不同的 RD,因此被视为不同的 BGP 路由),但 L2 路由表 (L2 RIB) 中仅使用其中之一的信息。


640.png

图 3:跨域选项 B


现在,当 PE2 和 CE 之间的 AC 发生故障并且 PE2 为每个 ES 路由发送以太网 AD 的网络层可达性信息 (Network Layer Reachability Information,NLRI) 撤销,并且该撤销被 PE3 传播和接收时,PE3 中的 BGP 进程将删除相应的 BGP路线;但是,它不会从 L2 路由表 (L2 RIB) 中删除相关信息(即 ESI 和 BGP 下一跳),因为它仍然具有每个 ES 路由(源自 PE1)的其他以太网 A-D 具有相同信息。这就是为什么在使用 AS 间选项 B 进行 DCI 时,批量撤销机制不起作用的原因。但是,如前所述,别名功能起作用,“每个 EVI 的批量撤销”也起作用(这与撤销与别名,即每个 EVI 路由的以太网 AD)。


在上例中,PE3 收到两条具有相同BGP 下一跳(ASBR2)但RD 不同的Aliasing 路由。Aliasing 路由之一与通告的 MAC 路由 (M1) 具有相同的 RD。PE3 收到两条 Aliasing 路由后,遵循 [RFC7432] 中规定的路由解析程序;也就是说,它将 M1 解析为 <ES, EVI1>,然后将 <ES, EVI1> 解析为一个 BGP 路径列表,其中包含两条路径以及相应的 VNI/MPLS 标签(一个与 PE1 相关联,另一个与PE2)。需要注意的是,即使两条路径都是由同一个 BGP 下一跳(ASRB2)通告的,接收端 PE3 也可以正确处理它们。因此,M1 可通过两条路径到达。这为 M1 创建了两条端到端 LSP,从 PE3 到 PE1,从 PE3 到 PE2,这样当 PE3 想要转发目的地为 M1 的流量时,它可以在两条 LSP 之间进行负载均衡。尽管 [RFC7432] 中没有明确提到具有相同 BGP 下一跳的别名路由的路由解析,但这是预期的操作;因此,在此详细说明。


当PE2和CE之间的AC发生故障,PE2发送每个EVI路由的以太网A-D的NLRI撤销,并且这些撤销被PE3传播和接收时,PE3删除Aliasing路由并更新路径列表;即删除PE2对应的路径。因此,指向该路径列表的 <ES, EVI> 的所有相应 MAC 路由现在将具有更新的路径列表,其中包含与 PE1 关联的单个路径。这个动作可以被认为是per-EVI级别的大规模撤销。per-EVI级别的大规模撤销比per-ES级别的大规模撤销具有更长的收敛时间;然而,它比在每个 MAC 基础上完成撤销时的收敛时间要快得多。


如果 PE 与指定的 ES 分离,那么,除了撤销其先前公布的每个 ES 路由的以太网 A-D 之外,它还必须撤销其先前为该 ES 公布的每个 EVI 路由的以太网 A-D。对于通过一个或多个 EVPN 跨域选项 B ASBR 与撤销 PE 分隔的远程 PE,每个 ES 路由撤销以太网 A-D 是不可操作的。然而,远程 PE 能够将每个 EVI 路由的先前通告的以太网 A-D 与撤销 PE 为该 <ES, EVI, BD> 通告的任何 MAC/IP 通告路由相关联。因此,当它收到每个 EVI 路由的以太网 A-D 撤销时,它应该删除撤销的 PE 作为与该 <ES, EVI, BD> 关联的所有 MAC 地址的下一跳。


在前面的例子中,当PE2和CE之间的AC发生故障时,PE2将根据ES和EVI路由撤销其以太网A-D。当 PE3 收到每个 EVI 路由的以太网 A-D 的撤销时,它删除 PE2 作为与相应 <ES, EVI, BD> 关联的所有 MAC 地址的有效下一跳。因此,该 <ES, EVI, BD> 的所有 MAC 下一跳现在将具有单个下一跳,即。LSP 到 PE1。


总之,可以看出别名(和备份路径)功能应该像 AS 间选项 B 一样工作,而不需要 ASBR 或 PE 中的任何附加功能。然而,对于AS间选项B,批量撤销功能从per-ES模式回退到per-EVI模式。也就是说,从同一AS接收到大量撤销路由的PE对每个ES路由的以太网A-D采取行动;而从不同 AS 接收大量撤销路由的 PE 对每个 EVI 路由的以太网 A-D 采取行动。


11、 安全考虑


本文档使用基于 IP 的隧道技术来支持数据平面传输。因此,这些隧道技术的安全考虑适用。本文档定义了对 VXLAN [RFC7348] 和 NVGRE 封装 [RFC7637] 的支持。这些 RFC 的安全考虑适用于本文档的数据平面方面。


与 [RFC5512] 一样,用于形成封装标头、选择隧道类型或为特定负载类型选择特定隧道的信息的任何修改都可能导致用户数据包被错误路由、错误传送和/或掉了。


更广泛地说,使用 BGP 传输 IP 可达性信息的安全考虑在[RFC4271]和 [RFC4272] 中讨论,并且同样适用于本文档中描述的扩展。


12、 IANA 考虑


本文档在“BGP 隧道封装属性隧道类型”注册表中注册了以下内容。

值   名称
8    VXLAN 封装
9    NVGRE 封装
10   MPLS 封装
11   MPLS GRE 封装
12   VXLAN GPE 封装


13、 参考文献


13.1、 规范参考

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February 2015, <https://www.rfc-editor.org/info/rfc7432>.
[RFC7348] Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger, L., Sridhar, T., Bursell, M., and C. Wright, "Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks", RFC 7348, DOI 10.17487/RFC7348, August 2014, <https://www.rfc-editor.org/info/rfc7348>.
[RFC5512] Mohapatra, P. and E. Rosen, "The BGP Encapsulation Subsequent Address Family Identifier (SAFI) and the BGP Tunnel Encapsulation Attribute", RFC 5512, DOI 10.17487/RFC5512, April 2009, <https://www.rfc-editor.org/info/rfc5512>.
[RFC4023] Worster, T., Rekhter, Y., and E. Rosen, Ed., "Encapsulating MPLS in IP or Generic Routing Encapsulation (GRE)", RFC 4023, DOI 10.17487/RFC4023, March 2005, <https://www.rfc-editor.org/info/rfc4023>.
[RFC7637] Garg, P., Ed. and Y. Wang, Ed., "NVGRE: Network Virtualization Using Generic Routing Encapsulation", RFC 7637, DOI 10.17487/RFC7637, September 2015, <https://www.rfc-editor.org/info/rfc7637>.


13.2、 参考资料


[RFC7209] Sajassi, A., Aggarwal, R., Uttaro, J., Bitar, N., Henderickx, W., and A. Isaac, "Requirements for Ethernet VPN (EVPN)", RFC 7209, DOI 10.17487/RFC7209, May 2014, <https://www.rfc-editor.org/info/rfc7209>.
[RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", RFC 4272, DOI 10.17487/RFC4272, January 2006, <https://www.rfc-editor.org/info/rfc4272>.
[RFC7364] Narten, T., Ed., Gray, E., Ed., Black, D., Fang, L., Kreeger, L., and M. Napierala, "Problem Statement: Overlays for Network Virtualization", RFC 7364, DOI 10.17487/RFC7364, October 2014, <https://www.rfc-editor.org/info/rfc7364>.
[RFC7365] Lasserre, M., Balus, F., Morin, T., Bitar, N., and Y. Rekhter, "Framework for Data Center (DC) Network Virtualization", RFC 7365, DOI 10.17487/RFC7365, October 2014, <https://www.rfc-editor.org/info/rfc7365>.
[RFC6514] Aggarwal, R., Rosen, E., Morin, T., and Y. Rekhter, "BGP Encodings and Procedures for Multicast in MPLS/BGP IP VPNs", RFC 6514, DOI 10.17487/RFC6514, February 2012, <https://www.rfc-editor.org/info/rfc6514>.
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI 10.17487/RFC4271, January 2006, <https://www.rfc-editor.org/info/rfc4271>.
[RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February 2006, <https://www.rfc-editor.org/info/rfc4364>.
[TUNNEL-ENCAP] Rosen, E., Ed., Patel, K., and G. Velde, "The BGP Tunnel Encapsulation Attribute", Work in Progress draft-ietf-idr-tunnel-encaps-09, February 2018.
[DCI-EVPN-OVERLAY] Rabadan, J., Ed., Sathappan, S., Henderickx, W., Sajassi, A., and J. Drake, "Interconnect Solution for EVPN Overlay networks", Work in Progress, draft-ietf-bess-dci-evpn-overlay-10, March 2018.
[EVPN-GENEVE] Boutros, S., Sajassi, A., Drake, J., and J. Rabadan, "EVPN control plane for Geneve", Work in Progress, draft-boutros-bess-evpn-geneve-02, March 2018.
[VXLAN-GPE] Maino, F., Kreeger, L., Ed., and U. Elzur, Ed., "Generic Protocol Extension for VXLAN", Work in Progress, draft-ietf-nvo3-vxlan-gpe-05, October 2017.
[GENEVE] Gross, J., Ed., Ganga, I., Ed., and T. Sridhar, Ed., "Geneve: Generic Network Virtualization Encapsulation", Work in Progress, draft-ietf-nvo3-geneve-06, March 2018.
[IEEE.802.1Q] IEEE, "IEEE Standard for Local and metropolitan area networks - Bridges and Bridged Networks - Media Access Control (MAC) Bridges and Virtual Bridged Local Area Networks", IEEE Std 802.1Q.


致谢


作者要感谢 Aldrin Isaac、David Smith、John Mullooly、Thomas Nadeau、Samir Thoria 和 Jorge Rabadan 的宝贵意见和反馈。作者还要感谢 Jakob Heitz 对第 10.2 节的贡献。

相关文章
|
25天前
|
安全 网络安全 云计算
云计算与网络安全:技术挑战与解决方案
【6月更文挑战第8天】在信息技术飞速发展的今天,云计算作为一种新兴的计算模式,已经广泛应用于各个领域。然而,随着云计算的普及,网络安全问题也日益突出。本文将探讨云计算与网络安全之间的关系,分析云服务、网络安全和信息安全等技术领域的挑战,并提出相应的解决方案。
|
2月前
|
安全 网络协议 网络安全
【网络连接】ping不通的常见原因+解决方案,如何在只能访问网关时诊断,并修复IP不通的问题
【网络连接】ping不通的常见原因+解决方案,如何在只能访问网关时诊断,并修复IP不通的问题
2420 0
|
2月前
|
存储 监控 安全
云计算与网络安全:技术挑战与解决方案
【5月更文挑战第31天】本文深入探讨了云计算与网络安全的交叉领域,分析了云服务、网络安全、信息安全等技术领域的关键问题。文章首先介绍了云计算的基本概念和主要服务模型,然后详细讨论了云计算环境下的网络安全威胁和挑战,最后提出了一些有效的解决方案和技术策略。
|
1天前
|
物联网 SDN 网络虚拟化
VXLAN:彻底改变网络虚拟化
【7月更文挑战第3天】
13 0
VXLAN:彻底改变网络虚拟化
|
29天前
|
存储 安全 网络安全
云计算与网络安全:技术挑战与解决方案
本文深入探讨了云计算与网络安全之间的紧密联系,重点分析了云服务、网络安全和信息安全等技术领域。文章首先介绍了云计算的基本概念和服务模型,然后详细讨论了网络安全的重要性以及面临的主要威胁。最后,文章提出了一系列技术和管理策略,以应对这些挑战并保护云环境中的数据安全。
|
7天前
|
监控 安全 Linux
虚拟专用网络(VPN):远程访问与点对点连接及其在Linux中的IPSec实现与日志管理
虚拟专用网络(VPN):远程访问与点对点连接及其在Linux中的IPSec实现与日志管理
20 0
|
7天前
|
SDN 虚拟化 网络虚拟化
VXLAN:打破网络边界的虚拟化之光
VXLAN:打破网络边界的虚拟化之光
|
2月前
|
监控 安全 网络安全
使用 Fortinet 安全 SD-WAN 解决方案进行全球跨国公司网络设计的最佳实践
使用 Fortinet 安全 SD-WAN 解决方案进行全球跨国公司网络设计的最佳实践
105 3
|
2月前
|
网络协议 Linux
centos7部分桥接网络ping不通解决方案
centos7部分桥接网络ping不通解决方案
|
24天前
|
前端开发 JavaScript 安全
WebAssembly技术的出现为我们提供了一种全新的解决方案,开启了高性能网络应用的新时代
【6月更文挑战第10天】WebAssembly是高性能网络应用的新时代技术,它是一种虚拟机格式,允许C/C++等语言编译成二进制格式在Web浏览器中运行。具备高性能、高可移植性和良好安全性,适用于游戏开发、图形处理、计算机视觉等领域。随着技术进步,WebAssembly将支持更多语言,结合低代码平台简化开发,但需解决编译优化和安全性等问题。它正重塑Web应用的未来,开启高性能应用新时代。
26 0

相关产品