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都有完整的三层转发能力,从而大幅度的提升了堆叠设备的转发能力和产品性能,它必将在日新月异的数据通信网络建设大潮中大放异彩。