当M-LAG接口故障但外网侧不感知、peer-link故障时备设备接口进入M-LAG MAD DOWN状态、设备故障时流量毫秒级切换至存活设备——M-LAG构建了一套从接口到设备、从链路到系统的多层次故障处理体系。新华三集团发布的这份技术白皮书,系统阐述了M-LAG在接口故障、链路故障、设备故障、二次故障等各类场景下的智能切换机制,以及在EVPN VXLAN组网中下行链路、上行链路和peer-link/Keepalive同时故障的复杂场景处理,为高可靠性网络设计提供了完整的技术参考。
基础故障处理——接口、链路、设备三层冗余保障
M-LAG接口故障:外网侧不感知,故障设备流量通过peer-link绕行
当某台M-LAG设备的M-LAG接口发生故障时,外网侧并不感知该故障,流量依然会发送给所有M-LAG设备。处理机制如下:故障设备(Device B)收到外网侧访问接入设备(Device C)的流量后,通过peer-link链路将流量交给另一台M-LAG设备(Device A),由Device A转发给Device C。故障恢复后,该M-LAG接口恢复up状态,流量正常转发。
对于已知单播流量,当M-LAG接口被手动shutdown、undo shutdown或M-LAG接口所在设备重启后,M-LAG设备支持下行链路切换无丢包,确保了运维操作对业务的影响最小化。
peer-link链路故障:备设备接口MAD DOWN,主设备独立转发
peer-link链路故障但Keepalive链路正常时,M-LAG系统启动MAD检测机制,将备设备上除保留接口外的所有接口置为M-LAG MAD DOWN状态。主设备上的M-LAG接口所在聚合链路状态仍为up,备设备上的M-LAG接口所在聚合链路状态变为down,从而保证所有流量都通过主设备转发。
一旦peer-link链路故障恢复,处于M-LAG MAD DOWN状态的接口经过延迟恢复时间自动恢复为up状态。备设备在延迟恢复期间完成表项同步,确保恢复后流量转发正常。
设备故障与上行链路故障:主备切换与绕行转发
设备故障时,主设备故障后备设备升级为主设备,该设备上的聚合链路状态为up继续转发流量。主设备故障恢复后,由从状态升级为主状态的设备仍保持主状态,故障恢复后的设备成为备设备。如果是备设备发生故障,M-LAG系统的主备状态不变,备设备上的聚合链路状态变为down,主设备继续转发流量。
上行链路故障并不影响M-LAG系统的转发。故障设备(Device A)的上行链路虽然故障,但外网侧转发相关表项由对端(Device B)通过peer-link同步给Device A,Device A将访问外网侧的流量发送给Device B转发。为提升效率,可配置Monitor Link功能将M-LAG组成员端口和上行端口关联,上行链路故障时联动M-LAG组成员端口状态变为down。
二次故障处理——peer-link与Keepalive双重故障的三种模式
缺省配置场景:备设备升主并解除MAD DOWN,可能导致双主双活
当peer-link先故障、Keepalite后故障时,缺省配置下,备设备会升为主设备并解除所有接口的M-LAG MAD DOWN状态,以双主双活方式转发流量。由于peer-link故障时无法同步表项,可能导致流量转发错误。当Keepalive先故障、peer-link后故障时,M-LAG设备上的接口不会被置为M-LAG MAD DOWN状态,直接以双主双活方式转发流量。
MAD DOWN状态保持功能:避免双主双活,但无法解决Keepalive先故障场景
开启M-LAG MAD DOWN状态保持功能后,若peer-link先故障、Keepalive后故障,备设备升为主设备但不会解除接口的M-LAG MAD DOWN状态,继续只从原来的主设备转发流量,避免双主双活。但若Keepalive先故障、peer-link后故障,则M-LAG设备上的接口不会被置为M-LAG MAD DOWN状态,直接以双主双活方式转发流量——此功能无法解决这一场景。
如果主设备故障或主设备上M-LAG接口故障导致无法转发流量,可关闭此功能,解除从设备接口M-LAG MAD DOWN状态,使从设备升级为主设备,保证流量正常转发。
设备独立工作功能:切换到独立工作模式,仅一台设备成员端口被选中
开启设备独立工作功能后,若peer-link先故障、Keepalive后故障,两台M-LAG设备切换到独立工作状态。切换后,M-LAG接口对应的聚合接口发送的LACP报文中携带的M-LAG系统参数还原为聚合接口的LACP系统MAC地址和LACP系统优先级,使同一M-LAG组中的两个聚合接口参数不一致。
这样,接入设备上仅一个成员端口可以被选中——由LACP系统优先级和系统MAC地址决定(越小越优先)。被选中的设备转发业务流量,避免流量转发异常。若选中的成员端口也故障,则选中另一台设备上的成员端口继续转发。
EVPN VXLAN组网的故障处理——下行链路、上行链路与双链路故障
下行链路故障:通过peer-link自动创建的AC或VXLAN隧道绕行
在EVPN VXLAN支持M-LAG组网中,下行链路故障时,上行流量通过未故障链路发送给另一台M-LAG设备转发。下行流量处理取决于peer-link类型。peer-link为以太网聚合链路时,故障设备(VTEP2)收到网络侧访问接入服务器的流量后,通过peer-link上自动创建的AC转发到对端VTEP1,VTEP1判断报文所属VSI并转发给接入服务器。peer-link为VXLAN隧道时,VTEP2为报文添加VXLAN封装,通过作为peer-link的VXLAN隧道转发到VTEP1,VTEP1根据VXLAN ID判断报文所属VSI并转发。
上行链路故障:逃生链路部署与VXLAN隧道备份路径
peer-link为以太网聚合链路时,建议将peer-link部署为逃生链路——允许peer-link转发三层流量,并在peer-link上运行路由协议,使M-LAG设备可通过peer-link与远端VTEP三层互通。部署逃生链路后,VXLAN隧道在underlay网络具有主备两条路径,经由peer-link的路径作为备份路径。
当某台M-LAG设备上行链路故障时,该设备与远端VTEP之间的VXLAN隧道仍保持up,对应underlay路径为经由peer-link的路径。该设备对上行流量进行VXLAN封装,通过peer-link绕行另一台设备发送给远端VTEP。下行流量因故障设备上行链路故障,只会发送给正常设备转发。
peer-link和Keepalive同时故障:M-LAG系统分裂,各设备独立工作
peer-link为以太网聚合链路时,peer-link和Keepalive同时故障会导致M-LAG系统分裂,两台设备均使用实际IP地址与远端VTEP建立VXLAN隧道,均可转发流量。接入服务器根据LACP优先级选择将上行流量发送给一台设备,下行流量也通过目的IP为实际IP地址的VXLAN隧道发送给同一设备。单挂接口的流量转发不受影响。peer-link为VXLAN隧道时的处理机制相同。