华三-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

image

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)。

image

 IRF分裂

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

image

 成员优先级

  成员优先级是成员设备的一个属性,主要用于校色选举过程中确定成员设备的角色。优先级越高当选为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。

image

 连接拓扑

IRF的连接拓扑有两种:链形连接和环形连接。

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

image

 拓扑收集

  每个成员设备和邻居成员通过交互IRF Hello报文来收集整个IRF的拓扑。IRF Hello报文会携带拓扑信息,具体包括IRF端口连接关系、成员设备编号、成员设备优先级、成员设备的桥MAC等内容。

  每个成员设备在本地记录自己已知的拓扑信息。设刚启动只记录了自身的拓扑信息。当IRF端口状态变为UP后,设备会将已知的拓扑信息周期性的从UP状态的IRF端口发送出去;直接邻居收到该信息后,会更新本地记录的拓扑信息;如此往复,经过一段时间的收集,所有成员设备都会收集到完整的拓扑信息(称为拓扑收敛)。

此时会进入角色选举阶段。

角色选举

确定成员设备角色为Master或Slave的过程称为角色选举。

  角色选举会在拓扑变更的情况下,比如IRF建立、新设备加入、Master设备离开或者故障、两个IRF合并等。角色选举规则如下:

  1. 当前Master优先(IRF系统形成时,没有Master设备,所有加入的设备都认为自己是Master,会跳转到第二条规则继续比较);
  2. 成员优先级大的优先;
  3. 系统运行时间长的优先;
  4. 桥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检测)就是这样一种检测和处理机制。它主要提供以下功能:

  1. 分裂检测
    1. 通过LACP(Link Aggregation Control Protocol,链路聚合控制协议)、BFD(Bidirectional Forwarding Detection,双向转发检测)或者免费ARP(Gratuitous Address Resolution Protocol)来检测网络中是否存在多个IRF。
  2. 冲突处理
    1. IRF分裂后,通过分裂检测机制IRF会检测到网络中存在其它处于Active状态(表示IRF处于正常工作状态)的IRF。冲突处理会让Master成员编号最小的IRF继续正常工作(维持Active状态),其它IRF会迁移到Recovery状态(表示IRF处于禁用状态),并关闭Recovery状态IRF中所有成员设备上除保留端口以外的其它所有物理端口(通常为业务接口),以保证该IRF不能再转发业务报文。(缺省情况下,只有IRF物理端口是保留端口,如果要将其它端口,比如用于远程登录的端口,也作为保留端口,需要使用命令行进行手工配置。)
  3. MAD故障恢复
    1. 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内各成员设备的角色和功能。因为有些参数的配置需要重启设备才能生效,所以建议用户按照下面的流程进行配置。

image

用户也可以在激活IRF端口配置后再进行IRF物理连接,当设备检测到IRF端口正常连接后,将立刻开始角色选举,选举为Slave的设备将自动重启。

再IRF形成后,用户通过IRF中的任意一台设备进行登录,均可以对IRF系统进行配置和管理。

三种MAD检测区别

image

典型场景推荐

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

实验一

拓扑

image

需求

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

配置

SW1

image

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

 image

interface FortyGigE1/0/53  //进入IRF物理端口F1/0/53

shutdown   //需要先关闭这个端口

interface FortyGigE1/0/54  //进入IRF物理端口F1/0/54

shutdown  //需要先关闭这个端口

 image

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组中

image

interface range FortyGigE1/0/53 to FortyGigE1/0/54   //进入F1/0/53和F1/0/54

undo shutdown    //开启端口

save   //保存当前配置

注意:在模拟器中,需要先把SW1和SW2的IRF互联线先不连接,到时候SW2配置完之后,激活了IRF端口配置,在连接线,这样就可以IRF堆叠成功

image

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

image

image

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。

image

image

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

image

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

 image

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

 image

interface FortyGigE2/0/53  //进入IRF物理端口F2/0/53

shutdown   //需要先关闭这个端口

interface FortyGigE2/0/54  //进入IRF物理端口F2/0/54

shutdown  //需要先关闭这个端口

 image

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组中

image

interface range FortyGigE2/0/53 to FortyGigE2/0/54   //进入F2/0/53和F2/0/54      

undo shutdown    //开启端口

save   //保存当前配置

 image

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

结果

image

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

image

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

image

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

image

display mad  //显示MAD配置信息

image

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

image

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

image

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

实验二

拓扑

image

需求

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

配置

SW1

image

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

image

interface FortyGigE1/0/53  //进入IRF物理端口F1/0/53

shutdown   //需要先关闭这个端口

interface FortyGigE1/0/54  //进入IRF物理端口F1/0/54

shutdown  //需要先关闭这个端口

image

 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组中

image

interface range FortyGigE1/0/53 to FortyGigE1/0/54   //进入F1/0/53和F1/0/54

undo shutdown    //开启端口

save   //保存当前配置

注意:在模拟器中,需要先把SW1和SW2的IRF互联线先不连接,到时候SW2配置完之后,激活了IRF端口配置,在连接线,这样就可以IRF堆叠成功

image

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

SW2

image

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

 image

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

 image

interface FortyGigE2/0/53  //进入IRF物理端口F2/0/53

shutdown   //需要先关闭这个端口

interface FortyGigE2/0/54  //进入IRF物理端口F2/0/54

shutdown  //需要先关闭这个端口

image

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组中

image

interface range FortyGigE2/0/53 to FortyGigE2/0/54   //进入F2/0/53和F2/0/54      

undo shutdown    //开启端口

save   //保存当前配置

 image

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

MAD配置

image

vlan 100  //创建VLAN100

description MAD BFD   //添加VLAN100的描述为MAD BFD

image

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地址

image

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和生成树是冲突的

查看命令

image

 display irf  //查看irf的状态

image

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

image

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

image

display bfd session  //查看bfd情况

 image

 display mad verbose   //查看mad状态,包含IRF堆叠线接口、BFD接口和VLAN,MAD BFD是启用状态,两台设备的MAD IP地址信息。

上面截图中的状态不对,MAD status的状态应该是Normal状态,这才是正确的状态。用模拟器做的估计是模拟器有点BUG

posted @ 2025-08-15 16:37  乐泉1  阅读(13)  评论(0)    收藏  举报