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拓扑如图:
当使用LDP作为PW 信令时,通过扩展LDP的type 128 和 type 129 FEC TLV携带VPLS信息。
为了建立一条VC,需要分配两层标签,外层标签由MPLS LDP分配,实现PE之间的标签交换。内层标签为VC标签,由remote target ldp分配,PE根据VC标签判断报文属于哪个VSI,从而转发给正确的CE。
报文转发过程如图:
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。
Bundle Service Interface
该模式下,一个EVI有多个广播域,连接了多组用户,但是多组用户共用MAC转发表,要求所有网络中MAC地址唯一。
VLAN-Aware Bundle Service Interface
一个EVI有多个广播域,连接了多组用户网络,但是每组用户网络有自己独立的MAC转发表。如下图所示
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对连接的站点是否可达。以太自动发现路由主要用于快速收敛、冗余模式与别名和水平分割。以太自动发现路由的格式如图所示。
-
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地址的可达信息。
- 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设备之间通过集成多播路由可以建立传送流量的隧道。
- 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地址传递过程
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地址且公网隧道建立成功后,则可以向其
他站点传输单播报文,其具体传输过程如下:
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的站点。