MAD(Multi-Active Detection,多Active检测)能够检测IRF的拓扑状态,并在IRF分裂后采取一定的安全措施保障网络正常运行,是IRF环境中推荐使用的维护类功能。目前MAD的实现方式有三种:
IRF是指由多台设备通过IRF链路互相连接形成的一台虚拟设备,这台虚拟设备在网络中以一台独立设备的形态和其他设备进行通信。组建IRF的各台设备称为成员设备。
在IRF正常运行时,所有成员设备均使用相同的配置(包括IP地址、路由协议等所有功能配置);当IRF链路出现故障时,会使IRF发生分裂,产生两个或多个新的IRF。此时,这些IRF各自的成员设备仍然运行着分裂前的配置,造成网络中存在多台IP地址以及其他三层配置相同的设备,会对网络中其他设备的协议运算和数据转发产生干扰,影响网络正常运行甚至导致数据丢失。
图1-1 IRF分裂后带来的网络问题
MAD的主要功能是及时检测出IRF发生分裂,并在分裂后的多个IRF之间发起竞选。MAD的竞选条件是Master设备的成员编号(也称为IRF的ActiveID),ActiveID较小的IRF获胜,保持正常工作状态(置于Active状态),其余IRF则通过关闭所有接口(除IRF物理端口和Console口)的方式与网络进行隔离(置于Recovery状态),以避免其它设备感知到网络中存在多个IRF从而造成网络故障的进一步扩散。
图1-2 MAD功能在IRF分裂后的处理方法
配置了MAD功能后,IRF发生分裂时能够得到快速有效的处理,减少了对网络中其它设备的影响。网络管理者此时可以专注于修复IRF链路,待IRF链路修复完成后,处于Recovery状态的IRF将与正常工作的IRF发生合并,恢复原有的IRF状态。
图1-3 MAD故障恢复过程
实现MAD功能的关键在于快速检测IRF的分裂事件,并在分裂后的多个IRF之间交互各自的ActiveID以方便竞选。我们可以借助以下几种技术来帮助MAD进行IRF链路的检测。
l LACP
l BFD
l ARP
LACP(Link Aggregation Control Protocol,链路聚合控制协议)是一种实现链路动态聚合的协议,链路聚合不但能够实现流量的负载分担,而且还能提供链路的冗余备份,是比较常见的组网形式。
如果在IRF与其他设备之间使用了链路聚合的连接方式,便能够通过LACP MAD来对IRF进行检测,与IRF进行链路聚合的设备被称之为LACP MAD的中间设备。
使用LACP MAD功能时,要求IRF中的每台成员设备都与中间设备进行连接,并将这些链路组成一个动态链路聚合组。
在IRF中开启LACP MAD功能后,各成员设备会在LACP协议报文的扩展字段中加入IRF的ActiveID。中间设备在收到带有扩展字段的LACP报文后,会将此报文向聚合组中的其他端口进行透传,使IRF中的所有成员设备都能收到其他成员设备发出的LACP报文。
l 当IRF正常运行时,各台成员设备发送的LACP报文中具有统一的ActiveID,不会发生多Active冲突。
l 在IRF发生分裂后,不同IRF中的成员设备发送的LACP报文将携带不同的ActiveID,当这些LACP报文到达其它IRF的成员设备时,会产生多Active冲突。此时将由MAD功能发起竞选,并通过竞选机制关闭竞选失败的IRF。
图1-4 LACP MAD检测机制示意图
BFD(Bidirectional Forwarding Detection,双向转发检测)协议用于快速检测、监控网络中链路或者IP路由的转发连通状况,保证邻居之间能够快速检测到通信故障。BFD MAD就是利用BFD技术来实现MAD快速检测。
采用BFD MAD检测时,需要在IRF的成员设备之间搭建BFD检测链路,该链路可以在成员设备间直接连接,也可以通过其他设备进行透传。另外,还要创建一个VLAN接口作为BFD MAD检测VLAN,并为每台成员设备配置不同的MAD IP地址,与成员设备编号进行绑定,用于成员设备间BFD检测及分裂后的竞选。
用于BFD MAD检测的接口以及BFD MAD检测链路上的端口必须为BFD MAD功能专用,不能传输业务数据,也不能配置包括ARP、LACP在内的所有的二层或三层协议应用。
如果网络中存在多个IRF,在配置BFD MAD时,各IRF必须使用不同的VLAN作为BFD MAD检测专用VLAN。
开启BFD MAD检测功能后,IRF内的Master设备会使用自身的MAD IP作为BFD会话的源IP,向BFD MAD链路上的其他成员设备尝试建立BFD会话。
l 当IRF正常运行时,除Master外其它成员设备的MAD IP不会生效,因此BFD会话无法建立。
l 在IRF发生分裂后,不同IRF中的Master设备将继续向BFD MAD检测链路上的其他设备尝试建立BFD会话。由于其它IRF中Master设备的MAD IP已经生效,因此BFD会话可以正常建立。此时MAD功能会提示网络中存在了多个处于工作状态的IRF。由于MAD IP与成员编号是一一绑定的,因此每个IRF都能通过BFD会话获取相邻IRF的ActiveID,MAD功能可以通过竞选将竞选失败的IRF关闭。
图1-5 BFD MAD检测机制示意图
ARP MAD的实现方式与LACP MAD类似,不同之处在于ARP MAD是利用免费ARP报文来携带IRF的ActiveID。
ARP MAD的检测链路可以在IRF成员设备间直接建立,也可以通过中间设备建立,由中间设备将免费ARP报文透传至其他成员设备。在常见的组网中,通常都是用中间设备结合MSTP功能实现免费ARP报文的交互。
如图1-6所示,中间设备通过MSTP双上行的方式连接到IRF中的两台成员设备。
l 当IRF正常运行时,接入层设备会通过MSTP算法阻塞一条上行链路,使成员设备发送的免费ARP报文无法到达另一台成员设备。
l 在IRF发生分裂后,由于网络拓扑发生变化,中间设备会将阻塞的端口打开,此时两个IRF之间便可以接收到各自发送的免费ARP报文。由于两台IRF的IP地址相同但MAC地址不同,因此会产生免费ARP的冲突,即表示发生了多Active冲突。此时将由MAD功能发起竞选,比较两个IRF发送的免费ARP报文中携带的ActiveID,并关闭竞选失败的IRF。
图1-6 ARP MAD检测机制示意图
说明:为提高ARP MAD的检测速度,需要将IRF的MAC地址保留时间设置为立即更新,设置方法请参见产品的IRF配置指导。
三种MAD检测机制各有特点,用户可以根据现有组网情况进行选择。
表1-1 三种MAD检测机制的比较
MAD检测方式 | 优势 | 限制 |
LACP MAD | 检测速度快,利用现有聚合组网即可实现,无需占用额外端口和接口 | 组网中需要中间设备,并且该设备必须为支持LACP扩展功能的H3C交换机 |
BFD MAD | 检测速度较快,组网形式灵活,对其他设备没有要求 | 需要使用额外的端口和三层接口,这些端口和接口不能再传输普通业务流量 |
ARP MAD | 对其他设备没有要求,在使用中间设备的组网中不需要占用额外端口 | 检测速度慢于前两种,需要配置专用三层接口 |
根据各种检测机制的特点和配置需求,我们以常见的IRF组网方式来介绍三种检测机制各自的适用场景。
图1-7 IRF常见组网示意图
如果图1-7中的接入层设备使用聚合方式上行到IRF,并且是支持LACP扩展功能的H3C交换机,这种情况适用LACP MAD检测方式。
图1-8 LACP MAD典型适用场景
如果图1-7中的接入层设备使用聚合方式上行到IRF,但不是H3C交换机或不是支持扩展LACP的H3C交换机,这种情况适用BFD MAD检测方式。
图1-9 BFD MAD典型适用场景
如果图1-7中的接入层设备使用MSTP双上行至IRF,适用ARP MAD检测方式。
图1-10 ARP MAD典型适用场景