IRF
概述
IRF的含义就是智能弹性架构(
Intelligent
Resilient
Framework)。
支持IRF 的多台设备可以互相连接起来形成一个“联合设备”,这台“联合设备”称为一个fabric,而将组成fabric的每个设备称为一个unit(如图1所 示)。多个unit组成fabric后,无论在管理还是在使用上,就成为了一个整体。它既可以随时通过增加unit来扩展设备的端口数量和交换能力,大大 提高了设备的可扩展性;同时也可以通过多台unit之间的互相备份增强设备的可靠性;并且整个fabric作为一台设备进行管理,用户管理起来也非常方 便。
简单来说,就是IRF设备通过多个unit的堆叠形成了用户迫切需要的易管理、易扩展以及高可靠的产品特点。是一种不同于业界现有所有设备的全新理念的网络设备。
图1 IRF交换机
IRF技术的三大组成部分
DDM(分布式设备管理):外界可以将整个fabric看成一台整体设备进行管理,用户可以通过CONSOLE、SNMP、TELNET、WEB等多种方式来管理整个fabric。
DRR(分布式弹性路由):fabric的多个设备在外界看来是一台单独的三层交换机。整个fabric将作为一台设备进行路由功能和转发功能。在某一个设备发生故障时,路由协议和数据转发可以不中断。
DLA(分布式链路聚合):支持跨设备的链路聚合,可以在设备之间进行链路的负载分担和互为备份。
分布式弹性组播路由概述
分布式弹性 组播路由作为分布弹性路由的一部分,完全具备了分布式弹性路由的特点,fabric系统内的多台设备对外界看来是一台单独的三层交换机,而且fabric 内部的每个unit可以互相备份,实现了1:N的备份功能。当某一台设备发生故障时,路由协议无缝切换,数据转发不中断。分布式弹性组播路由除了以上单播 路由协议的优点外,还从协议本身出发,从根本上解决了组播数据占用fabric内部带宽的问题。成功开发的分布式IGMP-snooping协议和高效的 组播转发表保证了每台设备间只有一份组播数据报文传送,大大节约了设备间的带宽,提高了设备转发性能。
把多个 unit堆叠起来组成一个fabric在网络中运行时,将不可避免的遇到一个冲突问题:即所有的unit都会发送路由协议报文,都会分别和外界设备进行路 由信息交互,因此外界设备看到的将是多个设备,而不是fabric本身一个设备,而同时由于各个unit上的三层接口以及IP地址是完全一致的,外界设备 就会收到来自同一个接口同一个IP地址的多个路由协议报文(分别由各个unit发出),从而不可避免的造成冲突问题。
要解决这个 冲突问题,就必须让fabric只发出一份路由协议报文,即让整个fabric作为一台设备运行,采取的办法是从所有unit中选出一个unit来发送路 由协议报文,其它unit发送的路由协议报文都将被抑止,因此从外界看来,整个fabric只发出一份路由协议报文来,就像只有一台设备在跑路由协议一 样。
下文图2中 以PIM协议为例对fabric系统作为一台设备跟外界交互的方案进行了简要说明,图2中Unit1和Unit2组成了一个fabric,这个 fabric从Unit1和Unit2分别收到了来自Route1、Route2和Route3的PIM协议报文,并且Unit1和Unit2都向外界发 送了PIM协议报文,但是只有Unit1的报文被成功发送出去,而Unit2的PIM协议报文被抑制在fabric设备内部,从而对于外界设备来说,整个 fabric只发出一份路由协议报文来。
图2 IRF系统收发组播路由协议报文示意图
分布式弹性组播路由的支撑技术
IRF的分布式弹性组播路由是基于分布式设备管理(DDM)技术上实现的。下面具体介绍分布式弹性组播路由需要的几个技术点:
统一的路由协议配置信息:
要使一个 fabric中各个unit上的路由协议各种信息保持一致,一个基本前提就是每个unit关于路由协议的配置是完全一致的。这里的完全一致不仅仅是指配置 的命令完全一致,而且包括配置的时间和时序都完全一致,即用户必须同时在fabric中的所有unit上配置完全一致的命令。很显然这个需求靠用户手工在 所有unit上分别配置命令是无法实现的,因此IRF设备必须实现把整个fabric作为一台设备进行路由协议各种配置的功能。
这里所说的 把整个fabric作为一台设备进行路由协议各种配置的功能是指用户可以借助任何手段(包括CONSOLE、SNMP、TELNET、WEB等多种方 式),也可以在fabric中的任意一个unit上,进行路由协议的相关配置,只要fabric中的任意一个unit收到用户配置,就会马上同步给其余所 有unit同时执行,从而实现每个unit关于路由协议的配置完全一致的需求。
统一的三层接口信息:
设备上存在 UP的三层接口是运行路由协议的基础,也是网络设备能够进行报文三层转发的前提条件。要使一个fabric中各个unit上的路由协议各种信息保持一致, 最基本的前提就是每个unit的三层接口必须保持完全一致。在IRF技术体系里,fabric上的三层接口是一个全局的概念,它不属于某一个unit,而 是属于整个fabric,一个fabric作为一台设备管理本fabric上所有三层接口,每一个三层接口在fabric是具有唯一性的,对于 fabric中任意一个unit来说,它看到的都是由fabric统一维护的全局的三层接口,因此每一个unit看到的结果都是一样的。这也就保证了 fabric中每个unit的三层接口必须保持完全一致的要求。
PIM-DM
支持IRF
特性
PIM-DM 组播路由协议是一种密集模式组播路由协议,它周期性的扩散组播数据并周期性的收敛来维护组播分发树。PIM-DM没有复杂的协议状态机,只是根据PIM协 议报文来维护组播分发树,因此只要让fabric中的每一台unit处理的PIM协议报文完全一致就可以保证每一台unit上生成的PIM-DM状态信息 完全一致。
要实现这个 功能,就必须要保证fabric中的每一台unit在相同的时间,以相同的时序收到完全相同的协议报文,并且处理该协议报文的所有前提条件(例如接口状态 等)都是完全一致的。采取的办法是在所有unit各种协议状态完全一致的情况下,任意一个unit收到外界传来的PIM协议报文就同步给其它所有 unit,让fabric中的所有unit上同时能处理到同样的PIM协议报文,从而保证每个unit生成PIM-DM协议状态的一致性。
PIM-SM
支持IRF
特性
PIM-SM 组播路由协议是一种稀疏模式组播路由协议,该协议把组播信息拉入网络中的接收站点。如果没有接收者,组播数据不会在网络中扩散,只有最优组播分发树上的路 由器才会接收组播。它用显示加入机制来维护共享树和最短路径树。PIM-SM没有复杂的协议状态机,只是根据PIM协议报文来维护组播分发树,因此只要让 fabric中的每一台unit处理的PIM协议报文完全一致就可以保证每一台unit上生成的PIM-SM状态信息完全一致。
要实现这个 功能,就必须要保证fabric中的每一台unit在相同的时间,以相同的时序收到完全相同的协议报文,并且处理该协议报文的所有前提条件(例如接口状态 等)都是完全一致的。采取的办法是在所有unit各种协议状态完全一致的情况下,任意一个unit收到外界传来的PIM协议报文就同步给其它所有 unit,让fabric中的所有unit上同时能处理到同样的PIM协议报文,从而保证每个unit生成PIM-SM协议状态的一致性。
IGMP
支持IRF
特性
互联网组管 理协议(IGMP)负责所连网络组成员关系的收集与维护。该协议收发通用查询报文、特定组查询报文、主机加入报文和离开报文来维护协议的各种状态信息。因 此只要让fabric中的每一台unit处理的IGMP协议报文完全一致就可以保证每一台unit上生成的IGMP状态信息完全一致。
要实现这个 功能,就必须要保证fabric中的每一台unit在相同的时间,以相同的时序收到完全相同的协议报文,并且处理该协议报文的所有前提条件(例如接口状态 等)都是完全一致的。采取的办法是在所有unit各种协议状态完全一致的情况下,任意一个unit收到外界传来的IGMP协议报文就同步给其它所有 unit,让fabric中的所有unit上同时能处理到同样的IGMP协议报文,从而保证每个unit生成IGMP协议状态的一致性。
Multicast traceroutes
支持IRF
特性
Multicast traceroutes是一种跟踪组播数据流的协议。该协议可以从接收者出发,根据组播分发树逐个跟踪到数据源,确定组播数据流的路径,获得中间路由器的 各种组播状态。这种简单协议不需要冗余备份,所以实现起来也容易。IGMP协议支持IRF后,收到的IGMP协议报文都会复制到fabric内所有的 unit上去处理。使用IGMP协议号的multicast traceroutes协议报文也会发送到fabric内所有unit。由于fabric内每个unit的组播路由协议状态都一致,所以一台unit处理 multicast traceroutes协议报文就可以获得整个fabric信息,同时该unit发送multicast traceroutes协议报文跟外界交互。
IGMP-snooping
支持IRF
特性
为了使 IGMP-snooping协议支持IRF特性,成功开发了纯分布式IGMP-snooping协议。它的实现不像组播路由协议PIM,依靠fabric 内广播协议报文和全局的三层接口信息来保证每个unit的协议状态保持一致。分布式IGMP-snooping中,每个unit只维护本unit上的路由 器端口和主机端口状态信息,以及其它unit上是否有主机端口或路由器端口的状态信息,不关心其它unit上的端口状态信息,从而不依赖其它模块就实现了 分布式IGMP-snooping协议。
分布式IGMP-snooping协议有以下几个技术亮点:
1.维护最 少的状态信息。分布式IGMP-snooping协议在每个unit只维护本unit上的用户端口状态信息和其它unit上是否有主机端口和路由器端口的 信息,并不关心其它unit上的具体端口状态信息。这样最少的状态信息维护减少unit间交互信息的数量,大大提高fabric系统内部通信效率。
2.按需转发IGMP主机加入报文,减少IGMP协议报文的拥塞冲突。
3.按需转发组播数据报文,减少fabric内组播数据流量。
分布式IGMP-snooping有以下几个技术点组成。
1.路由器端口的智能维护
当某 unit从用户端口收到组播路由协议报文或IGMP通用查询报文,认为该端口上有路由器,就把该端口视为路由器端口。如果该路由器端口是vlan内的第一 个路由器端口,则通知其它fabric内的所有unit本unit有路由器端口。如果该路由器端口不是本unit上的第一个路由器端口,那只在本地维护的 路由器端口列表中增加一个端口,并不向其它unit通知本unit有路由器端口,因为其它unit已经知道本unit有一个路由器端口。
当其它unit收到一个消息通知某unit有一个路由器端口时,当前unit只记录某unit有路由器端口,不记录具体路由器端口状态信息。这样维护最少的状态信息,减少系统内部备份数据的数量,大大提高fabric系统运行性能。
当某unit的路由器端口超时时,就从本地路由器端口列表中删除该端口。如果该unit没有其它的路由器端口就通知其它所有unit,本unit没有路由器端口。
当其它unit收到一个消息通知某unit没有路由器端口时,直接从该路由器端口列表中删除该unit。
2.主机端口的智能维护
当某 unit收到IGMP主机加入报文后,认为该端口有直连主机,并把该端口视为主机端口。如果该端口是本unit第一个主机端口,就通知fabric内所有 其它unit,本unit有主机端口。如果主机端口不是该unit第一个主机端口,那只在本地维护的主机端口列表中增加一个端口,不向其它unit通知本 unit有主机端口。因为其它unit已经知道本unit有主机端口。
当其它unit收到一个消息通知某unit有一个主机端口时,当前unit只记录某unit有主机端口,并不记录具体的主机端口状态信息。虽然系统通过其它的方法可以获得全局端口信息,这里不记录其它unit上的具体端口信息。
当某unit发送一个特定组查询报文后没有收到响应的IGMP主机加入报文,就从本地主机端口列表中删除。如果该unit上没有其它主机端口就通知fabric内其它所有unit,本unit没有主机端口。
当其它unit收到一个消息通知某unit没有主机端口时,直接从该主机端口列表中删除该unit。
3. IGMP主机加入报文的有效抑制
当unit 收到某组的第一个主机加入报文时,创建主机端口,并直接透传该报文到fabric内所有其它的unit。当fabric系统发送IGMP查询报文后,并不 是把所有响应的主机加入报文透传到其它unit。而是发送查询报文后,把每组中第一个响应的主机加入报文发送到其它unit。其它unit在每个周期内只 收到一份主机加入报文就可以保证协议的正常运行。这种抑制机制大大减少了IGMP报文的拥塞冲突,提高了fabric系统性能。
如图3所 示,四个unit通过环型连接组成一个传统堆叠系统,主机Host1~4属于同一组。当每一个主机响应路由器Router的IGMP查询报文时, Unit1会从主机Host1和Host2收到IGMP主机加入报文,并把这两份报文在堆叠系统内广播。Unit4也会从主机Host3和Host4收到 IGMP主机加入报文,并把这两份报文在堆叠系统内广播。这样堆叠设备内会有多份同一组的IGMP主机加入报文,从Unit2到路由器的链路上也会有多份 同组的IGMP主机加入报文。显然这种堆叠方式会增加堆叠设备的负荷,大大降低了系统性能。
图3 传统堆叠设备中的IGMP-snooping协议报文示意图
如图4所 示,四个unit通过环型连接组成一个IRF堆叠系统,主机Host1~4属于同一组。当每一个主机响应路由器Router的IGMP查询报文时, Unit1会从主机Host1和Host2收到IGMP主机加入报文,Unit4也会从主机Host3和Host4收到IGMP主机加入报文。可是 fabric系统只会把最早响应的IGMP主机加入报文在fabric系统内广播,而且Unit2和路由器之间的链路上只有一份IGMP主机加入报文。其 它同组的加入报文被有效的抑制在fabric系统内,确保最少的协议报文来维护IGMP协议状态,大大减少了IGMP主机加入报文的拥塞冲突。
图4 IRF系统中的分布式IGMP-snooping协议报文示意图
4.Unit加入处理
当新 unit加入到fabric时,每个unit都把本unit上是否有主机端口或路由器端口的状态发送到新加入的unit上,这样新加入的unit就知道哪 些unit有路由器端口和主机端口。同时新加入的unit也向fabric内其它unit通知本unit上是否有路由器端口或主机端口的状态,让 fabric系统内的其它unit知道。
5.Unit离开处理
当某unit从fabric内离开时,fabric内的其它unit直接把跟本unit相关的主机端口和路由器端口信息删除。从fabric内离开的unit也把跟fabric内其它unit相关的主机端口和路由器端口信息删除。
分布式组播数据转发
Fabric 系统是有多台独立的unit组成,任意一个unit都有完整的三层转发能力。每个 unit 都可以接收报文,且报文的出端口可以在本 unit,也可以在其它 unit。为了减轻unit间通信的压力,如何保证unit间只复制一份报文,fabric内跨越最少的unit成为一个难题。由于成功开发了分布式 IGMP-snooping,从协议本身出发,把高可靠性的三层转发表和分布式IGMP-snooping维护的出端口列表有机的结合后,产生了指导组播 转发的高效组播转发表。该组播转发表只维护本unit上的用户出端口和fabric内其它unit上出端口所在的unit号,并不关心其它unit上具体 的端口号。被这种高效组播转发表指导的组播数据在fabric内转发时,跨越最少的unit,寻找最短的路径,且unit间传递最少报文来转发,实现了分 布式三层数据转发。彻底解决了跑组播业务就网络性能降低的难题,给用户带来了高可靠性、高性能的组播业务。
分布式组播转发有两大技术亮点:
1.高可靠性的三层组播转发表
由分布式设 备管理提供的全局配置同步和全局统一的三层接口是给高可靠性的组播路由提供了基础。虽然每个unit上的组播路由协议的状态都相同,所生成的组播路由表也 相同,但并不是每个unit独立维护各自的组播转发表,而是其中的一台unit统一下发组播转发表,保证了fabric内所有三层组播转发表相同。图2中 可以看到,只有Unit1下发组播转发表,unit2的组播路由表没有下发到组播转发表。
当fabric 内统一下发组播转发表的unit出现故障或离开fabric系统时,fabric内剩余的unit会选择一台unit统一下发组播转发表。由于分布式弹性 组播路由协议已经保证了各个协议的状态相同,组播路由表相同,所以重新下发的组播转发表也相同,保证了组播路由无缝切换,数据不中断,实现了高可靠性。
2.高效的组播转发表
高可靠性的 三层组播转发表跟分布式IGMP-snooping有机的结合,产生了交换机上引导组播数据转发的二三层结合的组播转发表。该组播转发表只维护本unit 上的用户出端口和fabric内其它unit上出端口所在的unit号,并不关心其它unit上具体的端口号。这种高效组播转发表指导组播数据转发时,使 组播数据跨越最少的unit,寻找最短的路径,且unit间传递最少报文来转发,实现了分布式三层数据转发。
图5是环型 连接的传统堆叠设备。Server发出的组播数据会从Unit2进入fabric系统,通过fabric系统复制转发,Host1~5主机才能收到组播数 据。从图中可以看出,unit2做了集中组播转发,复制了所有的组播数据流。这样Unit2到Unit1的内部链路上会有四份组播数据流,而在Unit1 到Unit4的内部链路上也有两份组播数据流。这种传统组播转发增加了fabric系统内链路通信负荷,大大降低了系统系能,没有把组播数据复制交换负担 分散在系统的多台unit上。这种传统堆叠方式除了端口数量增加外没有任何优点,还降低了整个网络性能。图中还附了一张Unit2设备的组播转发表。由于 Unit2设备维护所有的出端口,理所当然的完成了集中式组播转发。
图5 传统堆叠设备中的组播数据转发示意图
图6是环型 连接的IRF堆叠设备。Server发出的组播数据会从Unit2进入fabric系统,通过fabric系统复制转发,Host1~5主机才能收到组播 数据。从图中可以看出,虽然Unit2 上的转发表有三个目的地址,Unit2只复制两份组播数据,一份是给Host5的组播数据流,另一份是给Unit1的组播数据流。Unit1收到组播数据 流后,再把组播数据复制三份分别给两个主机Host1、Host2和Unit4。最终Unit4再复制两份组播数据流,发送给主机Host3和 Host4。这种分布式三层转发保证了每一个链路有最有少的组播数据流,把组播数据复制转发这种消耗系统资源的工作分散在fabric系统内的每一个 unit上去做,使每个unit分别负担组播转发,大幅提高了组播数据转发性能。图中还附了一张Unit2设备的组播转发表。由于Unit2设备有高效的 组播转发表,才实现了分布式组播转发。
图6 IRF系统中的分布式组播数据转发示意图
总结
支持IRF 特性的分布式弹性组播路由既可以通过多台unit间的互相备份,大幅提高了网络可靠性,又可以高智能组播数据转发,使每个设备分别负担组播转发,充分利用 了每个设备的转发容量,大幅提高了组播数据转发性能。 支持IRF特性的组播网络给用户带来了易管理,易扩展,高可靠性,高性能的网络。
2华为IRF技术白皮书-IRF之分布式设备管理
概要
IRF的含义就是智能弹性架构(
Intelligent
Resilient
Framework)。
支持IRF 的多台设备可以互相连接起来形成一个“联合设备”,这台“联合设备”称为一个Fabric,而将组成Fabric的每个设备称为一个Unit。多个 Unit组成Fabric后,无论在管理还是在使用上,就成为了一个整体。它既可以随时通过增加Unit来扩展设备的端口数量和交换能力,大大提高了设备 的可扩展性;同时也可以通过多台Unit之间的互相备份增强设备的可靠性;并且整个Fabric作为一台设备进行管理,用户管理起来也非常方便。
简单来说,就是IRF设备通过多个Unit的堆叠形成了用户迫切需要的易管理、易扩展以及高可靠的产品特点。是一种不同于业界现有设备的全新理念的网络设备。
分布式设备管理的核心问题
任何形式的 堆叠技术都必须解决设备的统一管理问题,因为它们对用户的意义是勿庸置疑的。在管理一群相互之间有关联的设备时,最好的方式就是让用户在同一个界面上看到 所有设备的情况,而不是来回切换窗口。如果堆叠设备之间没有良好的信息交互,统一的管理会因为得不到足够的数据而无法全部实现。有时候,设备之间仅仅进行 很少的数据交流,形成一个松散的集合,在这样的设备上进行统一的管理是没有可能的。
最优秀的堆 叠使所有的设备组合起来,变为一台“更大的设备”。分布式是这台大设备的特点,它拥有若干个CPU,端口数目是原来的好几倍并且分别隶属于这几个CPU。 为了使这台大设备运行得真正象一个设备,对它的管理就变得非常重要。这个大设备中的每一部分必须具有全部信息或者在任一时刻能够获取到需要的信息。当某一 部分接收到用户的配置改变,命令被无缝地传送到目的地进行执行并返回结果。
不难看出,分布式设备管理的核心问题是数据的一致性。IRF的分布式设备管理技术通过多种途径解决了这一问题。它负责建立堆叠,对设备上的数据进行统一管理,使得整个Fabric看上去象是一台设备。
分布式设备管理所包含的内容包括堆叠的形成,配置的同步和各种配置工具。
对设备上数 据的统一管理基于设备之间信息的交换。堆叠设备进行信息交换的重要方式是通过数据同步。在unit之间,同步是每时每刻都在发生的,但大量的同步是在有新 设备加入到Fabric时进行的,也就是堆叠形成的时候进行的。堆叠建立后,在有设备退出Fabric的时候,退出设备的信息就要被删除。
设备上的数据,或者说需要同步的信息集中体现在设备的配置上。在单机情况下,配置通过各种配置方式下发到各个模块,更改系统的运行方式,并可以被保存为配置文件以便长期使用。在IRF技术中,保证每个设备上配置的同步是至关重要的,这是形成Fabric的必要条件之一。
IRF技术 在设备管理方面的可用性和可扩展性方面达到了一个新的高度。堆叠设备之间完全可以相互操作,从任何一台设备的界面上都可以看到其他设备的信息,就好像是在 对同一台设备进行操作,用户感觉不到他正在同时操纵着几台设备。基于IRF的用户管理工具有控制口、telnet、SNMP、Web页面,用户通过任何一 种方式都可以看到整个Fabric的配置,并进行更改。
设备的堆叠
Unit
号
在Fabric 中,不同的设备之间用号码进行区分,称为unit号(unit id),Fabric内的设备具有唯一的unit号,它可以是自动编号产生的,也可以是预先指定的。它在Fabric中唯一代表这台设备。在有的产品中, unit号重复的设备是可以堆叠的,堆叠开始后,如果unit之间发现有重复的号码,就会改变某些unit的号码,使得Fabric内没有重复号码。有的 产品则规定堆叠的设备之间号码不可以重复,必须事先设定好,否则不进行堆叠。
图1 具有unit号的交换机
设备的up
和down
假设在一个 Fabric内有两台设备,分别是unit 1和unit 2,当第三台设备unit 3加入这个Fabric的时候,在unit 1和unit 2上,看到的是unit 3 up的现象,在unit 3上,看到的是unit 1和unit 2 up的现象。这种现象作为事件上报给系统,以便系统进行数据的同步,建立堆叠。同样,在设备的堆叠被切断的时候,看到的现象是对方unit down了,根据这样的事件,已有的相关数据被删除。设备的up和down是堆叠过程的基本事件,每一个设备根据它们进行后续的操作,形成稳定的 Fabric。
Fabric
的合并(merge)
和分裂(split)
在一个 Fabric内,如果两台设备之间的堆叠连接被完全断开,就会产生Fabric分裂的情况。例如:有五台设备形成一个Fabric,堆叠连接断开, unit 1和unit 2连接在一起,unit 3、unit 4和unit 5连接在一起。每一组分别形成了新的Fabric,原来的unit 号不变,继续运行。在unit 1和unit 2上,会产生unit 3、4、5 down的事件;在unit 3、4、5上,会产生unit 1、2 down的事件。
同样,如果将上面两个Fabric中的设备重新连在一起,会产生合并的现象。合并的时候,每个Fabric内的设备会分别产生其他新的设备的up事件,如果出现了重复的unit号,会进行重新的编号以保证在合并后的Fabric内,unit号是唯一的。
Unit的up和down事件同Fabric的合并(merge)与分裂(split)是伴生的现象,是从不同的角度描述的Fabric变化的情况。
Fabric
的运行模式
在IRF技 术中,Fabric上的三层接口是一个全局的概念,它不属于某一个Unit,而是属于整个Fabric,因此是否运行于三层状态是Fabric的一个重要 特性,它会影响到许多流程的处理,Fabric运行的这种状态称作L3模式。如果一个Fabric只运行在二层接口上,就处于L2模式,处于L2模式的 Fabric是不能运行三层功能的。模式之间可以切换。
在网络运行 中,一个L3模式的Fabric分裂时,三层配置会产生冲突,例如一个配置了IP地址为192.168.1.1的Fabric运行于L3模式,分裂发生 后,网络上就会出现两台具有IP地址为192.168.1.1的设备。对此,IRF技术提供了RARP协议进行三层的冲突检测,有一方会将模式自动切换为 L2,禁止三层功能的运行,从而使整个网络继续稳定的运行。
设备的配置
在堆叠设备 中,有一些配置在每台设备上必须保持一致,假设两个要堆叠的设备都配置了vlan 3,但它们却有不同的三层ip地址,冲突就会产生,必须改变其中一台设备的IP地址才能适应堆叠。同样,在一个Fabric内的两台设备,一台仅在运行 RIP协议、而另一台仅在运行OSPF协议也是不可能的。因此,系统配置被分为全局配置和局部配置。全局配置包括:三层接口、IP地址、路由协议、安全特 性等。这些配置在Fabric内的每台设备上必须是一致的。局部配置主要包括端口参数等,是每个设备特有的,不必相同。
运行中设备 的配置被称作当前配置,当前配置可以被保存为配置文件,设备启动时读取配置文件,依照配置文件中记录的命令配置设备。堆叠后,Fabric内的设备必须具 有相同的全局配置,因此,如果全局配置不相同,就必须确定一个标准,所有的设备都按照这个标准的全局配置下发命令。这个统一的标准定为unit号最小的设 备上所保存的配置。其它unit号较大的设备获取该设备的配置内容,同自己的配置进行比较,如果一致,它们会继续形成堆叠;如果不一致,则通过某种方式变 更自己的配置,使配置同具有最小unit号的设备的全局配置相同。
堆叠后显示的配置是全局配置和各个unit上的局部配置的总和,这个配置也叫做Fabric配置。
堆叠的形成
堆叠会在各种条件下形成。需要堆叠的设备必须具有相同的系统名(sysname),系统名不同的设备不会进行堆叠。这使得相互之间连接的设备知道自己属于哪个Fabric,不至于造成混乱。IRF技术提供了多种形成堆叠的流程,可以在不同的产品中使用。
一种情况是 在设备运行的时候进行堆叠。如果设备已经启动,在连接了设备的堆叠口并进行配置之后,设备之间就开始堆叠。在堆叠设备开始通信之后,首先进行当前配置的比 较,如果全局配置是相同的,就会相互发送数据,进行同步,之后向整个系统宣告堆叠已形成,各个模块根据设备管理模块所上报的up事件进一步处理数据,堆叠 完成。当前配置不同的设备是不能进行堆叠的,因此,如果unit号较大的设备的配置同unit号最小的unit的配置不同,就会保存unit号最小的设备 的配置,然后重启,重启后会从FLASH上读出所保存的配置,这时设备间的配置变得相同,堆叠继续进行。
第二种情况 是在系统刚启动的时候进行堆叠。如果物理上已经连接,并且堆叠的命令保存在配置文件中,设备一起动会立即进行堆叠。IRF技术对这种情况提出了两种解决方 法,第一种是设备继续运行,按照各自的配置启动,然后进行堆叠。这种情况和上面所描述的堆叠过程是大致相同的。第二种方式是当unit号较大的设备发现自 己需要进行堆叠,就不再使用本机的配置文件,而是从unit号最小的unit上获取配置,直接将这个配置做为启动配置下发,进行堆叠。
无论哪种情况,在确认配置相同之后,一些必要的数据会被同步,之后unit up的事件会上报给系统中所有的模块,宣告堆叠已经成功。各模块根据各自的方式开始堆叠后的运行,相关的内容在《分布式弹性路由白皮书》和《分布式链路聚合白皮书》中描述。
Fabric内设备的变化给管理带来了极大的挑战,尤其在频繁出现Fabric合并和分裂时,这时在设备上会频繁出现up和down事件,所保存的数据也会频繁的更新和删除,以反映新的堆叠情况。
管理工具
堆叠设备的管理面临难题是:首先必须支持各种不同的管理方式和管理工具,其次必须保证从各种工具所发出的全局配置在Fabric内的所有设备上是一致的。
IRF技术 采用统一的接口,解决了不同管理工具从不同的设备登录所带来的配置管理复杂性。用户通过任何一种工具所发出的请求,经过解析后下发到需要执行的设备上。如 果是全局配置,请求会下发到Fabric内的所有设备;如果是局部配置,则会下发到特定的设备。操作执行的结果被反馈,经过进一步的组合返回给用户。
图2 全局配置和局部配置
IRF的设备管理具有良好的可扩展性,可以很容易的支持新的管理工具。在每种工具上,用户都可以看到整个Fabric内的配置并进行配置更改,而不用管当前是通过哪台设备登录的。在用户看来,他访问的是一台具有更多端口的大型设备。
图3 一个Fabric对用户来说更象是一台设备
目前支持的管理工具包括控制口(CONSOLE)、SNMP协议、TELNET和Web网管。
控制口
每一个设备都有一个控制口,因此堆叠的设备会有多个控制口。这些控制口的地位是相同的,用户可以从任何一个控制口登录,访问任何一台Fabric内的设备。
用户通过控制口管理设备是采用命令行的方式,输入命令经过解析,进行广播或发送到相应的unit上。执行的结果被显示在用户连接的控制口上。
TELNET
用telnet进行远程管理,是比控制口更灵活的方式。用户的命令被发送到telnet服务程序,进而被发送给命令行,命令行解析命令,然后被广播或发送到相应的unit上。执行的结果由telnet服务程序发回客户端。
由于三层接口是全局的,telnet客户端可以连接Fabric上配置的任何三层接口。用户不用关心是从哪个设备连接的。
SNMP
SNMP Server发出请求,例如get,get next,set,以get为例,SNMP Agent将收到的get请求广播或发送到指定unit,执行的结果被发回,SNMP Agent将结果进行组合,有关unit的条目会用响应unit返回的结果,然后发回SNMP Server。
Web
网管
Web网管通过http协议为用户提供良好的界面,由于因特网已经无处不在,通过它也使得对设备的管理变得更加简便。用户通过浏览器发送请求给设备上的HTTP服务程序,请求被广播或发送到指定unit,执行的结果经过组合,通过Web页面反馈给用户。
总结
IRF技术的分布式设备管理解决了网络设备的数据一致性问题,使得整个Fabric对用户表现为一台设备。IRF技术提供了多种管理工具,为用户提供了灵活的、高可用的系统。
3
华为IRF技术白皮书-IRF之分布式链路聚合
引言
随着数据业 务量的增长和对服务质量要求的提高,高可用性(High Availability)日益成为高性能网络最重要的特征之一。网络的高可用性是指系统以有限的代价换取最大运行时间,将故障引起的服务中断损失降到最 低。具有高可用性的网络系统一方面需要尽量减少硬件或软件故障,另一方面必须对重要资源作相应备份。一旦检测到故障即将出现,系统能迅速将受影响的任务转 移到备份资源上以继续提供服务。
网络的高可 用性一般在系统、组件和链路三个级别上体现。系统级的高可用性要求网络拓扑必须有冗余节点和备份设计。组件级的高可用性着眼于网络设备自身,要求网络设备 具有冗余部件和热备份机制。链路级的高可用性则要求传输线路备份,如果主要数据通路中断,备用线路将迅速启用。
传输链路的 备份是提高网络系统可用性的重要方法。目前的技术中,以生成树协议(STP)和链路聚合(Link Aggregation)技术应用最为广泛。生成树协议提供了链路间的冗余方案,允许交换机间存在多条链路作为主链路的备份。而链路聚合技术则提供了传输 线路内部的冗余机制,链路聚合成员彼此互为冗余和动态备份。
链路聚合技术
链路聚合技 术亦称主干技术(Trunking)或捆绑技术(Bonding),其实质是将两台设备间的数条物理链路“组合”成逻辑上的一条数据通路,称为一条聚合链 路,如Figure 1示意。交换机之间物理链路Link 1、Link2和Link3组成一条聚合链路。该链路在逻辑上是一个整体,内部的组成和传输数据的细节对上层服务是透明的。
链路聚合示意图
聚合内部的物理链路共同完成数据收发任务并相互备份。只要还存在能正常工作的成员,整个传输链路就不会失效。仍以上图的链路聚合为例,如果Link1和Link2先后故障,它们的数据任务会迅速转移到Link3上,因而两台交换机间的连接不会中断(参见Figure2)。
链路聚合成员相互备份
链路聚合的优点
从上面可以看出,链路聚合具有如下一些显著的优点:
提高链路可用性
链路聚合中,成员互相动态备份。当某一链路中断时,其它成员能够迅速接替其工作。与生成树协议不同,链路聚合启用备份的过程对聚合之外是不可见的,而且启用备份过程只在聚合链路内,与其它链路无关,切换可在数毫秒内完成。
增加链路容量
聚合技术的另一个明显的优点是为用户提供一种经济的提高链路传输率的方法。通过捆绑多条物理链路,用户不必升级现有设备就能获得更大带宽的数据链路,其容量等于各物理链路容量之和。聚合模块按照一定算法将业务流量分配给不同的成员,实现链路级的负载分担功能。
某些情况下,链路聚合甚至是提高链路容量的唯一方法。例如当市场上的设备都不能提供高于10G的链路时,用户可以将两条10G链路聚合,获得带宽大于10G的传输线路。
此外,特定组网环境下需要限制传输线路的容量,既不能太低影响传输速度,也不能太高超过网络的处理能力。但现有技术都只支持链路带宽以10为数量级增长,如10M、100M、1000M等。而通过聚合将n条物理链路捆绑起来,就能得到更适宜的、n倍带宽的链路。
链路聚合的标准
目前链路聚合技术的正式标准为IEEE Standard 802.3ad,由IEEE802委员会制定。标准中定义了链路聚合技术的目标、聚合子层内各模块的功能和操作的原则,以及链路聚合控制的内容等。
其中,聚合技术应实现的目标定义为必须能提高链路可用性、线性增加带宽、分担负载、实现自动配置、快速收敛、保证传输质量、对上层用户透明、向下兼容等等。
链路聚合控制协议
LACP
链路聚合控 制协议(Link Aggregation Control Protocol)是IEEE 802.3ad标准的主要内容之一,定义了一种标准的聚合控制方式。聚合的双方设备通过协议交互聚合信息,根据双方的参数和状态,自动将匹配的链路聚合在 一起收发数据。聚合形成后,交换设备维护聚合链路状态,当双方配置变化时,自动调整或解散聚合链路。
LACP协 议报文中的聚合信息包括本设备的配置参数和聚合状态等,报文发送方式分为事件触发和周期发送。当聚合状态或配置变化事件发生时,本系统通过发送协议报文通 知对端自身的变化。聚合链路稳定工作时,系统定时交换当前状态以维护链路。协议报文不携带序列号,因此双方不检测和重发丢失的协议报文。
需要指出的是,LACP协议并不等于链路聚合技术,而是IEEE802.3ad提供的一种链路聚合控制方式,具体实现中也可采用其它的聚合控制方式。
分布式链路聚合技术
IRF
架构下的聚合技术
IRF技术将 多台交换设备组合成一个高性能的整体,目的是以尽可能少的开销,获得尽可能高的网络性能和网络可用性。支持IRF技术的设备都具备三个重要特性:分布式设 备管理DDM、分布式链路聚合DLA和分布式弹性路由DRR。这三项技术是完成IRF技术目标不可缺少的环节。其中,DLA用于提高传输链路的可用性和容 量。
多台IRF交 换机堆叠后,端口的数量增加了,要求DLA能支持更多的聚合组,每组能有更多的聚合成员。更多的聚合组意味着交换设备可提供更多的高速链路,而更多的聚合 成员则不仅能提高链路容量,还能降低整个数据线路失效的风险。在不同的IRF设备上,上述两项参数不同,但IRF系统至少支持8组聚合链路,每组能提供一 条总容量为80M、800M或8000M的传输链路。一些配置较高的交换机还允许两个10G端口的聚合,为用户提供一条带宽更高的链路。
除了能提供更大的带宽之外,DLA还实现了IEEE 802.3ad标准中聚合的其它目标:
带宽的增加是可控的、线性的,可以由用户的配置决定,不以 10为倍数增长。
传输流量时,DLA根据数据内容将其自动分布到各聚合成员上,实现负载分担功能。
聚合组成员互相动态备份,单条链路故障或替换不会引起链路失效。
聚合内工作链路的选择和替换等细节对使用该服务的上层应用透明。
交换设备的链路连接或配置参数变化时,DLA迅速计算和重新设置聚合链路,将数据流中断的时间降到最小。
如果用户没有手工设定聚合链路,系统可自动设置聚合链路,将条件匹配的物理链路捆绑在一起。
链路聚合结果是可预见的、确定的,只与链路的参数和物理连接情况相关,与参数配置或改变的顺序或无关。
聚合链路无论稳定工作还是重新收敛,收发的数据不会重复和乱序。
可与不支持聚合技术的交换机正常通信,也能与其它厂商支持聚合技术的设备互通。
用户可通过CONSOLE、SNMP、TELNET、WEB等方式配置聚合参数或查看聚合状态。
DLA
的特征
作为一项新技术,IRF技术呈现出许多新特性,其分布式构架方式使其各功能具有与众不同的优势。DLA体现了IRF技术在链路聚合方面的独到之处:
支持非连续端口聚合
与之前的聚合实现方式不同,IRF系统不要求同一聚合组的成员必须是设备上一组连续编号的端口。只要满足一定的聚合条件,任意数据端口都能聚合到一起。用户可以根据当前交换系统上可用端口的情况灵活地构建聚合链路。
支持跨设备和跨芯片聚合
目前一些堆 叠技术并不支持跨设备的聚合方式,即堆叠中只有位于相同物理设备的端口才能加入同一聚合组中,用户不能随意指定聚合成员。这种限制在一定程度上抵消了端口 数量扩展的好处。例如,当用户打算通过聚合将一条传输线路的容量提高到800M时,如果每一单独的设备上的端口都不足8个,这一需求就无法满足。虽然整个 系统还有足够可用的100M端口,但它们分散在各物理设备上,无法形成一条满足带宽要求的逻辑链路。
IRF则不 同。在IRF看来,堆叠的多台设备(称为unit)是一个整体,链路聚合功能和操作也应是一个整体。DLA模块对用户屏蔽了端口的具体物理位置这一细节, 其示意图见Figure3。只要聚合条件相同,用户就能将不同unit的端口聚合到一起,如图中的端口p1、p2、p3和p4,组成了一条逻辑链路。此 时,unit1~4协同计算和选择聚合组内的工作链路。P1~p4彼此动态备份,跨设备实现数据收发和负载分担,最大限度地发挥了多设备的优势。
跨设备的聚合链路
此外,有些交换设备不支持跨芯片聚合,即位于同一设备不同交换芯片的端口不能聚合。这一限制对IRF设备同样不存在,DLA允许端口跨芯片形成聚合组。对一些使用子卡的IRF设备而言,子卡上端口同样能与本unit或其它unit上任一条件匹配的端口聚合。
分布式聚合控制
虽然IRF 系统呈现为一个整体,但并不限制用户只能在某一特定的unit上操作。以聚合为例,用户可在系统的任一unit上对所有聚合链路进行配置和管理,查看全部 聚合组和聚合端口的状态。通过CONSOLE、SNMP、TELNET或WEB方式连接到系统的任何一个unit上,用户就能创建或删除聚合组,显示聚合 信息,也能进入具体的端口模式修改或显示其聚合参数。在这一过程中,DLA自动将用户命令交给端口所在的unit同步执行。接收命令的unit获取执行结 果后提供给用户。
分布式聚合 技术进一步消除了设备单点失效的问题,提高了链路的可用性。由于聚合成员可以来自不同设备,这样,即使系统内某些unit失效,其它正常工作的unit会 继续控制和维护剩余的端口的状态,聚合链路也不会完全中断。这对核心交换系统以及一些高质量服务的网络意义重大。以下面的Figure4为例, IRF系统X1和X2之间有一条聚合链路。该链路由物理连接Link1~Link4构成,负责局域网LAN1和LAN2之间的通信。假如X1中交换机 X11发生故障,导致Link1和Link2不可用,Link3与Link4不受影响,仍能聚合在一起收发数据。此后如果X2中X22也失灵,X1与X2 之间至少还能通过Link3保持连接。
两个IRF系统之间的聚合链路
IRF设备 可视为 “积木式”(scalable)的交换机。用户既可使用单台IRF交换机组网,也可以逐台增加从而按需增强网络设备的性能。同时这一高性能堆叠交换机也可 以拆分,拆分后各unit恢复成为独立工作的交换设备。上述过程分别称为合并(merge)和拆分(split)。如果合并前两个系统各自创建了参数相同 的聚合链路,IRF要求合并后这些聚合成员必须加入同一组,即聚合组也实现合并。合并后各个unit协同工作,在全局匹配配置参数、分配聚合组号、将端口 加入对应组并重新计算和设置端口状态。同样,如果拆分前同一聚合组成员分布于不同unit上,拆分后它们仍留在各自创建的同名同类型聚合组中。DLA确保 各unit保留当前的聚合配置,从组中删除已离开的端口,然后计算剩余端口的状态。
这一特性最大限度保护了用户的聚合配置。而且,当堆叠链路故障引起系统拆分时,该特性让IRF系统尽可能地维持已有的聚合链路,降低故障带来的数据传输损失。
多种聚合类型
DLA实现了三种类型的聚合方式:手工聚合、静态聚合和动态聚合。
手工和静态聚合组通过用户命令创建或删除,组内成员也由用户指定。创建后,系统不能自动删除聚合组或改变聚合成员,但需要计算和选择组内成员的工作状态。聚合成员是否成为工作链路取决于其配置参数,并非所有成员都能参加数据转发。
手工和静态 聚合主要是聚合控制方式不同。手工聚合链路上不启用LACP协议,不与对端系统交换配置信息,因此聚合控制只根据本系统的配置决定工作链路。这种聚合控制 方式在较早的交换设备上比较多见。静态聚合组则不同,虽然聚合成员由用户指定,但DLA自动在静态链路上启动LACP协议。如果对端系统也启用了LACP 协议,双方设备就能交换聚合信息供聚合控制模块使用。
动态聚合控 制完全遵循LACP协议,实现了IEEE802.3ad标准中聚合链路自动配置的目标。用户只需为端口选择动态方式,系统就能自动将参数匹配的端口聚合到 一起,设定其工作状态。动态聚合方式下,系统互相发送LACP协议报文,交换状态信息以维护聚合。如果参数或状态发生变化,链路会自动脱离原聚合组加入另 一适合的组。
上述三种聚合方式为IRF系统提供了良好的聚合兼容性。系统不仅能与不支持链路聚合的设备互连,还能与各种不同聚合实现的设备配合使用。用户能根据实际网络环境灵活地选择聚合类型,获得高性能高可靠的链路。
DLA
的应用例
与IRF的其它功能配合,DLA能在许多应用环境下发挥重要的作用。下面给出两个应用例。
DLA在办公楼区的应用
Figure5 显示了IRF在一个办公楼群中的应用案例。整个楼群通过4台IRF交换机unit1~unit4与外网通信。Unit1~unit4分别位于4栋办公楼 中。它们之间以光纤相连,组成一个IRF系统。IRF系统通过Link1~Link8与外部网络相连(Link1~Link8为100M带宽链路)。
Link1~Link8 聚合后,整个IRF系统可为楼内用户提供高可靠的通信。以用户H1为例,正常情况下,H1与外网交换数据的速率理论上能达到800M。即使Link1和 Link2发生故障,H1与外网的通信经由Link3~Link8转发,也能获得一条最大带宽为600M的线路。此外H1与网内邻居H2之间的通信也能由 unit之间的光纤高速转发。
IRF-DLA应用于办公楼群
DLA在HPC系统内的应用
下图显示了 IRF-DLA在一个高性能机群计算系统HPC(High Performance Computer)中的应用。HPC系统主要用于完成大计算量任务。机群的主节点将任务分成多个可独立进行的片段,交由各个计算节点完成。出于对高速计算 的要求,HPC对数据吞吐速度和数据交换系统的可靠性有很高的要求。
图中所示的 HPC服务器均通过两块网卡与IRF系统相连。其中主节点和备份节点上各使用2条10G链路分别与X1和X2相连,各计算节点分别使用2条1G的链路线路 与之相连。X1和X2均正常工作时,主节点通过总容量20G的聚合链路将计算任务源源不断地发送给各计算节点,同时各计算节点将结果通过2G的链路提交给 主节点。
当与主节点相连接的某条10G链路出现故障,或者X1失灵时,虽然系统的整体计算性能有一定程度的下降,但10G链路基本能满足HPC的要求,不会成为整个计算系统的性能瓶颈。
IRF-DLA应用于HPC系统
总结
链路聚合技 术为网络系统提供了链路级的高可用性方案,同时为系统提供了更大的带宽。而IRF技术下的分布式链路聚合技术更将聚合技术提升到一个新的层次,实现了堆叠 系统下跨设备跨芯片的聚合方式。其分布式的管理和控制不仅为用户提供了易扩展的聚合手段和方便的操作方式,也进一步消除了交换机故障时引发的单点失效问 题。DLA的三种聚合方式最大程度满足了用户在不同组网环境下对聚合的需求。因而,由于采用了DLA技术,IRF架构将成为不同于已有聚合实现的全新的交 换设备,在当今用户需求日益提升的数据通信领域中必将大放异彩。
4
华为IRF技术白皮书-IRF之分布式三层转发
IRF
概述
IRF的含义就是智能弹性架构(
Intelligent
Resilient
Framework)。
支持IRF 的多台设备可以互相连接起来形成一个“联合设备”,这台“联合设备”称为一个fabric,而将组成fabric的每个设备称为一个unit(如图1所 示)。多个unit组成fabric后,无论在管理还是在使用上,就成为了一个整体。它既可以随时通过增加unit来扩展设备的端口数量和交换能力,大大 提高了设备的可扩展性;同时也可以通过多台unit之间的互相备份增强设备的可靠性;并且整个fabric作为一台设备进行管理,用户管理起来也非常方 便。
简单来说,就是IRF设备通过多个unit的堆叠形成了用户迫切需要的易管理、易扩展以及高可靠的产品特点。是一种不同于业界现有所有设备的全新理念的网络设备。
图1 IRF交换机
IRF技术的三大组成部分:
DDM(分布式设备管理):外界可以将整个fabric看成一台整体设备进行管理,用户可以通过CONSOLE、SNMP、TELNET、WEB等多种方式来管理整个fabric。
DRR(分布式弹性路由):fabric的多个设备在外界看来是一台单独的三层交换机。整个fabric将作为一台设备进行路由功能和转发功能。在某一个设备发生故障时,路由协议和数据转发不会中断。
DLA(分布式链路聚合):支持跨设备的链路聚合,可以在设备之间进行链路的负载分担和互为备份。
分布式三层转发概述
随着网络规模的不断发展和应用范围的日益广泛,用户对网络可靠性的要求也越来越高,因此如何使网络设备满足用户的高可靠性、高性能转发需求成为业界的一个难点。IRF技术的出现将给这个难题提供一个全新的解决方案。
Fabric 系统是由多台独立的unit组成,任意一个unit都有完整的三层转发能力。这对于传统堆叠设备中,只有固定一台unit做三层交换比较,是一种历史性突 破。每个 unit 都可以接收报文,且报文的出端口可以在本 unit,也可以在其它 unit。在这三层转发过程中,不需要到固定一台unit上去做三层交换。报文在fabric内入端口和出端口之间寻找最短路径,跨越最少的unit,从 出端口发出去。这种分布式三层交换,大大提高了传统堆叠设备的转发性能,彻底解决了传统堆叠设备只扩大容量,却降低三层转发性能的问题。
IRF系统 对外界看来是一台三层设备,IP报文的TTL数只能减1。在分布式三层转发中,做多次独立交换后,如何正确处理IP报文的TTL成为一个难题。IRF系统 通过如下方式解决了该难题:单播报文只在入接口所在的设备上做三层交换,IP报文的TTL数减1,而后续fabric内部的转发都做二层交换;组播报文在 入接口所在设备和fabric内部的转发都做二层交换,而在出端口所在设备上做三层交换,IP报文的TTL数减1。这样即使在多台unit上多次交换,通 过fabric系统的报文只做一次三层交换,满足了fabric整体为一台三层设备的需求。
IRF设备 对外界看来是一台设备。要实现分布式三层转发,首先必须做到在任何时间点上,fabric内每个unit上的三层转发表要保持一致。虽然我们设备上每个路 由协议状态是保证一致的,但是它们进行路由计算的时间并不能保持完全一致,导致每个unit上的路由表也是不能保证相同的。所以路由表的相同只是某时间段 之后才相同,不可能每个时间点都相同。如果每台设备独立下发转发表,可能造成某时间点的三层转发表不一致,导致每台unit做三层交换时不相同。这种情况 在数据转发中是不允许的。所以选出一台unit,统一下发转发表,保证了每个时间点fabric内每个unit上的三层转发表保持一致。同步三层转发表 时,使用多项技术,建立三套保护机制,确保fabric内每个unit上任何时刻都相同。
基于分布式弹性路由的实现,fabric内部的每个unit可以互相备份,实现了1:N的备份功能。当某一台设备发生故障时,fabric内剩下的某一台unit会下发三层转发表,使fabric内所有的转发表保持一致,确保数据转发不中断,实现业务继续正常进行。
分布式三层转发的支撑技术
IRF的分布式三层转发是基于分布式弹性路由和分布式设备管理技术实现的。下面具体介绍分布式三层转发需要的几个技术点:
统一的配置信息
要使一个 fabric中各个unit可以独立转发,对外表现为一台三层设备,另外一个基本前提就是每个unit关于转发配置是完全一致的。这里的完全一致不仅仅是 指配置的命令完全一致,而且包括配置的时间和时序都完全一致,即用户必须同时在fabric中的所有unit上配置完全一致的命令。很显然这个需求靠用户 手工在所有unit上分别配置命令是无法实现的,因此IRF设备必须实现把整个fabric作为一台设备进行转发信息配置的功能。
这里所说的 把整个fabric作为一台设备进行转发信息配置的功能是指用户可以借助任何手段(包括CONSOLE、SNMP、TELNET、WEB等多种方式),也 可以在fabric中的任意一个unit上,进行路由协议的相关配置,只要fabric中的任意一个unit收到用户配置,就会马上同步给其余所有 unit同时执行,从而实现每个unit关于转发信息配置完全一致的需求。
统一的三层接口信息
设备上存在 UP的三层接口是网络设备能进行报文三层转发的前提条件。要使一个fabric中各个unit上独立完成报文三层转发,最基本的前提就是每个unit的三 层接口必须保持完全一致。在IRF技术体系里,fabric上的三层接口是一个全局的概念,它不属于某一个unit,而是属于整个fabric,一个 fabric作为一台设备管理本fabric上所有三层接口,每一个三层接口在fabric是具有唯一性的,对于fabric中任意一个unit来说,它 看到的都是由fabric统一维护的全局的三层接口,因此每一个unit看到的结果都是一样的。这也保证了fabric中每个unit的三层接口必须保持 完全一致的要求。
三层转发表的同步
IRF系统 中只有一台unit下发三层转发表,转发模块再负责同步给其它unit,确保fabric内每个unit上三层转发表的统一。这三层转发表包括单播三层转 发表和组播三层转发表。当下发转发表的一台unit发生故障或离开fabric系统,系统再选择一台unit,下发整个转发表。基于分布式弹性路由技术, 系统中其它unit下发的转发表跟以前的转发表相同。这样即使某一台系统发生故障,系统能正常转发。如图2所示,unit1和unit2组成一个 fabric系统。从图中可以看出,只有unit1的路由表会下发三层转发表,再把三层转发表同步到unit2上,确保fabric内所有三层转发表保持 一致。
图2 Fabric系统三层转发表示意图
三层转发表的同步有以下几个技术点组成。
1.实时同步三层转发表
当fabric 系统学到一条新的路由,系统内的每个unit更新各自的路由表,把刚学到的路由添加到路由表中。这时其中一台unit的路由模块会下发新学到的路由项,更 新转发表。转发模块把刚下发的转发项通过设备间通信通道实时同步到fabric内的其它unit,使fabric内所有设备上的三层转发表保持一致。同步 转发项时,采用设备间高可靠、确认机制的通道来传送,确保每个转发项能够正确发送到其它unit上。如果发生异常发送失败,转发模块采用有效的重传机制确 保了实时同步的转发项能万无一失的发送到fabric内其它unit。这种重传机制就像给三层转发表的同步上了双保险,确保了任何时间点各unit上的三 层转发项完全一致。
2.定期同步老化机制
虽然实现同 步三层转发表时采用可靠的设备间通道,还有重复发送机制,可能还会出现每个unit上的转发项不完全相同的情况。为了防止出现这种情况,转发模块使用定期 同步和老化机制来确保每个unit上的三层转发表一致。这种机制给三层转发表的同步上了第三份保险,满足高可靠性、高性能三层分布式转发的需求。
3.Unit加入处理
当某 unit加入到fabric系统时,fabric内下发转发项的unit会为新加入的unit同步所有的三层转发表。等一次完全同步结束后,fabric 内新加入unit上的三层转发表就可以和其它unit完全一样。采用多项技术,高效率使用设备间通信通道,使这种三层转发表的同步时间非常短,2秒之内可 以同步完5万条大小的三层转发表。
4.Unit离开处理
当某 unit离开fabric系统时,如果离开系统的unit不是下发转发表的unit,那么fabric内其它unit不需要做任何处理。如果离开系统的 unit是下发转发表的unit,那么系统再选择一台unit下发整个转发表。由于IRF系统采用了分布式弹性路由技术,它保证fabric中每一台 unit上的路由表都是一致的,所以系统中新下发的转发表将会和以前的转发表保持一致,即unit离开前后fabric中的三层转发表不会发生改变,这样 就可以有效保证unit的离开不会影响和中断fabric三层转发的正常运行。
分布式三层单播转发
Fabric 系统是由多台独立的unit组成,任意一个unit都有完整的三层转发能力。每个 unit 都可以接收报文,且报文的出端口可以在本 unit,也可以在其它 unit。在这三层转发过程中,不需要到固定一台unit上去做三层交换。报文在fabric内入端口和出端口之间寻找最短路径,跨越最少的unit,从 出端口发出去。这种分布式三层交换,大大提高了堆叠设备的转发性能,彻底解决了堆叠设备只扩大容量,三层交换性能却下降的问题。
下面图3和图4中,比较传统堆叠设备和IRF堆叠设备中三层报文的转发流程,描述分布式三层转发在堆叠转发中的技术突破。
图3中 unit1~4设备堆叠成一个传统的堆叠设备。由于没有实现分布式三层转发,所有的三层交换都到固定的一台unit上进行。本图中假设所有的报文都到 unit1上做集中三层转发。从图中可以看出,Router1和Router2都跟unit2设备直连,从Router1发出的报文,通过unit2的端 口收到后,虽然出端口在本unit上,却要到unit1设备上去做三层交换。等unit1上做三层交换后,再回到unit2,从Router2连接的端口 发出去,实现Router1和Router2之间做三层通信。从图中还可以看出,Router3和Router4之间通信也要到unit1上去做三层交 换。可见传统堆叠设备在三层转发方面性能极低,万万不能用在比较重要的网络节点。
图3 传统堆叠设备三层转发示意图
图4 IRF Fabric系统分布式三层转发示意图
图4中 unit1~4设备组成一个IRF堆叠设备。由于实现了分布式三层转发,任何unit都可以做三层交换。图4中的组网跟图3完全一样。可是Router1 发送的报文通过unit2一台设备就可以完成三层交换,发送到Router2,完成Router1和Router2之间的通信。Router3和 Router4之间通信,只要跨越unit4和unit3就可以实现。可见分布式三层转发在堆叠系统的三层转发上实现了历史性技术突破。因此IRF系统没 有因堆叠而导致三层转发性能丝毫降低。
分布式三层组播数据转发
Fabric 系统是由多台独立的unit组成,任意一个unit都有完整的三层转发能力。每个 unit 都可以接收报文,且报文的出端口可以在本 unit,也可以在其它 unit。为了减轻unit间通信的压力,如何保证unit间只复制一份报文,fabric内跨越最少的unit成为一个难题。由于成功开发了分布式 IGMP-snooping,从协议本身出发,把高可靠性的三层转发表和分布式IGMP-snooping维护的出端口列表有机的结合后,产生了指导组播 转发的高效组播转发表。该组播转发表只维护本unit上的用户出端口和fabric内其它unit上出端口所在的unit号,并不关心其它unit上具体 的端口号。被这种高效组播转发表指导的组播数据在fabric内转发时,跨越最少的unit,寻找最短的路径,且unit间传递最少报文来转发,实现了分 布式三层数据转发。彻底解决了跑组播业务导致网络性能降低的难题,给用户带来了高可靠性、高性能的组播业务。
下面分别在全连接堆叠设备和环形连接堆叠设备上的组播数据流来比较,传统堆叠设备和IRF堆叠设备在处理组播数据时的差异。
图5是全连 接型堆叠的传统堆叠设备。Server发出的组播数据会从Unit2进入fabric系统,通过fabric系统复制转发,Host1~5主机才能收到组 播数据。从图中可以看出,以上fabric系统的复制转发中,只有Unit2集中复制转发了所有的组播报文,通过fabric内链路发送到Host3和 Host4。从图中可以看出Unit2和Unit4上的内部链路中有多份组播数据流。如果Unit4上连接的设备多,对fabric内部链路增加了无比的 负担,造成fabric系统转发性能降低,影响了整个网络的性能。图中还附了一张Unit2设备的组播转发表。由于Unit2设备维护所有的出端口,理所 当然也完成了集中式组播转发。
图5 传统堆叠设备组播转发示意图
图6是全连 接型堆叠的IRF堆叠设备。Server发出的组播数据会从Unit2进入fabric系统,通过fabric系统复制转发,Host1~5主机才能收到 组播数据。从图中可以看出,以上fabric系统的复制转发中,Unit2只复制了三份最少的组播数据流,分别给Host5、Unit1和Unit4。不 像传统堆叠设备,在Unit2上完成了全部复制转发。往Unit4复制的一份组播数据报文在Unit4设备上复制两份,再发送到主机Host3和 Host4。这种分布式组播数据转发, 实现了fabric内多台unit分别复制转发组播数据,把组播数据复制转发的压力分散在多台unit上,大大提高了整个系统的转发性能。这种分布式组播 数据转发,还确保fabric内链路上只有一份组播数据流,对fabric内链路资源占用降低到最少,大大提高了fabric内部通信能力。图中还附了一 张Unit2设备的组播转发表。由于Unit2设备有高效的组播转发表,才实现了分布式组播转发。
图6 IRF Fabric系统分布式组播转发示意图
图7是环型 连接的传统堆叠设备。Server发出的组播数据会从Unit2进入fabric系统,通过fabric系统复制转发,Host1~5主机才能收到组播数 据。从图中可以看出,unit2做了集中组播转发,复制了所有的组播数据流。这样Unit2到Unit1的内部链路上会有四份组播数据流,而在Unit1 到Unit4的内部链路上也有两份组播数据流。这种集中组播转发增加了fabric系统内链路通信负荷,大大降低了系统性能,没有把组播数据复制交换负担 分散在系统的多台设备上。这种传统堆叠方式除了端口数量增加外没有任何优点,还降低了整个网络性能。
图7 传统堆叠设备组播转发示意图
图8是环型 连接的IRF堆叠设备。Server发出的组播数据会从Unit2进入fabric系统,通过fabric系统复制转发,Host1~5主机才能收到组播 数据。从图中可以看出,虽然Unit2 上的转发表有三个目的地址,Unit2只复制两份组播数据,一份是给Host5的组播数据流,另一份是给Unit1的组播数据流。Unit1收到组播数据 流后,再把组播数据复制三份分别给两个主机Host1、Host2和Unit4。最终Unit4再复制两份组播数据流,发送给主机Host3和 Host4。显然这种分布式三层转发保证了每一个链路上有最少的组播数据流,把组播数据复制转发这种消耗系统资源的工作分散在fabric系统内的每一个 unit上去做,使每个unit分别负担组播转发,大幅提高了组播数据转发性能。
图8 IRF Fabric系统分布式组播转发示意图
总结
分布式三层转发技术,改变了普通堆叠设备的三层转发模式,使得Fabric上任意一个Unit都有完整的三层转发能力,从而大幅度的提升了堆叠设备的转发能力和产品性能,它必将在日新月异的数据通信网络建设大潮中大放异彩。