什么是EVPN?

本文最后更新于 2024年4月6日 凌晨

什么是EVPN?

EVPN(Ethernet Virtual Private Network)是下一代全业务承载的VPN解决方案。EVPN统一了各种VPN业务的控制面,利用BGP扩展协议来传递二层或三层的可达性信息,实现了转发面和控制面的分离。
EVPN解决传统L2VPN的无法实现负载分担、网络资源的消耗较高等不足,同时也可以对L3VPN业务进行承载,降低了协议的复杂程度。EVPN还将IP VPN流量均衡和部署灵活的优势引入到了以太网中。种种优势使其广泛应用于大型数据中心二层网络互连场景。

什么是EVPN和BGP EVPN?

EVPN是下一代全业务承载的VPN解决方案,它颠覆了传统二层VPN通过转发面来学习MAC地址的机制,引入了控制面,利用BGP扩展协议来传递MAC信息。EVPN基于MP-BGP,定义了一系列新的BGP EVPN路由类型,从而使EVPN网络中的不同站点间可以相互学习MAC地址信息。

BGP EVPN路由有以下几种类型 / Type:

  1. 以太自动发现路由(Ethernet Auto-Discovery Route)

    以太自动发现路由可以向其他的PE通告本端的PE对接入站点的MAC地址是否可达。主要用在快速收敛、冗余模式、别名和水平分割场景,解决多归属网络中的流量负载分担问题。

  2. MAC/IP地址通告路由(MAC/IP Advertisement Route):

    站点的MAC和IP等信息是通过EVPN的MAC/IP地址路由通告的,因此不需要将ARP请求泛洪到网络之中,大大的减少了网络中的广播流量,减少了带宽资源的浪费。也适用于IPv6的NDP。

  3. 集成多播路由(Inclusive Multicast Route)

    本端PE要向远端PE发送CE侧收到的广播、组播和未知的单播地址流量,需要集成多播路由发送多播地址可达信息来实现广播域内的成员互相发现。集成多播路由也要包含创建隧道的属性,PE设备之间,通过集成多播路由可以创建传递数据面流量的隧道。

  4. 以太网段路由(Ethernet Segment Route)

    用来实现连接到相同CE和PE设备之间相互自动发现,该路由主要用于DF(Designated Forwarder,指定转发者)选举。由于CE多归于多个PE时,避免CE收到重复的流量,只需要有一个PE向CE转发BUM(Broadcast,Unknown Unicast,Multicast,广播、未知单播、组播流量统称),那么就需要在相同ES的PE之间,根据DF来选举出这个PE。

  5. IP前缀路由(IP Prefix Route)

    用于EVPN网络接入外部网络。EVPN以IP前缀的形式通告引用的外部路由

为什么需要EVPN?

传统L2VPN技术面临挑战

以下以虚拟专用局域网服务VPLS(Virtual Private LANService)技术为例来介绍传统L2VPN所面临的挑战,VPLS是一种早期出现的MPLS VPN技术,被广泛的应用在用户数据中心互连场景,能为企业用户提供多点到多点的广域以太网服务。但是由于VPLS技术具有一定的局限性,使其无法满足大规模复杂数据中心的需求。

传统的L2VPN在数据中心互联网络部署拓扑图
传统的L2VPN在数据中心互联网络部署拓扑图

  • 网络部署难

    PE设备要学习所有CE设备的MAC地址,MAC的表容量是有限的。且由于存在大量的手工配置,对PE设备的规格要求很高。

  • 适用的网络规模有限

    PE设备间需要建立全连接PW使VPLS不适合大规模网络。

    没有控制平面,一旦MAC地址变化或故障发生切换,需要重新泛洪学习L2转发表,收敛性差。

  • 链路带宽利用率低

    为了避免CE侧到PE侧产生环路,CE侧到PE侧只支持单活模式,而不支持多活模式,这样就使得链路的利用率很低。

EVPN技术带来的价值

