EVPN MAC迁移抑制
在EVPN ELAN网络中,可能由于部署原因导致两个PE设备之间可以同时通过网络侧和接入侧链路互连。这样该组网中会出现BUM流量环路,并发生MAC路由振荡现象,从而影响设备正常使用。系统中的EVPN MAC迁移抑制功能可以解决这个问题。
PE1从CE1收到BUM流量后,PE1将从流量的源MAC地址学习到CE1的MAC地址M1。PE1通过EVPN协议向PE2发送目的地址为M1的MAC路由。
PE2收到M1的MAC路由并匹配RT后,该MAC路由将交叉到相应EVPN实例中,并生成MAC表项,同时迭代到通往PE1的网络侧VXLAN/MPLS隧道。
PE2还可以从与PE1直连的接入侧链路收到BUM流量。在收到该流量后,PE2也会根据流量的源MAC地址生成M1的MAC路由。此时PE2将认为M1已经迁移到了自己的接入侧网络。PE2会优选本地接入侧收到的MAC,所以PE2将向PE1发送M1的MAC路由,同时携带MAC迁移属性,迁移序列号为Seq0+1。
PE1从PE2收到M1的MAC路由并匹配RT后,PE1会将该MAC路由交叉到相应的EVPN实例中。由于迁移序列号大的路由优先,所以PE1优选从PE2收到的MAC路由并生成MAC表项,同时迭代通往PE2的网络侧VXLAN/MPLS隧道。然后PE1会向PE2发送MAC路由撤销信息。
PE1再次从接入侧链路收到BUM流量后,PE1会再次生成M1的MAC路由,并认为M1已经迁移到了自己的接入侧网络。PE1会优选本地MAC路由并向PE2发送M1的MAC路由,该路由将会携带MAC迁移属性,迁移序列号为Seq0+2。
PE2从PE1收到M1的MAC路由并匹配RT后,PE1会将该MAC路由交叉到相应的EVPN实例中。由于迁移序列号大的路由优先,所以PE2优选从PE1收到的MAC路由并生成MAC表项,同时迭代通往PE1的网络侧VXLAN/MPLS隧道。然后PE2会向PE1发送MAC路由撤销信息。
PE2再次从与PE1直连的接入侧链路收到BUM流量后,PE2会再次生成M1的MAC路由,并认为M1再次迁移到了自己的接入侧网络。PE2会优选本地MAC路由并向PE1发送M1的MAC路由,该路由将会携带MAC迁移属性,迁移序列号为Seq0+3。
如上所述,重复步骤3至步骤7,MAC路由的迁移序列号将不断加1,网络中形成路由振荡。
为了避免此种情况下产生的流量环路和路由振荡,系统会启动MAC迁移抑制功能。系统会检查一个检测周期内MAC表项跳变的次数,如果跳变次数超过阈值,则系统会认为网络中发生了MAC路由振荡,并对振荡的MAC路由进行抑制,即不能再通过BGP EVPN邻居关系发送给远端PE设备。
部署黑洞MAC路由功能后,系统会将抑制的MAC路由设置为黑洞路由。如果PE设备再次收到源MAC地址或目的MAC地址与黑洞MAC路由的MAC地址相同的转发流量,则PE会将该流量丢弃。
如果用户同时还部署了接入侧接口阻断功能,即如果流量来自本地的一个接入侧接口,且该流量的源MAC地址为黑洞MAC路由的MAC地址,那么该接入侧接口将会被阻断,这样可以更快速的破环。仅BD模式的EVPN实例支持接入侧接口的阻断功能。