H3C IRF2典型应用
目前网络中存在两种结构的通信设备:固定盒式设备和模块框式分布设备。固定盒式设备成本低廉,但没有高可用性支持;模块框式设备具有高可用性、高性能、高端口密度的优点,但投入成本高。针对盒式设备和框式设备的这些特点,一种结合了两种设备优点的IRF虚拟化技术应运而生。本次将首先讲解IRF的基本概念与工作原理,然后通过一个案例来讲解IRF的配置。案例上机实验需要登录中央实验室完成。
- 案例概述
某云计算中心接入层使用S5120-52C-HI以太网交换机,两台S5120用千兆光口作为IRF物理端口,虚拟化为一台交换机。S5120用两个GE链路聚合上行至S12508,两台S12508采用8个GE电口捆绑作为IRF聚合物理端口,虚拟化为一台交换机。
S5120下连的服务器为双网卡,上行至S5120-IRF(两个网卡连接不同的S5120物理交换机),S5120-IRF双链路上行至S12508,实现服务器网卡、交换设备、链路的高可靠性。服务器任意坏了一块网卡不影响服务器对外提供服务,任意一台S5120停止工作不影响交换机对服务器业务数据的转发,S5120-IRF与S12508-IRF间的聚合链路任意中断一条不会影响服务器对外提供服务。
- 案例前置知识点
- IRF2.0概述
IRF(intelligesilient framework,智能弹性架构)是H3C自主研发的硬件虚拟化技术。它的核心思想是将多台设备通过IRF物理端口连接在一起,进行必要的配置后,虚拟化成一台“分布式设备”。使用这种虚拟化技术可以集合多台设备的硬件资源和软件处理能力,实现多台设备的协同工作,统一管理和不间断维护。
目前的IRF2.0是一种将多个设备虚拟为单一设备使用的通用虚拟化技术,此技术已经应用于高、中、低端多个系列的交换机设备,通过IRF2.0技术形成的虚拟设备具有更高的扩展性、可靠性及性能。
- IRF的优点
- 简化管理。IRF形成之后,用户通过任意成员设备的任意端口都可以登录IRF系统,对IRF内所有成员设备进行统一管理。
- 高可高性。IRF的高可靠性体现在多个方面。例如:IRF由多台成员设备组成,master设备负责IRF的运行、管理和维护,slave设备在作为备份的同时也可以处理业务。一旦master设备故障,系统会迅速自动选举新的master,以保证业务不中断,从而实现了设备的备份;此外成员设备之间的IRF链路支持聚合功能,IRF和上、下层设备之间的物理链路也支持聚合功能,多条链路之间可以互为备份也可以进行负载分担,从而进一步提高IRF的可靠性。
- 强大的网络扩展能力。通过增加成员设备,可以轻松自如地扩展IRF的端口数、带宽,因为各成员设备都有CPU,能够独立处理协议报文及进行报文转发,所以IRF还能够轻松自如地扩展处理能力。
IRF基本概念
- 角色。IRF中每台设备都成为成员设备,成员设备按照功能不同,分为两种角色:
Master:负责管理整个IRF。
Slave:作为master的备份设备运行。当master故障时,系统会自动从slave中选举一个新的master接替原master工作。
Master和slave均由角色选举产生。一个IRF中同时只能存在一台master,其他成员设备都是slave。
- IRF端口。一种专用于IRF的逻辑接口,分为IRF-port1和IRF-port2,需要和IRF物理端口绑定之后才能生效。
- IRF物理端口。设备上可以用于IRF连接的物理端口。IRF物理端口可能是IRF专用接口、以太网接口或者光口(设备上哪些端口可用做IRF物理端口与设备的型号有关,请以设备的实际情况为准)。通常情况下,以太网接口和光口负责向网络中转发业务报文,当它们与IRF端口绑定后就作为IRF物理端口,用于成员设备之间转发报文。可转发的报文包括IRF相关协商报文及需要跨成员设备转发的业务报文。
- IRF合并。两个IRF各自已经稳定运行,通过物理连接和必要的配置,形成一个IRF,这个过程称为IRF合并(merge)。
- IRF分裂。一个IRF形成后,由于IRF链路故障,导致IRF中两相邻成员设备物理上不连通。一个IRF变成两个IRF,这个过程称为IRF分裂(split)。
- 成员优先级。成员优先级是成员设备的一个属性,主要用于角色选举过程中确定成员设备的角色,优先级越高当选为master的可能性越大。设备的默认优先级均为1,如果想让某台设备当选为master,则在组件IRF前,可以通过命令手工提高该设备的优先级。
IRF2运行模式与配置方式
IRF2运行模式分为IRF模式和独立运行模式,设备出厂时处于独立运行模式。若在本次运行过程中,没有修改设备的运行模式,则下次启动会沿用本次启动的运行模式;若在本次运行过程中,修改了设备的运行模式,则设备会自动启动,切换到新的模式。
请根据组网需要来配置设备的运行模式。但设备从独立运行模式切换到IRF模式后,即便只有一台设备也会形成IRF。因为管理和维护IRF需要耗费一定的系统资源,所以,如果当前组网中设备不需要和别的设备组成IRF时,建议将运行模式配置为独立运行模式。
Chassis convert mode irf命令用来将设备的运行模式切换到IRF模式。
配置方式分为预配置方式和非预配置方式。预配置方式是在独立运行模式上的设备上进行IRF2相关配置的,最终组成IRF只需要重启1次。非预配置方式是先在独立运行模式的设备上配置成员编号,然后切换到IRF模式,再配置IRF端口、成员的优先级等相关参数。Slave设备需要重启两次才能组成IRF。
IRF的工作原理
物理连接
要形成一个IRF,需要先连接成员设备的IRF物理端口。S5120-HI系列交换机使用前面板上的SFP+口或接口模块扩展卡上的万兆口作为IRF物理端口。
拓扑收集
每个成员设备和邻居成员设备通过交互IRF-HELLO报文来收集整个IRF的拓扑。IRFhello报文会携带拓扑信息,具体包括IRF端口连接关系、成员设备编号、成员设备优先级、成员设备的桥MAC等内容。
每个成员设备在本地记录自己已知的拓扑信息。设备刚启动时只记录了自身的拓扑信息。当IRF端口状态变为UP后,设备会将已知的拓扑信息周期性地从up状态的IRF端口发送出去;直接邻居收到该信息后,会更新本地记录的拓扑信息;如此往复,经过一段时间的收集,所有成员设备都会收集到完整的拓扑信息(称为拓扑收敛)。此时会进入角色选举阶段。
角色选举
确定成员设备角色为master或slave的过程称为角色选举。角色选举会在拓扑变更的情况下产生,如IRF建立、新设备加入、master设备离开挥着故障、两个IRF合并等,角色选举规则如下:
- 当前master优先(IRF系统形成时,没有master设备,所有加入的设备都认为自己是master,会跳转到第二条规则继续比较)。
- 成员优先级大的优先。
- 系统运行时间长的优先。
- 桥mac地址小的优先。
从第一条开始判断,若判断的结果是多个最优,则继续判断下一条,直到找到唯一最优的成员设备才停止比较。此最优成员设备即为master,其他成员设备则均为slave。
在角色选举完成后,IRF形成,进入IRF管理与维护阶段。
IRF的管理与维护
角色选举完成会后,IRF形成,所有的成员设备组成一台虚拟设备存在于网络中,所有成员设备上的资源归该虚拟设备拥有并由master统一管理。
成员编号:在运行过程中,IRF系统使用成员编号(member ID)来标志和管理成员设备,并在端口编号和文件系统中引入成员编号的标识信息。该编号关系到整个IRF的管理和运行,因此,需要用户在设备加入IRF前统一规划、配置设备的成员编号,以保证IRF中成员编号的唯一性。
接口命名规则:对于单独运行的设备(即没有加入任何的IRF),接口编号采用设备编号/子槽位编号/接口序号的格式,其中,默认情况下,设备编号为1。若设备曾经加入过IRF,则在退出IRF后,仍然会使用在IRF中时的成员编号作为自身的设备编号。子槽位编号:接口所在子槽位的编号。在S5120-HI系列交换机上,前面板上的端口所在子槽位编号为0;对于后面板具有单扩展插槽的设备,扩展槽位的子槽位号为1;对于后面板具有双扩展插槽的设备,扩展槽位的子槽位编号分别为1和2。接口序号与各型号交换机支持的接口数量相关,请查看设备接口板上的丝印。
成员设备编号用来标志不同成员设备上的接口。子槽位编号和接口序号的含义及取值与单独运行时的一样。
文件系统命名规则:对于IRF中的成员设备,直接使用存储介质的名称可以访问master设备的文件系统,使用“slotmember-id#存储介质的名称”才可以访问slave设备的文件系统。
例如:创建并访问IRF中的slave设备(成员编号为3)存储介质flash根目录下的test文件夹,可参照以下步骤:
<master>mkdir slot3#flash:/test
%created dir slot3#flash:/test.
<master>cd slot3#flash:/test
<master>pwd
Slot3#flash:/test
配置文件的同步:IRF技术使用了严格的配置文件同步机制,来保证IRF中的多台设备能够像一台设备一样在网络中工作,并且在master设备出现故障之后,其余设备仍能够正常执行各项功能。
IRF中的slave设备在启动时,会自动寻找master设备,并将master设备的当前配置文件同步到本地并执行;若IRF中的所有设备同时启动,则slave设备会将master设备的起始配置文件同步至本地并执行。
在IRF正常工作后,用户所进行的任何配置,都会记录到master设备的当前配置文件中,并同步到IRF中的各个设备执行;用户在执行save命令时,如果开启了配置文件同步保存功能(默认为开启),master设备的当前配置文件将被同步保存到IRF的所有成员设备上,作为起始配置文件,以便使IRF中所有设备的起始配置文件保持统一;如果未开启配置文件同步保存功能,当前配置文件将仅在master设备上进行保存。
通过即时的同步,IRF中所有设备均保存具有相同的配置文件,即使master设备出现故障,其他设备仍能够按照相同的配置文件执行各项功能。
IRF拓扑维护:如果某成员设备Adown或者IRF链路down,其邻居设备会立即将“成员设备A离开”的信息广播通知给IRF中的其他设备。获取到离开的消息的成员设备会根据本地维护的IRF拓扑信息表来判断离开的是master还是slave,如果离开的是master,则触发新的角色选举,再更新本地的IRF拓扑;如果离开的是slave,则直接更新本地的IRF拓扑,以保证IRF拓扑能迅速收敛。
多IRF冲突检测(MAD功能)
- 多IRF冲突检测的定义和功能
IRF链路故障会导致一个IRF变成两个新的IRF。这两个IRF拥有相同的ip地址等三层配置,会引起地址冲突,导致故障在网络中扩大。为了提高系统的可用性,当IRF分裂时我们就需要一种机制,能够检测出网络中同时存在多个IRF,并进行相应的处理以尽量降低IRF分裂对业务的影响。MAD(multi-active detection,多active检测)就是这样一种检测和处理机制。它主要提供以下功能。
分裂检测:通过LACP(link aggregation control protocol,链路聚合控制协议)或者免费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支持的MAD检测方式有:LACP MAD检测,BFD MAD检测和ARP MAD检测。三种检测方式虽然原理不同但是功能效果相同,能够满足不同组网的需求。LCAP MAD检测用于基于LACP的组网检测需求;ARP MAD检测用于基于非聚合场合的resilient ARP的组网检测需求;BFD MAD检测用于基于BFD的组网检测需求。这三种方式独立工作,批次之间互不干扰。因此,同一IRF内可以配置多种MAD检测方式。
LACP MAD检测原理:
LACP MAD检测是通过扩展LACP协议报文内容实现的,即在LACP协议报文的扩展字段
内定义一个新的TLV(type/length/value,类型/长度/值)数据域,用于交互IRF的domainid(域编号)和activeID。当网络中同时存在多个IRF时(比如IRF级联的组网情况),domainID用于区别不同的IRF。当某个IRF分裂时,activeID用于MAD检测,用IRF中master设备的成员编号来表示。
使能LCAP MAD检测后,成员设备通过LACP协议报文和其他成员设备交互domainID和activeID信息。
当成员设备收到LCAP协议报文后,先比较domainID。如果domainID相同,再比较activeID;如果domain不同,则认为报文来自不同的IRF,不再进行MAD处理。
如果activeID相同,则表示IRF正常运行,没有发生多active冲突;如果activeID不同,则表示IRF分裂,检测到多active冲突。
BFD MAD检测原理:
BFD MAD检测是通过BFD协议来实现的。要是BFD MAD检测功能正常运行,除了在三层接口下使能BFD MAD检测功能外,还需要在该接口上配置MAD IP地址。MAD IP地址与普通IP地址不同的地方在于MAD IP地址与成员设备是绑定的,IRF中的每个成员设备上都需要配置,且必须属于同一网段。
当IRF正常运行时,只有master上配置的MADIP地址生效,slave设备上配置的MADip地址不生效,BFD会话处于down状态。可以使用display bfd session命令查看BFD会话的状态,若session state显示为up,则表示激活状态;若显示为down,则表示处于down状态。
当IRF分离后会形成多个IRF,不同IRF中master上配置的MAD IP地址均会生效,BFD会话被激活,此时会检测到多active冲突。
ARP MAD检测原理:ARP MAD检测是通过扩展免费ARP协议报文内容实现的,即使用免费ARP协议报文中未使用的字段来交互IRF的domainID和activeID。domainID和activeID的定义及比较方法同LACP MAD检测相同。使能ARP MAD检测后,成员设备可以通过免费ARP协议报文和其他成员设备交互domainID和activeID信息。ARP MAD适用于使用MSTP双上行的组网。
当IRF正常运行时,MSTP功能会阻塞某条链路,使免费ARP报文无法到达另一台成员设备,不会发生多active冲突。
当IRF分裂后会形成两个或多个IRF,MSTP将重新计算拓扑,原先阻塞的链路被打开,不同IRF中的成员设备便可以接收到另一个IRF发送的免费ARP协议报文,从而检测到多active冲突。
三种MAD检测的实用性分析如下表格所示,一般来说,高可用性要求可以使用BFD方式MAD检测。
检测方式 | 优点 | 适用性要求 |
LACP方式MAD检测 | 启用MAD domain时接入核心全虚拟化同时使能可以检测核心或接入之间的分裂;不需要占用专门检测端口 | 核心接入交换机均需支持该特性,其他厂家设备不支持 |
BFD方式MAD检测 | 可以独立检测本堆叠组分裂情况,对上下游设备无要求;检测速度快 | 单独占用一对检测端口;核心和接入需分别部署 |
Resilient ARP方式MAD检测 | 接入核心全虚拟化同时使能可以检测核心或接入之间的分裂;对上下游设备无要求;不需要占用专门检测端口 | 需要在3层接口上使能,建议使用单独VLAN来检测 |
- 案例环境:
两台做IRF2的交换机间用光口52作为IRF物理端口,IRF2配置完成并生效后可以看到设备变成一台设备,端口号也变了,将G1/0/1和G2/0/1加入同一个聚合组,device C上的G1/0/1和G1/0/2加入同一个聚合组,并分别与做IRF后的G1/0/1和G2/0/1相连。
聚合配置完成后可以使用命令display link-aggregation verbose显示系统上已有聚合接口所对应聚合的详细信息。
- 案例实施
- IRF配置思路和步骤
鉴于第二代只能弹性架构IRF技术具有管理简便,网络扩展能力强,可靠性高等技术优点,所以本案例使用IRF技术构建接入层(即在device A和device B上配置IRF功能)。
用户配置IRF前,要做好前期规划工作,需要明确IRF内个成员设备的角色和功能。因为有些参数配置需要重启设备才能生效,所以建议用户按照下面的流程进行配置(采用非预配置的方式配置IRF)。IRF配置流程图如下:
用户也可以在激活IRF端口后再进行IRF物理连接,当设备检测到IRF端口正常连接后,将立刻开始角色选举,选举为slave的设备将自动进行重启(采用预配置方式配置IRF)
。在IRF形成后,用户通过IRF中的任意一台设备进行登录,均可以对IRF系统进行配置和管理。
- 配置设备编号。Device A保留默认编号为1,不需要进行配置。
在deviceB上将设备的成员编号修改为2。
<deviceB> system-view
[deviceB] irf member 1 renumber 2
- 将两台设备断电后,按照拓扑图的连接IRF链路,然后将两台设备上电,修改device A的IRF优先级为5,目的是让其在竞选时获胜。
<deviceA> system-view
[deviceA] irf member 1 priority 5
//在deviceA上创建设备的IRF端口2,与物理端口ten-gigabitethernet1/0/52绑定,并保存配置。
<deviceA> system-view
[deviceA] interface ten-gigabitethernet 1/0/52
[deviceA-Ten-gigabitethernet1/0/52] shutdown
[deviceA-Ten-gigabitethernet1/0/52] quit
[deviceA] IRF-port 1/2
[deviceA-irf-port1/2]port group interface ten-gigabitethernet 1/0/52
[deviceA-irf-port1/2]quit
[deviceA] interface ten-gigabitethernet 1/0/52
[deviceA-Ten-gigabitethernet1/0/52] undo shutdown
[deviceA-Ten-gigabitethernet1/0/52]dave
在deviceB上创建设备的IRF端口1,与物理端口ten-gigabitEthernet2/0/52绑定,并保存配置。
<deviceB> system-view
[deviceB] interface ten-gigabitethernet 2/0/52
Shutdown
Quit
[deviceB] irf-port 2/1
Port group interface ten-gigabitethernet 2/0/52
Quit
[deviceB] interface ten-gigabitethernet 2/0/52
Undo shutdown
Save
激活deviceA的IRF端口配置
[deviceA-ten-gigabitethernet1/0/52] quit
[deviceA ] irf-port-configuration active
激活deviceB的IRF端口配置
[deviceB-ten-gigabitethernet2/0/52] quit
[deviceB ] irf-port-configuration active
- 两台设备间会进行master竞选,竞选失败的一方将自动重启,重启完成后,IRF形成,系统名称统一为device A。
- LACP MAD配置思路和步骤
为了防止万一IRF链路故障导致IRF分裂,网络中存在两个配置冲突的IRF,需要启用MAD检测功能。因为接入层设备为S5120,所以我们采用LACP MAD检测。
本案例中使用的设备仅支持LACP MAD检测和ARP MAD检测,中高端交换机都支持BFD MAD检测,在实际项目中建议采用BFD MAD检测,原因是不需要使用中间设备来进行连接检测且检测速度更快。
LACP MAD检测的配置思路
- 配置IRF域编号。
- 创建聚合接口(中间设备上也需要进行该项配置)。
- 将聚合接口的工作模式配置为动态聚合模式(中间设备上也需要进行该项配置)。
- 在动态聚合接口下使能LACP MAD检测功能。
- 给聚合组添加成员端口(中间设备上也需要进行该项配置)。
- LACP MAD检测
创建一个动态聚合端口,并使能LACP MAD检测功能,由于并不是在两个IRF之间配置LACP MAD检测,因此在系统提示输入IRF域ID时,可以保持为默认值0。
<deviceA> system-view
[deviceA] interface bridge-aggregation 2
[deviceA-bridge-aggregation2] link-aggregation mode dynamic
[deviceA-bridge-aggregation2] mad enable
You need to assign a domain ID (range: 0-42....)
[current domain is: 0]:
The assigned domain ID is: 0
Info: MAD LACP only enable on dynamic aggregation interface.
[deviceA-Bridge-aggregation2] quit
在聚合端口中添加成员端口gigabitethernet1/0/1和gigabitethernet2/0/1,专用于两台IRF成员设备与中间设备进行LACP MAD检测。
[deviceA] interface gigabitethernet 1/0/1
[deviceA-gigabitethernet1/0/1] port link-aggregation group 2
[deviceA-gigabitethernet1/0/1]quit
[deviceA]interface gigabitethernet 2/0/1
[deviceA-gigabitethernet2/0/1] port link-aggregation group 2
中间设备device C的配置。Device C作为一台中间设备需要支持LACP功能,用来转发、处理LACP协议报文,协助device A和device B进行多active检测。从节约称成本的角度考虑,使用一台支持LACP功能的交换机即可。
创建一个动态聚合端口
<deviceC> system-view
[deviceC] interface bridge-aggregation 2
[deviceC-bridge-aggregation2] link-aggregation mode dynamic
[deviceC-bridge-aggregation2] quit
在聚合端口中添加成员端口gigabitethernet1/0/1和gigabitethernet1/0/2,用于进行LACP MAD检测。
[deviceC] interface gigabitethernet 1/0/1
[deviceC-gigabitethernet1/0/1] port link-aggregation group 2
[deviceC-gigabitethernet1/0/1] quit
[deviceC] internet gigabitethernet1/0/2
[deviceC-gigabitethernet1/0/2] port link-aggregation group 2
- IRF和MAD配置的显示和维护
- IRF的显示和维护
执行display命令可以显示配置后IRF的运行情况,通过查看显示信息验证配置的效果。
显示IRF中所有成员设备的相关信息:display irf
查看IRF的拓扑信息:display irf topology
显示IRF中所有设备的配置信息:display irf configuration
显示IRF链路的负载分担模式:display irf-port load-sharing mode
显示IRF设备的主备倒换状态:display switchover state
显示MAD配置信息:display mad
- 综合实验:拓扑图
- 实验要求
- 配置SWB为irf设备编号2,修改SWA的irf优先级为5后重启两台设备。
- 在SWA和SWB上配置irf端口并分别与物理端口绑定并保存。
- 激活irf端口,注意查看哪台设备重启了。
- 查看两台设备的主机名是否一致,查看irf运行情况 和拓扑情况。
- 按图中要求配置vlan、端口和ip,测试PC1可以ping通PC2
- 将原SWA关机,在原SWB查看irf运行情况,再次测试是否可ping通。
- 实验步骤
1)配置SWB为irf设备编号2,修改SWA的irf优先级为5后重启两台设备。
提示输入Y确认即可
2)在SWA和SWB上配置irf端口并分别与物理端口绑定并保存。
3)激活irf端口,注意查看哪台设备重启了。
稍等一会之后,发现SWB重启了。
4)查看两台设备的主机名是否一致,查看irf运行情况 和拓扑情况。
在SWA上使用dis irf命令查看
在SWB上使用dis irf命令查看
查看拓扑情况
5)按图中要求配置vlan、端口和ip,测试PC1可以ping通PC2。
配置pc1:
配置pc2:
配置SWC:
配置SWD:
配置SWA:
配置SWB:
6)将原SWA关机,在原SWB查看irf运行情况,再次测试是否可ping通。
再次使用pc1去ping 192.168.3.100
查看irf配置:
发现主master设备变成了SWB。