华三-IRF堆叠
IRF简介
IRF概述
IRF(Intelligent Resilient Framework,智能弹性架构)是H3C自主研发的软件虚拟化技术。它的核心思想是将多台设备通过IRF物理端口连接在一起,进行必要的配置后,虚拟化成一台"分布式设备"。使用这种虚拟化技术可以集合多台设备的硬件资源和软件处理能力,实现多台设备的协同工作、统一管理和不间断维护。
IRF的优点
IRF主要具有以下优点:
- 简化管理。IRF形成之后,用户通过任意成员设备的任意端口都可以登录IRF系统,对IRF内所有设备进行统一管理。
- 高可靠性。IRF的高可靠性体现在多个方面,例如:IRF由多台成员设备组成,Master设备负责IRF的运行、管理和维护,Slave设备在作为备份的同时也可以处理业务。一旦Master设备故障,系统会迅速自动选举新的Master,系统会迅速自动选举新的Master,以保证业务不中断,从而实现了设备的1:N备份;此外,成员设备之间的IRF链路支持聚合功能,IRF和上、下层设备之间的物理链路也支持聚合功能,多条链路之间可以互为备份也可以就行负载分担,从而进一步提高了IRF的可靠性。
- 强大的网络扩展能力。通过增加成员设备,可以轻松自如的扩展IRF的端口数、带宽。因为各成员设备都有CPU,能够独立处理协议报文、就行报文转发,所以IRF还能够轻松自如的扩展处理能力。
IRF的应用
Master和Slave组成IRF,对上、下层设备来说,它们就是一台设备——IRF

IRF基本概念
IRF虚拟化技术涉及如下基本概念:
角色
IRF种每台设备都称为成员设备。成员设备按照功能不同,分为两种角色:
- Master:负责管理整个IRF。
- Slave:作为Master的备份设备运行。当Master故障时,系统会自动从Slave种选举一个新的Master接替原Master工作。
Master和Slave均由角色选举产生。一个IRF中同时只能存在一台Master,其它成员设备都是Slave。
IRF端口
一种专用于IRF的逻辑接口,分为IRF-Port1和IRF-Port2。它需要和物理端口绑定之后才能生效。
IRF物理端口
设备上可以用于IRF连接的物理端口。S5500-SI/EI系列交换机可以使用接口模块扩展卡上的万兆口作为IRF物理端口。通常情况下,接口用于传输业务报文,当它们与IRF端口绑定后就作为IRF物理端口,用于成员设备之间转发报文。可转发的报文包括IRF相关协商报文以及需要跨成员设备转发的业务报文。
IRF合并
两个IRF各自已经稳定运行,通过物理连接和必要的配置,形成一个IRF,这个过程称为IRF合并(merge)。

IRF分裂
一个IRF形成后,由于IRF链路故障,导致IRF中两相邻成员设备物理上不连通,一个IRF变成两个IRF,这个过程称为IRF分裂(Split)。

成员优先级
成员优先级是成员设备的一个属性,主要用于校色选举过程中确定成员设备的角色。优先级越高当选为Master的可能性越大。
设备的缺省优先级均为1,如果想让某台设备当选为Master,则在组建IRF前,可以通过命令行手工提高该设备的成员优先级。
IRF工作原理
IRF系统将经历物理连接、拓扑收集、角色选举、IRF的管理与维护四个阶段。成员设备之间需要先建立IRF物理连接,然后会自动进行拓扑收集和角色选举,完成IRF的建立,此后进入IRF管理和维护阶段。
物理连接
连接介质
要形成一个IRF,需要先连接成员设备的IRF物理端口。可用于IRF连接的10GE接口模块扩展卡包括:
- 单端口10GE XFP接口模块扩展卡
- 双端口10GE XFP接口模块扩展卡
- 双端口10GE SFP+接口模块扩展卡
- 双端口10GE以太网接口模块扩展卡
根据客户所选扩展模块的接口类型,IRF物理端口之间可以使用双绞线、CX4/SFP+专用线缆连接,也可以使用SFP+模块/XFP模块和光纤进行连接;双绞线和专用线具有更高的可靠性和性能;光纤可以将距离很远的物理设备连接成为一个虚拟设备,使得应用更加灵活。
连接要求
IRF端口的连接是基于IRF物理端口的连接而建立的,因此需要将IRF端口和IRF物理端口对应起来,即将IRF端口和IRF物理端口进行绑定。一个IRF端口可以对应一个IRF物理端口,也可以通过对应多个IRF物理端口来实现聚合IRF端口,以达到链路备份和扩展带宽的效果。
在进行成员设备的连接时,本设备上写IRF-Port1绑定的IRF物理端口只能和邻居成员设备IRF-Port2口上绑定的IRF物理端口相连,本设备上与IRF-Port2口绑定的IRF物理端口只能和邻居成员设备IRF-Port1口上绑定的IRF物理端口相连。否则,不能形成IRF。

