“前面讲到了M-LAG设备间通过Keepalive链路检测...
“前面讲到了M-LAG设备间通过Keepalive链路检测邻居状态,即通过交互Keepalive报文来进行peer-link链路故障时的双主检测,避免两台 M-LAG 设备均升级为主设备。可是当peer-link链路故障后,如何防止从设备继续转发流量呢?” 华小阮老师抛出了一个问题。“此时会有MAD机制参与工作。”华小育同学回答道。“好的,下面就有请小育同学为大家分享一下MAD机制吧。”华小阮老师心想,总算可以休息一会了。
M-LAG MAD机制peer-link链路故障后,为了防止从设备继续转发流量,M-LAG提供MAD(Multi-Active Detection,多Active检测)机制,即在M-LAG系统分裂时将设备上部分接口置为M-LAG MAD DOWN状态,不允许此类接口转发流量,避免流量错误转发,尽量减少对业务影响。M-LAG设备上的接口在M-LAG分裂后会出现如下2种状态:1)M-LAG系统分裂后接口保持在原状态不变,也就是up状态。在M-LAG系统分裂时,M-LAG设备上接口保持UP状态的接口有如下两类:① M-LAG保留接口:系统保留和用户配置保留。a) 系统保留接口包括:peer-link接口、peer-link接口所对应的二层聚合接口的成员接口、M-LAG接口(是M-LAG聚合接口保留,M-LAG聚合接口对应的成员接口不保留)、管理以太网接口。b) 用户配置保留;用户通过命令m-lag mad exclude interface XXX。② 配置了强制端口UP功能的接口 。a) 通过loopback命令开启接口的环回功能。b) 通过loopback命令开启接口的环回功能。c) 通过mirroring-group reflector-port命令为远程源镜像组配置反射端口。d) 通过port up-mode命令强制开启光口。2)M-LAG系统分裂后接口处于M-LAG MAD DOWN状态。当peer-link链路故障恢复后,为了防止丢包,从设备尽可能在延迟恢复时间内完成表项(MAC地址表、ARP表等)同步,其后该设备上处于M-LAG MAD DOWN状态的接口将恢复为up状态。“好好好,分享的非常好。那请你继续分享M-LAG二次故障处理机制吧。”华小阮老师一脸期待的看着小育同学。
M-LAG二次故障处理机制M-LAG二次故障是指在peer-link链路发生故障后,Keepalive链路也发生故障,或者在Keepalive链路发生故障后,peer-link链路也发生故障。也就是说二次故障有两种场景。如图1所示,具体来分析一下M-LAG的二次故障:1)若peer-link链路先发生故障,此时两端M-LAG设备会根据Keepalive链路进行设备角色选举,并依据MAD检测机制,将从设备上除M-LAG保留接口外的所有接口置为M-LAG MAD DOWN状态。此后,若Keepalive链路也发生故障,从设备也会升为主设备,并解除设备上所有接口的M-LAG MAD DOWN状态,以双主双活的方式转发流量。由于peer-link链路故障时,无法同步表项,可能导致流量转发错误。2)若Keepalive链路先发生故障,peer-link链路后发生故障,则M-LAG设备上的接口不会被置为M-LAG MAD DOWN状态,而是直接以双主双活的方式转发流量。
图1可见,当M-LAG系统发生二次故障后,都会出现双主双活转发的问题。基于M-LAG系统发生二次故障的场景,此处有两种解决方案:开启M-LAG MAD DOWN状态保持功能和开启设备独立工作模式。1)开启M-LAG MAD DOWN状态保持功能如图2所示,若peer-link链路先发生故障,此时两端M-LAG设备会根据Keepalive链路进行设备角色选举,并依据MAD检测机制,将从设备上除M-LAG保留接口外的所有接口置为M-LAG MAD DOWN状态。此后,若Keepalive链路也发生故障,从设备也会升为主设备,但由于M-LAG设备已开启M-LAG MAD DOWN状态保持功能,将不会解除设备上所有接口的M-LAG MAD DOWN状态,继续只从原来的主设备转发流量。这样将不会出现双主双活的情况,避免流量转发异常。但是若Keepalive链路先发生故障,peer-link链路后发生故障,则M-LAG设备上的接口不会被置为M-LAG MAD DOWN状态,而是直接以双主双活的方式转发流量。此种场景就不适合开启M-LAG MAD DOWN状态保持功能来解决。
图22)开启设备独立工作模式如图3所示,若peer-link链路先发生故障,此时两端M-LAG设备会根据Keepalive链路进行设备角色选举,并依据MAD检测机制,将从设备上除M-LAG保留接口外的所有接口置为M-LAG MAD DOWN状态。此后,若Keepalive链路也发生故障,从设备也会升为主设备,解除所有接口的M-LAG MAD DOWN状态。但由于已开启立即或延迟切换到设备独立工作状态功能,两台M-LAG设备将切换到独立工作状态,切换后M-LAG接口对应的聚合接口发送的LACP报文中携带的M-LAG系统参数还原为聚合接口的LACP系统MAC地址和LACP系统优先级,使同一M-LAG组中的两个聚合接口的LACP系统MAC地址和LACP系统优先级不一致。这样只有一边聚合接口的成员端口可以被选中,通过被选中的设备转发业务流量,避免流量转发异常。成员端口的选中与LACP系统优先级和系统MAC地址相关,与M-LAG设备角色无关。LACP系统优先级和系统MAC地址越小,则优先被选中。若选中的成员端口也发生故障,则将选中另外一台设备上聚合接口的成员端口,通过该聚合接口继续转发流量。若Keepalive链路先发生故障,peer-link链路后发生故障,则M-LAG设备上的接口不会被置为M-LAG MAD DOWN状态,将立即或延迟一段时间切换到设备独立工作模式。
图3开启设备独立工作模式,可以解决peer-link链路先故障、keepalive链路后故障的场景,也可以解决keepalive链路故障、peer-link链路后故障的场景。闻道有先后,术业有专攻,扫描下方二维码,添加好友,让我们一起进步吧!
图片|王在礼文字|王在礼排版|张坚审核|姜明哲@新媒体中心