M-LAG故障场景流量转发
M-LAG作为一种跨设备链路聚合的技术,把链路可靠性从单板级提高到了设备级。如果出现故障(不管是链路故障、设备故障还是peer-link故障),M-LAG都能够保证正常的业务不受影响,下面介绍M-LAG在故障情况下是如何保障业务的正常运行的。
上行链路故障
图1 上行链路故障组网示意图如图1所示,M-LAG接入普通以太网场景,由于M-LAG主设备的上行链路故障,通过M-LAG主设备的流量均经过peer-link链路进行转发。
当故障的上行链路恰好为双主检测链路,此时对于M-LAG正常工作没有影响。一旦peer-link也发生故障,M-LAG出现双主冲突,双主检测又无法进行,则会出现丢包现象。
M-LAG接入三层网络场景下,需要在M-LAG主备设备之间配置三层逃生链路,使得到达Master设备的上行流量通过三层逃生链路到达Backup设备。
下行链路故障
图2 下行链路故障组网示意图当下行M-LAG成员口故障时,DFS Group主备状态不会变化,但如果故障M-LAG成员口状态为主,则备M-LAG成员口状态由备升主,流量切换到该链路上进行转发。发生故障的M-LAG成员口所在的链路状态变为Down,双归场景变为单归场景。故障M-LAG成员口的MAC地址指向peer-link接口。在故障M-LAG成员口恢复后,M-LAG成员口状态不再回切,由备升主的M-LAG成员口状态仍为主,原主M-LAG成员口在故障恢复后状态为备。可以执行display dfs-group dfs-group-id node node-id m-lag命令来查看成员接口当前状态。
对于组播源在网络侧,组播成员在接入侧的组播流量,当M-LAG主设备的M-LAG成员口故障时,通过M-LAG同步报文通知对端设备进行组播表项刷新,M-LAG主备设备不再按照组播地址奇偶进行负载分担,而是所有组播流量都由端口状态Up的M-LAG备设备进行转发,反之亦然。
M-LAG主设备故障
图3 M-LAG主设备故障组网示意图M-LAG主设备故障,M-LAG备设备将升级为主,其设备侧Eth-Trunk链路状态仍为Up,流量转发状态不变,继续转发流量。M-LAG主设备侧Eth-Trunk链路状态变为Down,双归场景变为单归场景。
如果是M-LAG备设备发生故障,M-LAG的主备状态不会发生变化,M-LAG备设备侧Eth-Trunk链路状态变为Down。M-LAG主设备侧Eth-Trunk链路状态仍为Up,流量转发状态不变,继续转发流量,双归场景变为单归场景。
M-LAG设备故障恢复时,peer-link先UP,DFS状态重新协商,M-LAG成员口恢复UP,流量恢复负载分担。M-LAG主设备恢复后设备状态仍然为主,M-LAG备设备恢复后设备状态仍然为备。
peer-link故障
图4 peer-link故障组网示意图缺省情况下,M-LAG应用在普通以太网络、VXLAN网络或IP网络的双归接入,peer-link故障但双主检测心跳状态正常时,会触发M-LAG备设备上除逻辑端口、管理网口、peer-link接口和堆叠口以外的其他接口处于Error-Down状态。M-LAG应用在TRILL网络的双归接入,peer-link故障但双主检测心跳状态正常时,会触发M-LAG备设备上的M-LAG接口处于Error-Down状态。
peer-link故障恢复时,处于Error Down状态的M-LAG接口默认将在240s后自动恢复为Up状态,处于Error Down状态的其它接口将立即自动恢复为Up状态。
通过命令dual-active detection error-down mode routing-switch可以配置M-LAG场景下peer-link故障但双主检测心跳状态正常时,触发Error-Down的端口包括逻辑端口。如当M-LAG应用在VXLAN网络或IP网络的双归接入,peer-link故障但双主检测状态正常时,会触发M-LAG备设备上VLANIF接口、VBDIF接口、LoopBack接口以及M-LAG成员口处于Error-Down状态。
在配置M-LAG场景下peer-link故障但双主检测心跳状态正常时触发端口Error-Down的范围包括逻辑端口后,若M-LAG系统peer-link接口故障恢复,为保证大规格VLANIF接口下的ARP同步正常,设备将在DFS Group配对成功后延迟6s恢复VLANIF接口、VBDIF接口、LoopBack接口为Up状态。此时,如果在接口下配置了接口三层协议状态延时Up时间,则VLANIF接口、VBDIF接口、LoopBack接口恢复Up状态的延迟时间为两者之和。
在peer-link故障双主场景下,为提升正切收敛性能,建议用户在M-LAG成员设备与上下行设备相连的接口,以及这些设备上对接的接口上配置port-status fast-detect enable,使能芯片快速感知接口物理状态变化的功能。
通过在端口下配置命令m-lag unpaired-port suspend和m-lag unpaired-port reserved可以灵活配置某个端口在M-LAG场景下peer-link故障但双主检测心跳状态正常时是否将端口Error-Down。配置和设备端口Error-Down对应情况如表1所示。
设备配置情况 |
M-LAG接入普通以太网络、VXLAN网络或IP网络 |
---|---|
设备缺省情况 |
除逻辑端口、管理网口、peer-link接口和堆叠口以外的接口处于ERROR DOWN状态。 |
设备仅配置suspend功能 |
仅M-LAG成员口以及配置该功能的接口处于ERROR DOWN状态。 |
设备仅配置reserved功能 |
除配置该功能的接口、逻辑端口、管理网口、peer-link接口和堆叠口以外的接口处于ERROR DOWN状态。 |
设备同时配置suspend功能和reserved功能 |
仅M-LAG成员口以及配置suspend功能的接口处于ERROR DOWN状态。 |
M-LAG二次故障(peer-link故障+M-LAG设备故障)
图5 M-LAG二次故障场景下使能二次故障增强功能组网示意图如图5中2所示,在M-LAG应用于双归接入时,当peer-link故障但双主检测心跳状态正常会触发M-LAG备设备上某些端口处于Error-Down状态,此时M-LAG主设备继续工作。在该场景的基础上,若M-LAG主设备由于断电、主控板损坏、整机故障重启等其他故障导致主设备不能工作时,由图5中3所示,此时M-LAG主备设备皆不能正常转发流量。
在该场景下,可以借助M-LAG二次故障增强功能来实现该故障场景下业务不中断的可靠性要求,如图5所示,通过M-LAG二次故障增强功能来说明不同的故障阶段和产生的行为:- Peer-link链路故障: 若Peer-link链路故障但双主检测心跳链路状态正常将会触发M-LAG备设备上某些端口处于ERROR DOWN(端口Error-Down范围可以参见peer-link故障)状态,M-LAG主设备继续工作。
- M-LAG主设备故障:若M-LAG主设备在peer-link链路故障后由于断电、主控板损坏、整机故障重启等其他故障导致不能工作时,此时M-LAG主备设备皆不能转发流量,业务中断。
- 二次故障增强功能使能:在上述场景基础下,若M-LAG已使能二次故障增强功能,则Error-Down的设备会借助M-LAG双主检测机制感知到主设备故障(在一定周期内接收不到任何的M-LAG双主检测心跳报文)后,将该设备上处于ERROR DOWN状态的端口恢复为Up状态,继续转发流量。
- 设备故障恢复:若原DFS状态为主的设备故障恢复后但peer-link故障仍故障
- 若配置LACP M-LAG的系统ID在一定时间内切换为本设备的LACP系统ID,则在LACP协商时接入侧仅选择上行链路中的一条链路为活动链路,实际流量转发正常。
- 若配置LACP M-LAG的系统ID为缺省情况,即系统ID不回切,M-LAG两台设备均使用同一系统ID来与接入侧设备协商,链路均能被选中成为活动链路。该场景下,由于peer-link链路仍然故障,M-LAG两端无法同步对端的优先级、系统MAC等信息,形成M-LAG两台设备双主的情况,可能导致流量异常。此时,如图6所示,可以借助心跳链路报文中携带必要的DFS Group协商主备的必要信息(如DFS Group优先级、系统MAC等)来协商M-LAG两台设备的HB DFS主备信息,触发HB DFS状态为备的设备上某些端口处于ERROR DOWN(端口Error-Down范围可以参见peer-link故障)状态,HB DFS状态为主的设备继续工作。
若在peer-link故障后,二次故障的设备为DFS状态为备的设备,则此时不会对流量转发行为产生影响,仍由DFS状态为主的设备进行流量转发。
图6 M-LAG二次故障场景下设备故障恢复组网示意图