【转】华三( H3C )IRF MAD 应用模型及技术分析

更多有关于 “ H3C ” 的文章,请点击这里

1 、IRF 概述

IRF( Intelligent Resilient Framework ,智能弹性架构)是 H3C 自主研发的软件虚拟化技术。它的核心思想是将多台设备连接在一起,进行必要的配置后,虚拟化成一台设备。使用这种虚拟化技术可以集合多台设备的硬件资源和软件处理能力,实现多台设备的协同工作、统一管理和不间断维护。

IRF 组网应用示意图
IRF 组网应用示意图

2 、IRF 的优点

IRF 主要具有以下优点:

  • 简化管理。IRF 形成之后,用户通过任意成员设备的任意端口都可以登录 IRF 系统,对 IRF 内所有成员设备进行统一管理。
  • 1 : N 备份。IRF 由多台成员设备组成,其中,Master 设备负责 IRF 的运行、管理和维护,Slave 设备在作为备份的同时也可以处理业务。一旦 Master 设备故障,系统会迅速自动选举新的 Master ,以保证业务不中断,从而实现了设备的 1 : N 备份。
  • 强大的网络扩展能力。通过增加成员设备,可以轻松自如的扩展 IRF 的端口数、带宽。因为各成员设备都有 CPU ,能够独立处理协议报文、进行报文转发,所以 IRF 还能够轻松自如的扩展处理能力。

3 、多 IRF 冲突检测( MAD 功能)

3.1 机制介绍

IRF 链路故障会导致一个 IRF 变成多个新的 IRF 。这些 IRF 拥有相同的 IP 地址等三层配置,会引起地址冲突,导致故障在网络中扩大。为了提高系统的可用性,当 IRF 分裂时我们就需要一种机制,能够检测出网络中同时存在多个 IRF ,并进行相应的处理尽量降低 IRF 分裂对业务的影响。MAD( Multi-Active Detection ,多 Active 检测)就是这样一种检测和处理机制。它主要提供以下功能:

( 1 )分裂检测

通过 ARP( Address Resolution Protocol )、ND( Neighbor Discovery Protocol )、LACP( Link Aggregation Control Protocol ,链路聚合控制协议)或者 BFD( Bidirectional Forwarding Detection ,双向转发检测)来检测网络中是否存在多个 IRF 。

( 2 )冲突处理

IRF 分裂后,通过分裂检测机制 IRF 会检测到网络中存在其它处于 Active 状态(表示 IRF 处于正常工作状态)的 IRF 。

  • 对于 BFD MAD / ARP MAD / ND MAD 检测,冲突处理会直接让 Master 成员编号小的 IRF 处于 Active 状态,继续正常工作;其它 IRF 迁移到 Recovery 状态。
  • 对于 LACP MAD 检测,冲突处理会先比较两个 IRF 中成员设备的数量,数量多的 IRF 处于 Active 状态,继续工作;数量少的迁移到 Recovery 状态;如果成员数量相等,则 Master 成员编号小的 IRF 处于 Active 状态,继续正常工作;其它 IRF 迁移到 Recovery 状态。

IRF 迁移到 Recovery 状态后会关闭该 IRF 中所有成员设备上除保留端口以外的其它所有物理端口(通常为业务接口),以保证该 IRF 不能再转发业务报文。缺省情况下,只有 IRF 链路物理端口是保留端口,用户也可以通过 mad exclude interface 命令行将其它端口设置为保留端口。

( 3 )MAD 故障恢复

IRF 链路故障导致 IRF 分裂,从而引起多 Active 冲突。因此修复故障的 IRF 链路,让冲突的 IRF 重新合并为一个 IRF ,就能恢复 MAD 故障。如果在 MAD 故障恢复前,处于 Active 状态的 IRF 出现其他故障,则可以通过命令行先启用 Recovery 状态的 IRF ,让它接替原 IRF 工作,以便保证业务尽量少受影响,再恢复 MAD 故障。

3.2 原理介绍

IRF 支持的 MAD 检测方式有:LACP MAD 检测、BFD MAD 检测、ARP MAD 检测和 ND MAD 检测。下面针对这四种 MAD 检测方式进行逐一阐述:

