ethernet virtual private network介绍

ethernet virtual private network背景

        ethernet virtual private network RFC的全程是BGP MPLS-Based Ethernet v*n, 最开始由RFC7432定义,要了解ethernet virtual private network的产生背景,需要先了解传统L2v*n VPLS。
        ethernet virtual private network RFC的全程是BGP MPLS-Based Ethernet v*n, 最开始由RFC7432定义,要了解ethernet virtual private network的产生背景,需要先了解传统L2v*n VPLS。

VPLS 介绍

        VPLS(Virtual Private LAN Service)是一种在MPLS 网络上提供一种类似于LAN的一种业务,它可以使用户从多个地理位置分散的点同时接入网络,互相访问。

VPLS 实现

        在了解VPLS实现之前,先介绍几个VPLS术语。
        VSI(Virtual Switch Instance)虚拟交换实例,通过VSI,可以将VPLS的实际接入链路映射到各条虚链接上。
        VC (Virtual Switch Instance) 虚电路,在两个个节点之间的单向逻辑连接。
        PW(Pseudo Wire)伪链路,在两个VSI之间的一条双向的虚拟连接,它由一对单向的MPLS VC(Virtual Circuit,虚电路)构成。
        AC(Attachment Circuit)接入电路,指连接CE与PE的链路,对应的接口可以是实际的物理接口,也可以是虚拟接口。AC上的所有用户报文一般都要求原封不动的转发到对端Site(站点)去,包括用户的二、三层协议报文。
        PW Signaling PW信令协议,VPLS实现的基础,用于创建和维护PW。PW信令协议还可用于自动发现VSI的对端PE设备。PW信令协议主要有LDP和BGP。
        典型拓扑VPLS拓扑如图:
ethernet virtual private network介绍
        当使用LDP作为PW 信令时,通过扩展LDP的type 128 和 type 129 FEC TLV携带VPLS信息。
        为了建立一条VC,需要分配两层标签,外层标签由MPLS LDP分配,实现PE之间的标签交换。内层标签为VC标签,由remote target ldp分配,PE根据VC标签判断报文属于哪个VSI,从而转发给正确的CE。
        报文转发过程如图:

ethernet virtual private network介绍

VPLS不足

        VPLS主要存在以下不足:

  • VPLS的控制平面无法控制可达信息,而是通过数据平面上的标准桥接功能的地址学习来提供可达性;

  • 和以太网交换机一样,在VPLS里,对收到未知单播地址、广播地址和组播地址的以太报文都采用flood方式,将收到的报文转发到其余所有端口,这样就造成了骨干承载广播流量;

  • 通过水平分割方式防环路,部署和维护复杂;

  • 控制面和数据面耦合,不符合当前控制面和数据面分离趋势。。
    为解决这些问题,提出了ethernet virtual private network的解决方案。

ethernet virtual private network原理

名词解释

  • EVI (ethernet virtual private network Instance)ethernet virtual private network实例,一个实例中可以包含多个二层网络。
    ET(Ethernet Tag) EVI中可以包含多个二层网络,每个二层网络可以通过ET来区分。
  • MAC-VRF:PE上的虚拟转发单元,类似于BGP/MPLS L3 v*n中的VRF。通过将PE抽象出多个虚拟单元,可以支持多租户场景,使PE同时被多个EVI使用。MAC-VRF中包含了实际的MAC转发表。
  • Bridge domain是指在一组具有相同泛洪和广播特性的逻辑端口集合

ethernet virtual private network服务模式

VLAN-Based Service Interface

        该模式下,每个EVI只有一个广播域,连接一组网络。消耗较多的EVI。
ethernet virtual private network介绍

Bundle Service Interface

        该模式下,一个EVI有多个广播域,连接了多组用户,但是多组用户共用MAC转发表,要求所有网络中MAC地址唯一。

VLAN-Aware Bundle Service Interface

        一个EVI有多个广播域,连接了多组用户网络,但是每组用户网络有自己独立的MAC转发表。如下图所示
ethernet virtual private network介绍

ethernet virtual private network典型组网图

ethernet virtual private network介绍
         如图ethernet virtual private network网络和BGP/MPLS IP v*n的网络结构相似,为了实现各个站点(Site)之间的互通,运营商骨干网上的PE设备上建立ethernet virtual private network实例并接入各个站点的CE设备,同时各个PE之间建立的邻居关系以及LDP隧道。ethernet virtual private network网络与BGP/MPLS IPv*n网络的不同之处在于各个站点内是二层网络,因此PE从各个CE学习到的是MAC地址,PE通过ethernet virtual private network特有的路由类型将自己从CE学习到MAC地址转发到其他Site。
ethernet virtual private network实现

