PBB-EVPN基本原理
PBB-EVPN的基本组网
PBB-EVPN是一种基于MPLS和以太网技术的新一代二层VPN技术。在控制平面上PBB-EVPN技术可以使用BGP协议在各个PE设备间传递MAC地址信息,从而控制不同Site上的数据报文跨MPLS网络进行传输。
PBB:PBB技术由IEEE 802.1ah规定,它通过在用户MAC地址(C-MAC)之前封装公网虚拟MAC地址(B-MAC),实现了用户网络与运营商网络的完全隔离,保证了网络的稳定,并且降低了对公网设备的MAC转发表项数量的需求。
I-EVPN(Instance-EVPN):I-EVPN实例通过与CE连接的接口进行绑定从而连接用户侧网络。当用户侧网络发来数据报文时,为CE侧发来的报文封装PBB报文头。
B-EVPN(Backbone-EVPN):B-EVPN实例用于连接骨干网络,其上可以管理从其他PE设备上发来的EVPN路由信息。
I-SID:一个I-EVPN实例对应一个I-SID,通过配置I-SID可以唯一标识一个广播域。如果两台PE使用了相同的I-SID接入PBB-EVPN网络,则这两台设备属于同一个多播组。
PBB-EVPN实现原理中的关键点如表12-7所示。
所属平面 |
实现要点 |
相关概念 |
---|---|---|
控制平面 |
PE设备间通过BGP邻居关系传播PBB-EVPN的路由,通过这些路由可以使PE设备相互学习各自的B-MAC地址,从而实现数据报文的传输。 |
|
PBB-EVPN支持快速收敛。 |
||
在多归组网中,PBB-EVPN通过支持DF选举避免网络带宽资源的浪费。 |
||
PBB-EVPN支持水平分割,防止环路。 |
||
在多归组网中,PBB-EVPN支持负载分担。PBB-EVPN当前仅支持基于流(Per-Flow)的负载分担,不支持基于VLAN(Per-ISID)的负载分担。 |
||
数据平面 |
PBB-EVPN支持对单播报文与BUM(Broadcast&Unknown-unicast&Multicast)报文的传输。 |
|
PBB-EVPN的路由
MAC地址通告路由(MAC advertisement route):MAC地址通告路由可以携带本端PE上B-EVPN实例的RD值、B-MAC地址以及EVPN实例对应的私网标签,MAC地址通告路由的前缀报文格式如图12-45所示。该类型路由可以用于从本端PE向其它PE发布B-MAC地址的可达信息。此外,当网络拓扑发生变化时,例如CE节点或CE与PE间的链路发生故障,PBB-EVPN可以使用MAC地址通告路由通告其他PE设备刷新与指定B-MAC对应的C-MAC地址信息,从而实现快速收敛。
字段解释如下:Route Distinguisher:该字段为EVPN实例下设置的RD(Route Distinguisher)值。
Ethernet Segment Identifier:该字段为全0或者全F。在双归单活场景时,取值为全0;在双归双活场景下,取值为全F。
Ethernet Tag ID:该字段在MAC地址通告路由中为全0。
MAC Address Length:被该类型路由通告的MAC地址长度。
MAC Address:被该类型路由通告的MAC地址。
IP Address Length:该字段属于预留。
IP Address :该字段属于预留。
MPLS Label1:该字段携带的是ESI标签。
MPLS Label2:该字段属于预留。
集成多播路由(Inclusive Multicast Route):当PE之间的BGP邻居关系建立成功后,PE之间会传递集成多播路由,集成多播路由可以携带本端PE上EVPN实例的RD、I-SID(Instance Service Identifier)和Source IP(一般为本端PE的Loopback地址),集成多播路由的格式如图12-46所示。多播流量包括广播流量、组播流量和未知目的地址的单播流量。当一台PE设备收到多播流量后,会将多播流量以点到多点的形式转发给其他PE设备。PE设备之间通过集成多播路由可以建立传送流量的隧道,包括MP2P、P2P隧道。
字段解释如下:Route Distinguisher:该字段为EVPN实例下设置的RD值。
Ethernet Tag ID:该字段为I-SID。
IP Address Length:PE上配置的源地址长度。
Originating Router's IP Address :PE上配置的源地址。
以太网段路由(Ethernet Segment Route):以太网段路由可以携带本端PE上的EVPN实例的RD值、ESI值和Source IP地址,用来实现连接到相同CE的PE设备之间互相自动发现。以太网段路由主要用于DF选举。以太网段路由的格式如图12-47所示。
字段解释如下:Route Distinguisher:该字段是由PE上设置的源IP地址组合而成,例如X.X.X.X:0。
Ethernet Segment Identifier:PE与某一CE的连接定义的唯一标识。
IP Address Length:PE上配置的源地址长度。
Originating Router's IP Address :PE上配置的源地址。
其他相关概念
快速收敛
如图12-48所示,当CE1和PE1之间的链路出现故障时,PE1会对PE3发布MAC地址通告路由,MAC地址通告路由里会携带MAC地址变更扩展团体属性(MAC Mobility Extended Community),这种可以通知PE3对Site1侧的C-MAC的可达性变成为不可达。当PE3收到携带有MAC地址变更的扩展团体属性的MAC地址通告路由之后,PE3将仅使用PE2向Site1发送流量,这样可以避免逐条发送C-MAC路由撤销信息,大大减少了收敛时间。
DF选举
如图12-49所示,CE1双归属至PE1和PE2,CE2发送多播流量至PE1和PE2,为了避免CE1从PE1和PE2收到重复的流量而造成的网络资源浪费,EVPN引入了DF选举机制,即从PE1和PE2中指定一个PE来转发多播流量。如果PE1被选举为主DF,则从CE2方向发来的多播流量将只从PE1向CE1转发,而未被选中的PE2则成为备份DF。
如果PE与CE连接的接口状态为Down,则该PE成为备份DF。如果PE与CE连接的接口状态为Up,则该PE与其他接口同样为Up的PE共同选举出一个主DF,其具体选举过程如下:水平分割
如图12-50所示,CE1双归属至PE1和PE2时,如果PE1和PE2之间建立了邻居关系,则当PE1从CE1收到了多播流量后,PE1会将多播流量转发至PE2。为了避免PE2继续将流量转发至CE1形成环路,EVPN中定义了水平分割功能,即在PE1收到来自CE1的多播流量会转发给PE2,PE2收到报文后将检查流量报文中携带的源PE节点的B-MAC地址,发现该B-MAC地址等于PE2上配置的B-MAC地址,则PE2不会将该多播流量发送至CE1,从而避免形成环路。
冗余模式
在CE多归属组网中,可以配置EVPN组网的冗余模式,即配置与同一CE相连的各个PE的活跃模式为多活跃模式或单活跃模式。通过配置冗余模式可以控制CE多归属组网是否对单播流量进行负载分担。如图12-51所示,如果PE1和PE2都配置为多活跃模式,在PE1和PE2通过MAC通告路由将相同的B-MAC地址信息发送给PE3后,则PE3在向CE1发送单播流量时,会以负载分担的形式同时向PE1和PE2发送流量。
BUM报文传输过程
CE1将数据报文发送至PE1;
PE1在C-MAC表项中查询C-DMAC,如果未查找到这个MAC地址,则BUM报文的传输过程进行处理,即PE1向属于同一冗余组的所有PE设备发送多播报文。PE1将BUM报文复制成两份,每份报文将先后封装上PBB报文头(PBB报文头中的B-DMAC地址为广播MAC地址)和公私网隧道标签,然后发送给远端PE;
PE2和PE3收到多播报文后,将对报文解封装并根据私网标签将BUM报文发送至对应的站点。
以图12-51为例,如果PE1和PE2的冗余模式为单活跃模式,则无论是CE1至CE2方向还是CE2至CE1方向的BUM流量,都将在BUM流量传输至作为备份DF的PE设备上丢弃;如果PE1和PE2的冗余模式为多活跃模式,则仅有CE2至CE1方向的BUM流量在传输至作为备份DF的PE设备上时被丢弃。
单播报文传输过程
CE1将数据报文以二层转发的方式发送至PE1,报文上封装有C-SMAC(源C-MAC)和C-DMAC(目的C-MAC);
PE1根据报文中的目的C-MAC地址在C-MAC转发表项中查找到对应的转发信息后,PE1上的I-EVPN实例根据这些信息为单播报文封装上PBB报文头,PBB报文头包括I-SID、B-SMAC(源B-MAC)和B-DMAC(目的B-MAC),其中I-SID和B-SMAC是在I-EVPN实例上配置的,B-DMAC可以根据C-DMAC查找到。封装上PBB报文头后,PE1再为报文封装上两层私网与公网MPLS隧道标签,然后将单播报文发送至PE2;
PE2收到封装后的单播报文后,将解封装隧道标签和PBB报文头,然后根据PE2上的C-MAC转发表项查找到对应出接口。