连接拓扑
IRF的连接拓扑有两种:链形连接和环形连接。
- 相比环形连接,链形连接对成员设备的物理位置要求更低,主要用于成员设备物理位置分散的组网。
- 环形连接比链形连接更可靠。因为当链形连接中出现链路故障时,会引起IRF分裂;而环形连接中某条链路故障时,会形成链形连接,IRF的业务不会受到影响。

拓扑收集
每个成员设备和邻居成员通过交互IRF Hello报文来收集整个IRF的拓扑。IRF Hello报文会携带拓扑信息,具体包括IRF端口连接关系、成员设备编号、成员设备优先级、成员设备的桥MAC等内容。
每个成员设备在本地记录自己已知的拓扑信息。设刚启动只记录了自身的拓扑信息。当IRF端口状态变为UP后,设备会将已知的拓扑信息周期性的从UP状态的IRF端口发送出去;直接邻居收到该信息后,会更新本地记录的拓扑信息;如此往复,经过一段时间的收集,所有成员设备都会收集到完整的拓扑信息(称为拓扑收敛)。
此时会进入角色选举阶段。
角色选举
确定成员设备角色为Master或Slave的过程称为角色选举。
角色选举会在拓扑变更的情况下,比如IRF建立、新设备加入、Master设备离开或者故障、两个IRF合并等。角色选举规则如下:
- 当前Master优先(IRF系统形成时,没有Master设备,所有加入的设备都认为自己是Master,会跳转到第二条规则继续比较);
- 成员优先级大的优先;
- 系统运行时间长的优先;
- 桥MAC地址小的优先。
从第一条开始判断,如果判断的结果是多个最优,则继续判断下一条,直到找到唯一最优的成员设备才停止比较。此最优成员设备即为Master,其它成员设备则均为Slave。
说明
IRF合并的情况下,两个IRF会进行IRF竞选,竞选仍然遵循角色选举的规则,竞选完成后,失败一方将自动重新启动,然后全部作为Slave设备加入竞选获胜的一方,最终合并为一个IRF。
不管设备与其它设备一起形成IRF,还是加入已有IRF,如果该设备被当选为Slave,则该设备会使用Master的配置重新初始化和启动,以保证和Master上的配置一致,而不管该设备在重新初始化之前有哪些配置、是否保存了当前配置。
IRF的管理和维护
角色选举完成支行,IRF形成,所有的成员设备组成一台虚拟设备存在于网络中,所有成员设备上的资源归该虚拟设备拥有并由Master统一管理。
成员编号
在运行过程中,IRF系统使用成员编号(Member ID)来标识和管理成员设备,并在端口编号和文件系统中引入成员编号的标识信息。该编号关系到整个IRF的管理和运行,因此,需要用户在设备加入IRF前统一规划、配置设备的成员编号,以保证IRF中成员编号的唯一性。
接口命名规则
对于单独运行的设备(即没有加入任何IRF),接口编号采用设备编号/子槽位编号/接口序号的格式,其中:
- 缺省情况下,设备编号为1.
- 如果设备曾经加入过IRF,则在退出IRF后,仍然会使用IRF中时的成员编号作为自身的设备编号。
对于IRF中的成员设备,接口编号仍然采用成员设备编号/子槽位编号/接口序号的格式,其中:
- 成员身边编号用来标记不同成员设备上的接口。
- 子槽位编号和接口序号的含义和取值与单独运行时的一样。
配置文件的同步
IRF技术使用了严格的配置文件同步机制,来保证IRF中的多台设备能够像一台设备一样在网络中工作,并且在Master设备出现故障支行,其余设备仍能够正常执行各项功能。
- IRF中的Slave设备在启动时,会自动寻找Master设备,并将Master设备的当前配置文件同步到本地并执行;如果IRF中的所有设备同时启动,则Slave设备会将Master设备的起始配置文件同步至本地并执行。
- 在IRF正常工作后,用户所进行的任何配置,都会记录到Master设备的当前配置文件中,并同步到IRF中的各个设备执行;用户在执行save命令时,如果开启了配置文件同步保存功能(缺省为开启),Master设备的当前配置文件将被同步保存到IRF的所有成员设备上,作为起始配置文件,以便使IRF中所有设备的起始配置文件保持统一;如果未开启配置文件同步保持功能,当前配置文件将仅在Master设备上进行保存。
通过即时的同步,IRF中所有设备均保存有相同的配置文件,即使Master设备出现故障,其它设备仍能够按照相同的配置文件执行各项功能。
IRF拓扑维护
如果某成员设备A down或者IRF链路down,其邻居设备会立即将"成员设备A离开"的信息广播通知给IRF中的其它设备。获取到离开消息的成员设备会根据本地维护的IRF拓扑信息表来判断离开的是Master还是Slave,如果离开的是Master,则触发新的角色选举,再更新本地的IRF拓扑;如果离开的是Slave,则直接更新本地的IRF拓扑,以保证IRF拓扑能迅速收敛。
说明
IRF端口的状态由它绑定的IRF物理端口的状态决定。与IRF端口绑定的所有IRF物理端口状态均为down时,IRF端口的状态才会变成down。
多IRF冲突检测(MAD功能)
IRF链路故障会导致一个IRF变成两个新的IRF。这两个IRF拥有相同的IP地址等三层配置,会引起地址冲突,导致故障在网络中扩大。为了提高系统的可用性,当IRF分裂时我们就需要一种机制,能够检测出网络中同时存在多个IRF,并进行相应的处理尽量降低IRF分裂对业务的影响。MAD(Multi-Active Detection,多Active检测)就是这样一种检测和处理机制。它主要提供以下功能:
- 分裂检测
- 通过LACP(Link Aggregation Control Protocol,链路聚合控制协议)、BFD(Bidirectional Forwarding Detection,双向转发检测)或者免费ARP(Gratuitous Address Resolution Protocol)来检测网络中是否存在多个IRF。
- 冲突处理
- IRF分裂后,通过分裂检测机制IRF会检测到网络中存在其它处于Active状态(表示IRF处于正常工作状态)的IRF。冲突处理会让Master成员编号最小的IRF继续正常工作(维持Active状态),其它IRF会迁移到Recovery状态(表示IRF处于禁用状态),并关闭Recovery状态IRF中所有成员设备上除保留端口以外的其它所有物理端口(通常为业务接口),以保证该IRF不能再转发业务报文。(缺省情况下,只有IRF物理端口是保留端口,如果要将其它端口,比如用于远程登录的端口,也作为保留端口,需要使用命令行进行手工配置。)
- MAD故障恢复
- IRF链路故障导师IRF分裂,从而引起多Active冲突。因此恢复故障的IRF链路,让冲突的IRF重新合并为一个IRF,就能恢复MAD故障。如果再MAD故障恢复前,处于Recovery状态的IRF也出现了故障,则需要将故障IRF和故障链路都恢复后,才能让冲突的IRF重新合并一个IRF,恢复MAD故障;如果再MAD故障恢复前,故障的是Active状态的IRF,则可以通过命令行先启用Recovery状态的IRF,让它接替原IRF工作,以便保证业务尽量少受影响,再恢复MAD故障。
说明
IRF分裂后,竞选失败的IRF会自动关闭所有成员设备上的部分端口(等效于在接口下执行shutdown命令),但有些端口不会被自动关闭,这些端口称为保留端口。缺省情况下,只有IRF物理端口是保留端口,如果要将其它端口(比如用于远程登录的端口)也作为保留端口,需要使用命令进行手工配置。
IRF配置任务简介
用户配置IRF前,要做好前期规划工作,需要明确IRF内各成员设备的角色和功能。因为有些参数的配置需要重启设备才能生效,所以建议用户按照下面的流程进行配置。

