S12508设备打印下面的日志信息,表明设备检测出IRF MAD故障,并自动将所有业务端口主动DOWN。
%@131509%Oct 22 20:00:21:557 2010 H3C MAD/1/MAD_LOG:Multi-Active devices detected, please fix it.。
但是S12508堆叠实际上并未分裂,但其端口被MAD shutdown
Ten-GigabitEthernet2/2/0/37
Current state: MAD ShutDown
Line protocol state: DOWN
%@131509%Oct 22 20:00:21:557 2010 H3C MAD/1/MAD_LOG:Multi-Active devices detected, please fix it.。
1.根据收集的诊断信息和日志信息,发现设备检测出IRF MAD故障的主要原因是由于在19点58分,维护人员在S12500设备上实施mad enable功能导致的。
%@131456%Oct 22 19:58:24:610 2010 H3C SHELL/4/CMD:task:co2 ip:** user:tbxiaochong command:interface Bridge-Aggregation 63
%@131460%Oct 22 19:58:38:961 2010 H3C SHELL/4/CMD:task:co2 ip:** user:tbxiaochong command:mad enable
2.下面将会从MAD的基本原理,详细的分析出现此故障的具体原因。
MAD原理:
IRF链路故障会导致一个IRF变成两个新的IRF。为了提高系统的可用性,当IRF分裂时我们就需要一种机制,能够检测出网络中同时存在多个IRF,并进行相应的处理尽量降低IRF分裂对业务的影响。MAD(Multi-Active Detection,多Active检测)就是这样一种检测和处理机制。
LACP MAD检测是通过扩展LACP协议报文内容实现的,即在LACP协议报文的扩展字段内定义一个新的TLV(type length value)数据域——用于交互IRF的ActiveID。对于IRF系统来说,ActiveID的值是唯一的,用IRF中Master设备的成员编号(member ID)来表示。
使能LACP MAD检测后,成员设备通过LACP协议报文和其它成员设备交互ActiveID信息。
当IRF正常运行时,所有成员设备发送的LACP协议报文中的ActiveID值相同,没有发生多Active冲突;
当IRF分裂后会形成两个或多个IRF时,不同IRF中的成员设备发送的LACP协议报文中的ActiveID值不同,从而检测到多Active冲突。
通过MAD机制,IRF会检测到网络中存在其它处于Active状态的IRF。冲突处理会让Master成员编号最小的整个IRF系统继续正常工作(维持Active状态),其它IRF系统(这个系统中所有成员设备)会迁移到Recovery状态(表示IRF处于禁用状态),并关闭Recovery状态的IRF系统中所有成员设备上的业务端口(除保留端口),以保证该IRF不能再转发业务报文。
为了让同一个网络里可以部署多个IRF,IRF之间使用域编号来以示区别。如果一个网络中有两个IRF系统,分别为IRF1和IRF2,同时IRF1和IRF2之间有MAD检测链路,如不配置域编号,则IRF1和IRF2会通过检测链路互相发送MAD检测报文,从而彼此影响IRF系统的状态和运行。这种情况下,可以给两个IRF配置不同的域编号,以保证两个IRF互不干扰。
3.故障分析
根据上面MAD的原理,我们来分析这此S12500故障的原因。下图是现场S12500的组网示意图:
其中58IRF-A(H02)与12508-IRF通过聚合组62连接,58IRF-B(E02)与12508-IRF通过聚合组63连接,聚合组62和63都是LACP聚合组,并配置了mad enable。
在58IRF-A中,58-2为master,IRF堆叠环境的IRF member-id为2,在58IRF-B中,58-3为master,IRF member-id为1,chassis 1为master,58IRF-A和58IRF-B的IRF member-id不同。在12508-IRF中,app-2是master,IRF member-id为2。
前面LACP mad介绍时提到,当LACP聚合组配置mad enable之后,收到member-id与自己的member-id不同时,会将member-id大的设备所有端口shutdown。举例来说,如图中所示,chassis 1的设备发送的LACP报文member-id为1,chassis 2的设备发送的LACP报文member-id为2,造成LACP报文中member-id不同的情况。当收到member-id与自己不同的LACP报文时,IRF环境会将member-id大的设备,所有端口shutdown,从而避免了出现多个master的情况。
现场出现问题的情况,接上58IRF-A的光纤之后,因为两个IRF系统发送的LACP报文中携带的Member ID相同,所以一切正常,但是当接上58IRF-B的一对光纤之后,由于两侧发送的Member ID不同,促发MAD检测生效,使得12508-IRF的所有端口全部shutdown,导致业务中断。
详细过程为在58IRF-A的光纤接上之后,58IRF-A chassis 2是master,member-id为2,发送的LACP报文member-id为2,12508-IRF收到了member-id为2的LACP报文,因为与自身member-id相同,12508-IRF就不会认为存在MAD冲突;
当把58IRF-B的光纤接上之后,12508-IRF收到了member-id为1的LACP报文,与自身member-id不同,并且由于自身的member-id为2,比对端发送的LACP报文携带的Member ID大,所以app-12508就因为MAD检测生效,而将系统置为Recovery状态,并且shutdown IRF系统内所有的业务端口,导致业务不通。
两组IRF系统互相做LACP MAD检测,配置了一样的domain id,使得12500误认为收到同一个IRF系统的member id一致的LACP报文,导致MAD检测生效。因此同一个网络内不同的IRF系统必须配置不同的domain id。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作