3.2.1  ARP MAD 检测

1 、ARP MAD 检测原理

ARP MAD 检测是通过扩展 ARP 协议报文内容实现的,即将 ARP 协议报文中 “ Target MAC Address ” 字段扩展为 IRF 的 DomainID(域编号)、对端 ActiveID(即对端 Master 的成员编号)、自身 ActiveID(自身 Master 的成员编号)和 PktType(检测包类型)(如下图所示)。其中检测包类型( PktType )包括如下三种类型:

  1. 0x00 ,Hello 报文,载荷为自身 ActiveID
  2. 0x01 ,Alive 检测报文,载荷为自身 ActiveID 和对端 ActiveID
  3. 0x02 ,Alive 确认报文,载荷为自身 ActiveID 和对端 ActiveID
ARP MAD PACKET
ARP MAD PACKET

使能 ARP MAD 检测后,成员设备可以通过 ARP 协议报文和其它成员设备交互 DomainID 和 ActiveID 信息。

  • 当成员设备收到 ARP 协议报文后,先比较 DomainID ;如果 DomainID 相同,再比较 ActiveID ;如果 DomainID 不同,则认为报文来自不同 IRF ,不再进行 MAD 处理。
  • 如果 ActiveID 相同,则表示 IRF 正常运行,没有发生多 Active 冲突;如果 ActiveID 值不同,则表示 IRF 分裂,进行 ARP 协议报文快速交互确认,检测到多 Active 冲突。
  • 检测到多 Active 冲突后,会直接让 Master 成员编号小的 IRF 处于 Active 状态,继续正常工作;其它 IRF 上报 MAD 冲突事件给 IRF 模块,IRF 模块将该 IRF 迁移到 MAD Recovery 状态。

其中 IRF 分裂后,进行 ARP 协议报文快速交互确认状态机和流程如下(如下图所示):

  • 初始情况下,IRF 使能 ARP MAD 功能后,各成员设备 ARP MAD 状态机迁移到 ARP_MAD_STS_WAIT_Hello ,IRF 内所有设备从 ARP MAD VLAN 对应的接口发送 ARP MAD Hello 报文(由于 ARP MAD 需要使能 STP 功能,相应端口会被 STP Blocking ,各成员端口发送的 ARP MAD Hello 报文无法相互接收到)。
  •  当 IRF 分裂后,各 IRF 都重新选择了 Master ,使用新 Master 的 MAC 地址封装 STP 报文,各 IRF 之间专门用于 ARP MAD 检测的链路 STP 状态迁移到 Forwarding 状态,ARP MAD 模块可以收到对端 IRF 发送的 MAD Hello 报文,ARP MAD 状态机迁移到 ARP_MAD_STS_WAIT_ALIVEACK ,并发送 ARP MAD Alive 检测报文。
  • 当收到 ARP MAD Alive 检测报文时,如果当前状态为 ARP_MAD_STS_WAIT_Hello ,则迁移到 ARP_MAD_STS_WAIT_ALIVEACK ,并发送 ARP MAD Alive 检测报文;否则发送 ARP MAD Alive 确认报文。
  • 如果收到 ARP MAD Alive 确认报文,且当前为 ARP_MAD_STS_WAIT_ALIVEACK 状态,则开始 ARP MAD 竞选。
ARP MAD 检测状态机
ARP MAD 检测状态机

2 、ARP MAD 检测组网要求

ARP MAD 检测方式可以使用二层交换机设备作为中间设备来进行连接(如下图所示),也可以不使用中间设备(如下下图所示)。当 ARP MAD 检测组网使用中间设备进行连接时,可使用普通的数据链路作为 ARP MAD 检测链路;当不使用中间设备时,需要在所有的成员设备之间建立两两互联的 ARP MAD 检测链路。不管是否使用中间设备来连接,都需要在 IRF 设备和中间设备上配置生成树功能,以防止形成环路。同时还需要在使能 ARP MAD 检测的 IRF 设备上配置 IRF 桥 MAC 不保留[1],这样才能在 IRF 分裂后,触发 STP 状态快速切换,ARP MAD 检测快速生效。