用户也可以在激活IRF端口配置后再进行IRF物理连接,当设备检测到IRF端口正常连接后,将立刻开始角色选举,选举为Slave的设备将自动重启。
再IRF形成后,用户通过IRF中的任意一台设备进行登录,均可以对IRF系统进行配置和管理。
三种MAD检测区别

典型场景推荐
- LACP MAD
- 适用场景:IRF系统与下联设备间已建立动态跨框聚合链路,且中间设备为H3C设备。
- 优势:无需额外接口,检测速度快,适合大流量业务场景。
- 示例:数据中心核心交换机与接入层通过聚合链路互联,中间设备为H3C交换机。
- BFD MAD
- 适用场景:成员设备间物理距离近、接口资源充足,且无需依赖聚合链路。
- 优势:检测速度快,支持跨设备组网,适合高可靠性要求的场景。
- 示例:两台防火墙直连,通过独立链路进行MAD检测。
- ARP MAD
- 适用场景:接口资源紧张、中间设备为第三方设备,且组网为非聚合构架。
- 优势:无需额外接口,兼容第三方设备,适合传统组网升级。
- 示例:接入层交换机通过管理网口直连第三方交换机,利用ARP检测IRF分裂。
实验一
拓扑

需求
由于公司人员激增,接入层交换机提供的端口数目已经不能满足PC的接入需求。现需要在保护现有投资的基础上扩展端口接入数量,并要求网络易管理、易维护。并且为了防止IRF链路故障导致IRF分裂、网络中存在两个配置冲突的IRF,需要启用MAD检测功能。因为接入层设备较多,我们采用LACP MAD检测。
配置
SW1