EVPN技术有效地解决了上述问题:

  • 如下图所示EVPN通过扩展BGP协议使MAC地址学习和发布过程从数据平面转移到控制平面。这样可以使设备在管理MAC地址时像管理路由一样,使目的MAC地址相同但下一跳不同的多条EVPN路由实现负载分担。

    EVPN技术与传统的L2VPN技术对比
    EVPN技术与传统的L2VPN技术对比

  • 通过使用EVPN技术,PE设备之间不再需要建立全连接。这是因为在EVPN网络中PE设备之间是通过BGP协议实现相互通信的。BGP协议自带路由反射器功能,所以EVPN支持部署路由反射器,所有PE设备与反射器建立邻居关系,通过路由反射器来反射EVPN路由,大大降低了网络复杂度,减少了网络信令数量。

  • PE设备通过ARP协议和MAC/IP地址通告路由分别学习本地和远端的MAC地址信息以及其对应的IP地址,并将这些信息缓存至本地。当PE设备再收到其他ARP请求后,将先根据ARP请求中的目的IP地址查找本地缓存的MAC与IP地址的对应信息,如果查找到对应信息,PE将返回ARP响应报文,避免ARP请求报文向其他PE设备广播,减少网络资源消耗。

EVPN是如何工作的?

基础概念

EVPN基本概念示意图
EVPN基本概念示意图

  • ES (Ethernet Segment)

    如果CE多归到两个或更多PE,这组CE接入到不同PE的以太链路集合就是一个ES。如上图所示,CE1归属于PE1和PE2,CE1分别到PE1和PE2的这两条以太网链路就是一个ES。

  • ESI (Ethernet Segment Identifier)

    全局标识唯一一个ES的ID。如下图所示,不同PE连接相同CE设备的接口,需要有相同的ESI。当ESI的值为0时,表示PE连接的是个单归CE。

  • EVI(EVPN Instance)

    表示EVPN实例,EVPN是虚拟化私网,在一台PE设备上存在多个EVPN实例。类似于VPLS的VSI,用来标识一个VPN客户。

  • MAC-VRF

    用来存储EVPN实例通过BGP扩展协议学习到的MAC地址信息。每个EVI都有独立的MAC-VRF。

EVPN的启动过程

EVPN网络拓扑图
EVPN网络拓扑图

如上图所示,EVPN的启动过程分为如下几个步骤:

  1. 创建EVPN实例。

    为每个PE设备创建EVPN实例(即EVI),每个EVPN实例配置RD、RT属性。

  2. 配置BGP对等体,并使能EVPN。

    PE设备会向邻居发送Type3路由。Type3路由包含RD和Label(MPLS分配)信息。

    当其他邻居设备收到报文时,会把路由信息放到本设备的BUM流量转发表,指导BUM报文转发,BUM即广播、未知单播、组播流量统称。

  3. 绑定ESI到EVPN实例。

    • ESI生成,并绑定ESI到EVPN实例。

    • 然后触发Type4路由。Type4路由携带如下信息:RD 、ESI,PE源地址。

    • Type4向对等体通告ESI被记录在ESI成员信息表中。

  4. PE设备间互发Type1路由,更新ESI Label信息。

    完成DF选举之后,各PE之间会相互发布Type1路由,Type1路由携带的主要信息有:ESI值,以及本地为ESI分配的标签值。

    各PE收到邻居发来的Type1路由之后,首先验证Type1路由携带的ESI值是否与本地相同,如果相同,就会把该路由携带的ESI标签值更新到本地的ES成员列表中。

MAC地址学习

假定CE1向PE1发送ARP请求报文。

PE1通过转发面学习到了CE1的MAC地址mac1,存入到本地的MAC-VRF表。

接着,PE1会生成通告mac1的Type2路由,发布给其他PE。Type2路由携带的主要信息包括:EVPN实例的RD值,ESI,mac1以及本地为mac1分配的MPLS标签值。

Type2路由发布示意图
Type2路由发布示意图

如上图所示,PE3和PE4在收到PE1发送的Type2路由时,各自更新本地的MAC-VRF,从而通过控制面学习到了CE1的MAC地址;而PE2收到该路由后,发现该路由携带的ESI值与本地的ESI相同,因此优选本地下一跳是port2的路由。

同理,PE2也会基于本地的MAC信息,生成通告mac1的Type2路由,并通告给邻居,这里不再赘述。

通过上述过程,PE设备都学习到了CE1设备的MAC地址。

流量转发

流量转发示意图
流量转发示意图

如上图所示,这个过程向CE2转发CE1发出的ARP请求报文。

PE1在收到ARP请求的报文之后,根据本地的BUM流量转发表向所有的邻居进行发送。