ARP MAD 检测组网示意图一
ARP MAD 检测组网示意图一
ARP MAD 检测组网示意图二
ARP MAD 检测组网示意图二
3.2.2  ND MAD 检测

ND MAD 检测是通过扩展 ND( Neighbor Discovery Protocol )协议报文内容实现的,即使用 ND 的 NS( Neighbor Solicitation )协议报文携带扩展 TLV 选项数据来交互 IRF 的 DomainID 和 ActiveID 。ND MAD 检测原理及组网要求皆和 ARP MAD 检测类似,请参考 ARP MAD 检测介绍。

3.2.3  BFD MAD 检测

1 、BFD MAD 检测原理

BFD MAD 检测是通过 BFD 协议来实现的。要使 BFD MAD 检测功能正常运行,除在三层接口下使能 BFD MAD 检测功能外,还需要在该接口上配置 MAD IP 地址。MAD IP 地址与普通 IP 地址不同的地方在于:MAD IP 地址与成员设备是绑定的,IRF 中的每个成员设备上都需要配置,且所有成员设备的 MAD IP 必须属于同一网段。

  • 当 IRF 正常运行时,只有 Master 上配置的 MAD IP 地址生效,Slave 设备上配置的 MAD IP 地址不生效,BFD 会话处于 down 状态;(使用 display bfd session 命令查看 BFD 会话的状态。如果 Session State 显示为 Up ,则表示激活状态;如果显示为 Down ,则表示处于 down 状态)
  • 当 IRF 分裂形成多个 IRF 系统时,不同 IRF 中 Master 上配置的 MAD IP 地址均会生效,BFD 会话被激活,此时会检测到多 Active 冲突。
  • 检测到多 Active 冲突后,会直接让 Master 成员编号小的 IRF 处于 Active 状态,继续正常工作;其它 IRF 上报 MAD 冲突事件给 IRF 模块,IRF 模块将该 IRF 迁移到 MAD Recovery 状态。
BFD MAD 交互流程
BFD MAD 交互流程

2 、BFD MAD 检测组网要求

BFD MAD 检测方式需要使用中间设备(如下图所示),每个成员设备都需要连接到中间设备,这些 BFD 链路专用于 MAD 检测。这些链路连接的接口必须属于同一 VLAN ,在该 VLAN 接口视图下给不同成员设备配置同一网段下的不同 IP 地址。

在用于 BFD MAD 检测的接口下必须使用 mad ip address 命令配置 MAD IP 地址,而不要配置其它 IP 地址(包括使用 ip address 命令配置的普通 IP 地址、VRRP 虚拟 IP 地址等),以免影响 MAD 检测功能。

BFD MAD 检测组网示意图
BFD MAD 检测组网示意图
3.2.4  LACP MAD 检测

1 、LACP MAD 检测原理

LACP MAD 检测是通过扩展 LACP 协议报文内容实现的,即在 LACP 协议报文的扩展字段内定义一个新的 TLV( Type / Length / Value,类型 / 长度 / 值)数据域 —— 用于交互 IRF 的 DomainID(域编号)、ActiveMemNum(当前 IRF 的成员数目)和 ActiveID(等于 Master 的成员编号)。使能 LACP MAD 检测后,成员设备通过 LACP 协议报文和其它成员设备交互 DomainID 、ActiveMemNum 和 ActiveID 信息。