irf domain 10 //设置IRF域编号,默认情况下,IRF的域编号为0
irf mac-address persistent timer //配置当Master设备离开IRF时,IRF的桥MAC地址的保留时间为6分钟,默认情况下,IRF的桥MAC保留时间为6分钟
irf auto-update enable //使能IRF系统启动文件的自动加载功能,默认情况下,IRF系统启动文件的自动加载功能处于使能状态
undo irf link-delay //配置IRF链路down延迟上报时间,默认情况下,IRF链路down延迟上报时间为4秒
irf member 1 renumber 1 //默认情况下,设备的成员编号为1
irf member 1 priority 32 //设置成员的优先级,默认情况下,设备成员优先级为1

interface FortyGigE1/0/53 //进入IRF物理端口F1/0/53
shutdown //需要先关闭这个端口
interface FortyGigE1/0/54 //进入IRF物理端口F1/0/54
shutdown //需要先关闭这个端口

irf-port 1/1 //进入IRF1/1组中
port group interface FortyGigE1/0/53 //把F1/0/53绑定到irf1/1组中
irf-port 1/2 //进入IRF1/2组中
port group interface FortyGigE1/0/54 //把F1/0/54绑定到irf1/2组中

interface range FortyGigE1/0/53 to FortyGigE1/0/54 //进入F1/0/53和F1/0/54
undo shutdown //开启端口
save //保存当前配置
注意:在模拟器中,需要先把SW1和SW2的IRF互联线先不连接,到时候SW2配置完之后,激活了IRF端口配置,在连接线,这样就可以IRF堆叠成功

