技术宝库 | BGP EVPN 1 —— VPLS原理

2021-04-20 10:26:54 阅读量:


 \

作者:泰克教育讲师  杨诚

最近有看到关于BGP EVPN技术的知识点,想给大家分享一下。
 
因为BGP EVPN是在VPLS这个技术上发展而来,所以此处会先给大家讲解VPLS的技术原理。
 
而VPLS跟MPLS VPN很类似,以下文章中讲到很多的专业术语都跟MPLS VPN有关,所以学完MPLS VPN技术的同学再来学习VPLS会更容易上手。
 
本着高效的原则,本文中就不再讲解MPLS VPN这个技术,而以下的知识点在学习完MPLS VPN技术的基础上阅读会更友好些。好了,让我们开始吧。
 
说起BGP EVPN这个技术,学习过VXLAN的同学会比较清楚,它可以作为VXLAN控制平面的路由协议帮助VXLAN传递VNI号、IP路由及MAC信息,它还有一个作用就是作为一种二层VPN技术来完成分处于不同地理位置的局域网互联。
 
BGP EVPN以VPLS的替代版本出现,优化了VPLS的一些不足之处。为了更能深入研究BGP EVPN,所以首先我们得掌握VPLS的原理。
 

01  VPLS的基本概念
 
VPLS全称Virtual Private LAN Service(虚拟专用局域网业务),是公用网络中提供的一种点到多点的二层VPN。
 
以前可能有小伙伴听过MPLS VPN可以是作为三层VPN来使用,也可以作为二层VPN来使用,而需要作为二层VPN使用时就是指VPLS,所以VPLS就是MPLS VPN的L2VPN。
 
既然它是一种二层VPN,所以分处于不同地理位置的局域网用VPLS互联,其效果就相当于各局域网之间连接了一台巨大的交换机一样,各局域网的出口设备之间相处于同一个广播域。
 
VPLS同时作为MPLS VPN的二层VPN,它像我们之前学习过的三层MPLS VPN基于MPLS中的标签来实现数据转发的,也同样有私网标签和公网标签之分。
 
讲到这可能有小伙伴问,有了三层VPN技术为什么还需要二层VPN?
 
这要跟它的应用场景挂钩。
 
分处于不同地理位置的site(站点)需要进行私网互通,可以采用专线或者VPN技术来实现。而专线又可以分为裸光纤、SDH、MSTP(注意,此处的MSTP不是我们路由交换课程中学习的生成树协议,而是多业务传送平台,专线的一种)、WDM等(此块知识会在华为接入网和传输网课程中讲到),但专线价格昂贵,为了节省成本就只能采用VPN。
 
VPN从层次上可以划分为二层VPN、三层VPN以及应用层VPN,常见的二层VPN有PPTP、L2TP、VPLS、BGP EVPN等;常见的三层VPN有GRE、IPsec、MPLS VPN等;而应用层VPN有SSL等。
 
site之间互联如果没特殊需求采用二层或三层VPN都行,但有的场景必须用二层VPN,例如,分处于异地的数据中心做灾备(学路由交换的小伙伴可能对灾备不是很清楚,简单理解就是做冗余),且要求服务器之间处于同一个广播域,那此时就只能用二层VPN了。接下来我们学习下VPLS的基本原理。
 
02  VPLS的实现原理
 
如图1,需要实现企业A分部1和分部2之间的互联,企业B分部1和分部2之间的互联;

 
\
▲图1
 
VPLS与MPLS VPN一样,设备角色同样有CE、PE、P之分,在此基础上多了些概念,如AC、PW、VSI等:
 
▲AC(Attachment Circuit):接入电路,即连接CE与PE的链路;
 
▲VSI(Virtual Switch Instance):虚拟交换实例,同MPLS VPN一样,PE上也需要创建实例,并绑定AC线路,而这个实例则称之为VSI;
 
▲PW(Pseudo Wire):伪线,两个PE设备上VSI之间的一条虚拟连接;
 
▲PW Signal :PW信令协议,用于创建和维护PW,PW信令协议主要有LDP;简单理解即分发私网标签的协议,这里和MPLS VPN不同,MPLS VPN中采用MP-BGP分发;
 
实现VPLS需要配置的内容:

 
(1) 运营商网络需要配置IP、IGP及LDP协议;
(2) PE上创建VSI实例,并绑定接口;实例下需要指定PW的信令协议为LDP,以及VSI的对等体;
 
第一步配置目的:保证公网互通,及PE之间有相互去往对端的公网路由及标签。
 
第二步配置目的:实例之间有相互去往对端的私网标签,LDP能够为实例分发私网标签,并且传递到对端PE。MPLS VPN中实现的时候是采用BGP协议分发私网标签并传递私网路由,而VPLS为二层VPN,不需要相互传递私网路由,只需要传递私网标签即可,所以采用LDP即可完成。
 
LDP基本发现机制只能在直连设备之间发现邻居,而PE之间一般是非直连的,所以此处PE之间需要用到LDP的扩展发现机制来发现邻居,即两个PE之间直接跨设备建立LDP邻居,并为对端分发传递私网标签。相互有对方的私网标签表示PW建立完成,接下来就可以进行数据转发。

 
 \
 
▲图2
 
如图2,我们以该图讲解数据转发过程。
 
假设三台CE设备都为同网段,且现在CE1需要访问CE2,则CE1会向外发送ARP请求广播报文,PE1收到此报文首先会学习MAC地址表,如表1,然后向其它端口泛洪此广播帧,此时PW1和PW2可认为是其它端口。

 
 \
在泛洪出去之前,会在ARP广播帧前面封装上私网标签、公网标签以及新的二层帧头,如图3所示。
\
▲图3
 
PW1上私网标签则是由PE2为自己的VSI实例分发给PE1的,PW2上私网标签则是由PE3为自己的VSI实例分发给PE1的,而公网标签则是中间的运营商网络通过LDP协议逐跳分发的,新的二层头部中目的MAC则是PE直连下一跳P设备的MAC。
 
由此数据包可分别转发至PE2和PE3,PE2和PE3收到数据包拆除公网标签,根据私网标签转发进相应实例,即转发给CE2和CE3。当然同时也会学习MAC地址表,如表2、表3所示。
\
\
CE2收到ARP请求则会立即回复ARP响应,此时为单播响应,目的MAC为CE1,数据包来到PE2时,PE2查MAC地址表转发,只需要转发给PE1即可,不再需要转发给PE3。
 
转发过程中同时学习MAC地址表,回程单播数据封装过程、转发过程和来程相似,不再赘述。以上即为VPLS转发BUM帧(广播、未知单播、组播帧)和已知单播帧的过程。
 
本篇文章最后再给大家分享下关于VPLS的防环机制,即水平分割,意思就是从公网侧PW收到的数据包不再转发到这个VSI关联的其它PW上,只能转发到私网侧,即从PE收到的报文不转发到其他PE。
 
好了,以上即为VPLS的原理,MPLS VPN的二层VPN——VPLS技术原理我们就分享到这了,希望大家阅读后有所收获。
 
未完待续,敬请期待!