使能 LACP MAD 检测后,聚合成员端口周期性地发送带有扩展 TLV 字段的 LACP 报文(缺省发送周期为 30 s ,该 LACP 报文和动态 LACP 报文分开发送),对端设备(中间设备)收到带扩展 TLV 的 LACP 报文后,会从聚合组内除接收端口外的所有其他成员端口各转发一份。成员设备通过 LACP 协议报文和其它成员设备交互 DomainID 、ActiveMemNum 和 ActiveID 信息。

  • 当成员设备收到 LACP MAD 报文后,先比较 DomainID ;如果 DomainID 相同,再比较 ActiveID ;如果 DomainID 不同,则认为报文来自不同 IRF ,不再进行 MAD 处理,作为中间设备,仍然需要从聚合组内除接收端口外的所有其他成员端口各转发一份。
  • 如果 ActiveID 相同,则表示 IRF 正常运行,没有发生多 Active 冲突;如果 ActiveID 值不同,快速进行 LACP 报文交互、确认冲突,确认后表示 IRF 分裂,检测到多 Active 冲突。
  • 如果 ActiveMemNum 不同,ActiveMemNum 大的为优,处于 IRF Active 状态继续工作,ActiveMemNum 小的迁移到 Recovery 状态(即禁用状态)。
  • 如果 ActiveMemNum 相同,继续比较 ActiveID ,ActiveID 小的为优,处于 IRF Active 状态继续工作,ActiveID 大的上报 MAD 冲突事件给 IRF 模块,IRF 模块将该 IRF 迁移到 MAD Recovery 状态(即禁用状态)。

详细流程见下图,其中当 IRF 分裂时,快速 LACP MAD 报文交换、确认冲突过程和 ARP MAD 类似:

LACP MAD 交互流程
LACP MAD 交互流程

2 、LACP MAD 检测组网要求

LACP MAD 检测方式组网中需要使用 H3C 设备作为中间设备。通常采用如下图所示的组网,成员设备之间通过 Device 交互 LACP 扩展报文。

在 LACP MAD 检测组网中,如果中间设备本身也是一个 IRF 系统,则必须通过配置确保其 IRF 域编号与被检测的 IRF 系统不同,否则可能造成检测异常,甚至导致业务中断。

LACP MAD 检测组网示意图
LACP MAD 检测组网示意图

4 、总结

IRF 支持的 MAD 检测方式有:LACP MAD 检测、BFD MAD 检测、ARP MAD 检测和 ND MAD 检测。四种 MAD 检测机制各有特点,用户可以根据现有组网情况进行选择。由于 LACP MAD 和 BFD MAD 、ARP MAD 、ND MAD 冲突处理的原则不同,请不要同时配置。BFD MAD 、ARP MAD 、ND MAD 这三种方式独立工作,彼此之间互不干扰,可以同时配置。

MAD 检测方式 优势 限制
LACP MAD 检测速度快,利用现有聚合组网即可实现,无需占用额外接口,利用聚合链路同时传输普通业务报文和 MAD 检测报文(扩展 LACP 报文) 组网中需要使用 H3C 设备作为中间设备,每个成员设备都需要连接到中间设备
BFD MAD 检测速度较快,组网形式灵活,对其它设备没有要求 当堆叠设备大于两台时,组网中需要使用中间设备,每个成员设备都需要连接到中间设备,这些 BFD 链路专用于 MAD 检测
ARP MAD 非聚合的 IPv4 组网环境,和 MSTP 配合使用,无需占用额外端口。在使用中间设备的组网中对中间设备没有要求 检测速度慢于前两种
ND MAD 非聚合的 IPv6 组网环境,和 MSTP 配合使用,无需占用额外端口。在使用中间设备的组网中对中间设备没有要求 检测速度慢于前两种

表 1 MAD 检测机制的比较

注解:

[1] IRF 作为一台虚拟设备与外界通信,具有唯一的桥 MAC ,称为 IRF 桥 MAC 。通常情况下使用主设备的桥 MAC 作为 IRF 桥 MAC 。IRF 桥 MAC 不保留是我司 IRF 桥 MAC 三种不同保留时间中的一种。IRF 桥 MAC 不保留,即当主设备离开 IRF 时,系统会立即使用新选举的主设备的桥 MAC 做 IRF 桥 MAC 。

 

转自:

  • http://www.h3c.com/cn/d_201510/922083_30005_0.htm
打赏 赞(0)
比特币钱包
以太坊钱包
比特币钱包二维码图片

比特币钱包扫描二维码打赏

以太坊钱包二维码图片

以太坊钱包扫描二维码打赏

Was this article helpful?

Related Articles

Leave A Comment?

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据