irf-port-configuration active //激活IRF端口下的配置


interface Bridge-Aggregation2 //创建聚合组
port link-type trunk //设置trunk
port trunk permit vlan all //允许所有VLAN通过
link-aggregation mode dynamic //该聚合组设置为动态聚合
mad enable //LACP mad检测开启
[Current domain is :10]:10 //由于并不是在两个IRF之间配置LACP MAD检测,因此在系统提示输入IRF域ID时,可以保持为默认值为0。但是我们修改IRF域ID为10了,所以我们这边需要改成10。


interface GigabitEthernet1/0/1 //进入上联口G1/0/1
port link-mode bridge //设置二层口
port link-type trunk //这个trunk是跟着聚合组group2来的
port trunk permit vlan all //放行VLAN也是跟着聚合组group2来的
port link-aggregation group 2 //加入到聚合组2中
interface GigabitEthernet2/0/2 //进入上联口G2/0/2
port link-mode bridge //设置二层口
port link-type trunk //这个trunk是跟着聚合组group2来的
port trunk permit vlan all //放行VLAN也是跟着聚合组group2来的
port link-aggregation group 2 //加入到聚合组2中
SW2

irf member 1 renumber 2 //将SW2的成员编号修改为2

irf domain 10 //设置IRF域编号,默认情况下,IRF的域编号为0
irf mac-address persistent timer //配置当Master设备离开IRF时,IRF的桥MAC地址的保留时间为6分钟,默认情况下,IRF的桥MAC保留时间为6分钟
irf auto-update enable //使能IRF系统启动文件的自动加载功能,默认情况下,IRF系统启动文件的自动加载功能处于使能状态
undo irf link-delay //配置IRF链路down延迟上报时间,默认情况下,IRF链路down延迟上报时间为4秒
irf member 2 priority 18 //设置成员的优先级,默认情况下,设备成员优先级为1

interface FortyGigE2/0/53 //进入IRF物理端口F2/0/53
shutdown //需要先关闭这个端口
interface FortyGigE2/0/54 //进入IRF物理端口F2/0/54
shutdown //需要先关闭这个端口

irf-port 1/1 //进入IRF2/1组中
port group interface FortyGigE2/0/53 //把F1/0/53绑定到irf2/1组中
irf-port 1/2 //进入IRF2/2组中
port group interface FortyGigE2/0/54 //把F2/0/54绑定到irf2/2组中

interface range FortyGigE2/0/53 to FortyGigE2/0/54 //进入F2/0/53和F2/0/54
undo shutdown //开启端口
save //保存当前配置

irf-port-configuration active //激活IRF端口下的配置
结果

display irf //显示IRF中所有成员设备的相关信息

display irf topology //查看IRF的拓扑信息

display irf configuration //显示IRF中所有设备的配置信息

display mad //显示MAD配置信息

display link-aggregation verbose //显示已有聚合接口所对应聚合组的详细信息

display link-aggregation summary //显示所有聚合组的摘要信息

display link-aggregation member-port g1/0/1 //显示成员端口上链路聚合的详细信息
实验二
拓扑

需求
由于公司人员激增,接入层交换机提供的端口数目已经不能满足PC的接入需求。现需要在保护现有投资的基础上扩展端口接入数量,并要求网络易管理、易维护。并且为了防止IRF链路故障导致IRF分裂、网络中存在两个配置冲突的IRF,需要启用MAD检测功能。因为成员设备比较少,我们采用BFD MAD检测方式来监测IRF的状态。
配置
SW1

irf domain 10 //设置IRF域编号,默认情况下,IRF的域编号为0
irf mac-address persistent timer //配置当Master设备离开IRF时,IRF的桥MAC地址的保留时间为6分钟,默认情况下,IRF的桥MAC保留时间为6分钟
irf auto-update enable //使能IRF系统启动文件的自动加载功能,默认情况下,IRF系统启动文件的自动加载功能处于使能状态
undo irf link-delay //配置IRF链路down延迟上报时间,默认情况下,IRF链路down延迟上报时间为4秒
irf member 1 renumber 1 //默认情况下,设备的成员编号为1
irf member 1 priority 32 //设置成员的优先级,默认情况下,设备成员优先级为1