ethernet virtual private network路由

        为了不同站点之间可以相互学习对方的MAC信息,在BGP协议的基础上定义了一种新的NLRI(Network Layer Reachability Information,网络层可达信息),被称为ethernet virtual private network NLRI。在ethernet virtual private network NLRI中共定义了4种ethernet virtual private network路由类型:

以太自动发现路由

        当PE之间的BGP邻居关系建立成功后,PE之间会传递以太自动发现路由。以太自动发现路由可以向其他PE通告本端PE对接入站点的MAC地址的可达性,即PE对连接的站点是否可达。以太自动发现路由主要用于快速收敛、冗余模式与别名和水平分割。以太自动发现路由的格式如图所示。
ethernet virtual private network介绍

  • Route Distinguisher:该字段可以是ethernet virtual private network实例下设置的RD(Route
    Distinguisher)值,也可以是由PE上设置的源IP地址组合而成,例如X.X.X.X:0。
  • Ethernet Segment Identifier:PE与某一CE的连接定义的唯一标识。
  • Ethernet Tag ID:该字段在以太自动发现路由中为全0或全F。
  • MPLS Label:该字段为0或者ethernet virtual private network单播流量负载分担转发时使用的MPLS标签。

MAC地址通告路由(MAC advertisement route)

        MAC地址通告路由可以携带本端PE上ethernet virtual private network实例的RD值、ESI值以及ethernet virtual private network实例对应的私网标签,MAC地址通告路由的格式如图所示。该类型路由可以用于从本端PE向其它PE发布单播MAC地址的可达信息。
ethernet virtual private network介绍

  • Route Distinguisher:该字段为ethernet virtual private network实例下设置的RD(Route Distinguisher)值。
  • Ethernet Segment Identifier:PE与某一CE的连接定义的唯一标识。
  • Ethernet Tag ID:PE上实际配置的Vlan ID
  • MAC Address Length:被该类型路由通告的MAC地址长度。
  • MAC Address:被该类型路由通告的MAC地址。
  • IP Address Length:被该类型路由通告的主机IP地址掩码长度。
  • IP Address :被该类型路由通告的主机IP地址。
  • MPLS Label1:二层业务流量转发使用的标签。
  • MPLS Label2:三层业务流量转发使用的标签。

集成多播路由(Inclusive Multicast Route)

        当PE之间的BGP邻居关系建立成功后,PE之间会传递集成多播路由,集成多播路由可以携带本端PE上ethernet virtual private network实例的RD和Route Target(RT)值和Source IP(一般为本端PE Loopback地址),集成多播路由的格式如图所示。多播流量包括广播流量、组播流量和未知目的地址的单播流量。当一台PE设备收到多播流量后,会将多播流量以点到多点的形式转发给其他PE设备。PE设备之间通过集成多播路由可以建立传送流量的隧道。
ethernet virtual private network介绍

  • Route Distinguisher:该字段为ethernet virtual private network实例下设置的RD(Route Distinguisher)值。
  • Ethernet Tag ID:该字段在集成多播路由中为全0。
  • IP Address Length:PE上配置的源地址长度。
  • Originating Router’s IP Address :PE上配置的源地址。

以太网段路由(Ethernet Segment Route)

        以太网段路由可以携带本端PE上的ethernet virtual private network实例的RD值、ESI值和Source IP地址,用来实现连接到相同CE的PE设备之间互相自动发现。以太网段路由主要用于DF(Designated Forwarder,指定转发者)选举

ethernet virtual private network实现

MAC地址传递过程

ethernet virtual private network介绍

        1.Site1通过ARP请求报文或ARP免费报文将自己站点内的MAC A地址及其对应的IP
地址通告至Site2,ARP请求报文或ARP免费报文在经过PE1时,PE1上会生成MAC A的MAC地址通告路由;
        2. Site2在向Site1返回ARP响应报文或者发送ARP免费报文时,PE2上同样会生成Site2内MAC地址的MAC地址通告路由;
        3. PE1和PE2之间会交换MAC地址通告路由,其中携带有MAC地址信息、路由下一跳信息以及ethernet virtual private network实例RT值等扩展团体属性信息;
        4. PE1和PE2在收到对方的MAC地址通告路由后,会根据RT值在本地构建对应ethernet virtual private network实例的流量转发表项,用于流量传输。

数据包转发过程

当PE学习到其他站点的MAC地址且公网隧道建立成功后,则可以向其
他站点传输单播报文,其具体传输过程如下:
ethernet virtual private network介绍

        1. CE2将单播报文以二层转发的方式发送至PE2;
        2. PE2先为单播报文封装上ethernet virtual private network Label,再封装上公网LDP LSP Label,再先后封装
PE2的MAC地址和PE1的MAC地址。然后将封装后的单播报文发送至PE1;
        3. PE1收到封装后的单播报文后,将进行解封装,并根据ethernet virtual private network Label将单播报文发
送至对应ethernet virtual private network的站点。