PE3收到报文之后,解除隧道封装,确认自己是DF设备,因此它会将该报文向CE2转发;而PE4不是DF设备,因此不会向CE2转发该报文。

再说PE2,PE1在向PE2发送报文的时候,因为PE2与自己的ESI相同,会加上PE2的ESI标签值。当PE2收到报文时,解除隧道封装,发现携带自己的ESI标签,因此判断该报文来自自己所在的ES,因此会丢弃该报文。

单播流量转发

单播流量转发示意图
单播流量转发示意图

如上图所示。

当CE2收到CE1发出的ARP请求报文之后,会回应单播的ARP应答报文给PE3。

PE3收到这个ARP应答报文之后,会学习到CE2的mac地址,并且通过Type2路由发送给PE1和PE2,都会存入对应的MAC-VRF。

PE3收到ARP应答报文之后,根据目的MAC地址mac1,查找本地的MAC-VRF,发现下一跳是PE1和PE2,PE3这时要通过负载分担算法来选择一条路径,假定选择走PE1。PE1收到报文之后,解除隧道封装,根据目的MAC地址,查询本地的MAC-VRF,发现下一跳为本地的port1,因此通过port1直接转发给CE1。

以上就是CE1发出ARP请求,到CE2收到之后发送ARP应答,再到CE1收到ARP应答的过程。

EVPN有哪些典型应用?

PBB

PBB-EVPN是一种基于MPLS和以太网技术的新一代二层VPN技术。在控制平面上PBB-EVPN技术可以使用BGP协议在各个PE设备间传递MAC地址信息,从而控制不同Site上的数据报文跨MPLS网络进行传输。

PBB EVPN业务分成I-EVPN和B-EVPN两部分,I-EVPN实例通过与CE连接的接口进行绑定用户接入业务,B-EVPN实例连接骨干网络用来管理从其他PE设备上发来的EVPN路由信息。

EVPN VPWS

和传统VPWS一样,提供点到点(P2P)的业务,此方案复用并简化了原有的EVPN技术,使用MPLS隧道技术穿越骨干网,无需MAC学习。

如下图所示,VPWS的两端通过ACID来建立连接。配置时要求本地ACID和远端ACID必须配对。

EVPN VPWS组网图
EVPN VPWS组网图

EVPN E-Tree

如果用户希望同一广播域中无互访需求的用户接口之间可以相互隔离,则可以在网络中部署EVPN E-Tree功能。E-Tree的逻辑就像一棵树,其中有两种角色:root和leaf,root节点可以和leaf节点通信,但是leaf节点间不能相互通信。它有三种业务模型:

  1. 叶节点/根节点per-PE(又叫实例模式)

    如下图所示,每个PE设备只能是一个EVI根节点或者叶节点。

    叶节点/根节点per-PE
    叶节点/根节点per-PE

  2. 叶节点/根节点per-AC

    如下图所示:

    • 一个AC只能是一个根节点或者叶节点
    • 一个PE可能同时有根节点和叶节点AC

    叶节点/根节点per-AC
    叶节点/根节点per-AC

  3. 叶节点/根节点per-MAC

    如下图所示:

    • 一个AC可以同时为根节点/叶节点AC,根据MAC地址区分
    • 只支持单播流量,不支持BUM流量

    叶节点/根节点per-MAC
    叶节点/根节点per-MAC

EVPN L3VPN

当前IP承载网络一般使用L3VPN(HVPN)和L2VPN协议承载二三层业务,协议复杂度较高。由于EVPN协议可以同时承载二三层业务,为了简化IP承载网络的业务承载协议,因此很多IP承载网络将会演进为EVPN协议,其中承载三层业务的L3VPN HVPN功能需要演进为EVPN L3VPN HVPN功能。EVPN L3VPN有如下优点:

  1. 控制面:传统L3VPN使用VPNv4路由传递路由信息,EVPN L3VPN使用MP-BGP扩展的5类路由传递路由信息。统一了二层和三层控制面,简化了部署和维护复杂度。
  2. 数据面:传统L3VPN和EVPN L3VPN保持一致。

来源

https://info.support.huawei.com/info-finder/encyclopedia/zh/EVPN.html

文档下载

https://songxwn.com/file/EVPN.pdf


什么是EVPN?
https://songxwn.com/evpn/
作者
Song
发布于
2024年4月6日
更新于
2024年4月6日
许可协议