interface FortyGigE1/0/53 //进入IRF物理端口F1/0/53
shutdown //需要先关闭这个端口
interface FortyGigE1/0/54 //进入IRF物理端口F1/0/54
shutdown //需要先关闭这个端口

irf-port 1/1 //进入IRF1/1组中
port group interface FortyGigE1/0/53 //把F1/0/53绑定到irf1/1组中
port group interface FortyGigE1/0/54 //把F1/0/54绑定到irf1/1组中

interface range FortyGigE1/0/53 to FortyGigE1/0/54 //进入F1/0/53和F1/0/54
undo shutdown //开启端口
save //保存当前配置
注意:在模拟器中,需要先把SW1和SW2的IRF互联线先不连接,到时候SW2配置完之后,激活了IRF端口配置,在连接线,这样就可以IRF堆叠成功

irf-port-configuration active //激活IRF端口下的配置
SW2

irf member 1 renumber 2 //将SW2的成员编号修改为2

irf domain 10 //设置IRF域编号,默认情况下,IRF的域编号为0
irf mac-address persistent timer //配置当Master设备离开IRF时,IRF的桥MAC地址的保留时间为6分钟,默认情况下,IRF的桥MAC保留时间为6分钟
irf auto-update enable //使能IRF系统启动文件的自动加载功能,默认情况下,IRF系统启动文件的自动加载功能处于使能状态
undo irf link-delay //配置IRF链路down延迟上报时间,默认情况下,IRF链路down延迟上报时间为4秒
irf member 2 priority 18 //设置成员的优先级,默认情况下,设备成员优先级为1

interface FortyGigE2/0/53 //进入IRF物理端口F2/0/53
shutdown //需要先关闭这个端口
interface FortyGigE2/0/54 //进入IRF物理端口F2/0/54
shutdown //需要先关闭这个端口

irf-port 2/2 //进入IRF2/2组中
port group interface FortyGigE1/0/53 //把F1/0/53绑定到irf2/2组中
port group interface FortyGigE1/0/54 //把F1/0/54绑定到irf2/2组中

interface range FortyGigE2/0/53 to FortyGigE2/0/54 //进入F2/0/53和F2/0/54
undo shutdown //开启端口
save //保存当前配置

irf-port-configuration active //激活IRF端口下的配置
MAD配置

vlan 100 //创建VLAN100
description MAD BFD //添加VLAN100的描述为MAD BFD

interface Vlan-interface100 //进入interfacevlan100
description MAD BFD //添加描述为MAD BFD检测
mad bfd enable //开启MAD BFD检测
mad ip address 1.1.1.1 255.255.255.0 member 1 //设置主的MAD地址
mad ip address 1.1.1.2 255.255.255.0 member 2 //设置备的MAD地址

interface Ten-GigabitEthernet1/0/50 //进入互联口口
description MAD BFD //端口描述MAD BFD
port access vlan 100 //放行BFD VLAN
undo stp enable //关闭生成树,一定要关闭生成树。因为BFD和生成树是冲突的
interface Ten-GigabitEthernet2/0/50 //进入互联口
description MAD BFD //端口描述MAD BFD
port access vlan 100 //放行BFD VLAN
undo stp enable //关闭生成树,一定要关闭生成树。因为BFD和生成树是冲突的
查看命令

display irf //查看irf的状态

display irf configuration //查看irf的配置信息

display irf link //查看IRF信息,包含member号、port号和包含的接口及状态

display bfd session //查看bfd情况

display mad verbose //查看mad状态,包含IRF堆叠线接口、BFD接口和VLAN,MAD BFD是启用状态,两台设备的MAD IP地址信息。
上面截图中的状态不对,MAD status的状态应该是Normal状态,这才是正确的状态。用模拟器做的估计是模拟器有点BUG

浙公网安备 33010602011771号