电脑技术学习

IRF之分布式弹性路由

dn001

系统概述

何谓“IRF

IRF的含义就是智能弹性架构(Intelligent Resilient Framework)。

支持IRF的多台设备可以互相连接起来形成一个“联合设备”,这台“联合设备”称为一个Fabric,而将组成Fabric的每个设备称为一个Unit(如图1所示)。多个Unit组成Fabric后,无论在治理还是在使用上,就成为了一个整体。它既可以随时通过增加Unit来扩展设备的端口数量和交换能力,大大提高了设备的可扩展性;同时也可以通过多台Unit之间的互相备份增强设备的可靠性;并且整个Fabric作为一台设备进行治理,用户治理起来也非常方便。

简单来说,就是IRF设备通过多个Unit的堆叠形成了用户迫切需要的易治理、易扩展以及高可靠的产品特点,是一种不同于业界现有所有设备的全新理念的网络设备。

图1 Fabric设备示意图

何谓“IRF之分布式弹性路由”

IRF产品有三个要害特性:

DDM(分布式设备治理):外界可以将整个Fabric看成一台整体设备进行治理,用户可以通过CONSOLE、SNMP、TELNET、WEB等多种方式来治理整个Fabric。

DLA(分布式链路聚合):支持跨设备的链路聚合,支持LACP协议。可以在设备之间进行链路的负载分担和互为备份。

DRR(分布式弹性路由):包含多个Unit的Fabric在外界看来是一台单独的三层交换机。整个Fabric将作为一台设备进行路由功能和转发功能。在Fabric中的某一个Unit发生故障时,整个Fabric的路由协议和数据转发不会中断。

以上这三个要害特性支撑了IRF设备的易治理、易扩展以及高可靠的产品特点,也同时使得IRF设备具有现有业界已有设备无法比拟的应用优势。

本文所要描述的“IRF之分布式弹性路由”(DRR)作为IRF设备三个要害特性之一,它是IRF设备的实现基础,也是IRF设备中最具亮点和应用价值的特性之一。

“IRF之分布式弹性路由”的技术特点及应用价值

自网络设备诞生起,设备的可靠性一直是各个厂商竭力攻关的课题。到目前为止,随着各种技术的不断进步,设备的可靠性方面也确实有了大幅度的提升,但是最能使设备可靠性得到质的飞跃的技术“路由协议热备份”,却由于其无法想象的复杂性,成了困扰业界各个厂商悬而未决的难题。

“路由协议热备份”之所以复杂,是因为其具有复杂多变的各种协议状态机,并且具有庞大而多变的链路信息库(LSDB),要想通过设备间的热备份实现几台设备上各种协议状态机以及LSDB的严格同步是非常困难的。而“路由协议热备份”之所以重要,是因为一旦解决了这个难题,就可以实现在不中断路由协议和业务的情况下轻松切换工作设备,也就可以轻松实现网络平滑升级、设备故障智能保护等客户急需的特性需求,从而实现在各种情况下网络业务的无中断运行。

华为3Com的“IRF之分布式弹性路由”技术是业界首次真正实现“路由协议热备份”的技术,做到了同一个Fabric中各个Unit上路由信息的严格同步,并且在其中一个或多个Unit出现故障的时候,其它Unit可以照常运行并迅速接管故障Unit的功能,此时,路由协议不会随之出现中断,二/三层转发流量和业务也不会出现中断,从而实现了真正意义上的不中断路由协议、不中断业务的故障保护和设备切换功能。

另外,华为3Com的“IRF之分布式弹性路由”还将实现一个非常重要的功能,那就是“分布式三层转发”,它在业界首次改变了普通堆叠设备的三层转发模式,是具有重大创新意义的全新“分布式三层转发”流程。


在业界现有的设备中,一般堆叠设备的三层转发模式如图2所示:

图2 普通堆叠设备三层转发示意图

即堆叠设备中只有主单元设备具有三层转发能力,其余单元设备在收到三层报文后必须交给主单元设备(图2中的unit1)进行三层转发。

而采用华为3Com的“IRF之分布式弹性路由”技术后实现的“分布式三层转发”流程如图3所示:

图3 采用“IRF之分布式弹性路由”技术后三层转发示意图

即实现了“IRF之分布式弹性路由”技术后,Fabric上任意一个Unit都有完整的三层转发能力,当它收到待转发的三层报文时,可以通过查询本Unit的三层转发表得到报文的出接口以及下一跳,然后将报文从正确的出接口送出去,这个出接口可以在本Unit上也可以在其它Unit上,并且将报文从一个Unit送到另外一个Unit是一个纯粹内部的实现,对外界是完全屏蔽的,即对于三层报文来说,不管它在Fabric内部穿过了多少Unit,在跳数上只增加1,即表现为只经过了一个网络设备。

“IRF之分布式弹性路由”的要害技术点

作为一台设备治理所有三层接口

设备上存在UP的三层接口是运行路由协议的基础,也是网络设备能够进行报文三层转发的前提条件。要使一个Fabric中各个Unit上的路由协议各种信息保持一致,最基本的前提就是每个Unit的三层接口必须保持完全一致。在华为3Com的IRF技术体系里,Fabric上的三层接口是一个全局的概念,它不属于某一个Unit,而是属于整个Fabric,一个Fabric作为一台设备治理本Fabric上所有三层接口,每一个三层接口在Fabric是具有唯一性的,对于Fabric中任意一个Unit来说,它看到的都是由Fabric统一维护的全局的三层接口,因此每一个Unit看到的结果都是一样的。这也就满足了Fabric中每个Unit的三层接口必须保持完全一致的需求。

作为一台设备进行路由协议的各种配置

要使一个Fabric中各个Unit上的路由协议各种信息保持一致,另外一个基本前提就是每个Unit关于路由协议的配置是完全一致的。这里的完全一致不仅仅是指配置的命令完全一致,而且包括配置的时间和时序都完全一致,即用户必须同时在Fabric中的所有Unit上配置完全一致的命令。很显然这个需求靠用户手工在所有Unit上分别配置命令是无法实现的,因此IRF设备必须实现把整个Fabric作为一台设备进行路由协议各种配置的功能。

这里所说的把整个Fabric作为一台设备进行路由协议各种配置的功能是指用户可以借助任何手段(包括CONSOLE、SNMP、TELNET、WEB等多种方式),也可以在Fabric中的任意一个Unit上,进行路由协议的相关配置,只要Fabric中的任意一个Unit收到用户配置,就会马上同步给其余所有Unit同时执行,从而实现每个Unit关于路由协议的配置完全一致的需求。

图4 Fabric处理路由协议相关配置示意图

作为一台设备运行路由协议

把多个Unit堆叠起来组成一个Fabric在网络中运行时,将不可避免的碰到一个冲突问题:即所有的Unit都会发送路由协议报文,都会分别和外界设备进行路由信息交互,因此外界设备看到的将是多个设备,而不是Fabric本身一个设备,而同时由于各个Unit上的三层接口以及IP地址是完全一致的,外界设备就会收到来自同一个接口同一个IP地址的多个路由协议报文(分别由各个Unit发出),从而不可避免的造成冲突问题。


要解决这个冲突问题,就必须让Fabric只发出一份路由协议报文来,即让整个Fabric作为一台设备运行,采取的办法是从所有Unit中选出一个Unit来发送路由协议报文,其它Unit发送的路由协议报文都将被抑制,因此从外界看来,整个Fabric只发出一份路由协议报文来,就像只有一台设备在运行路由协议一样。

下文图5中以RIP协议为例对华为3Com的方案进行了简要说明,图5中Unit1和Unit2组成了一个Fabric,这个Fabric从Unit1和Unit2分别收到了RIP协议报文,并且Unit1和Unit2都向外界发送了RIP协议报文,但是只有Unit1的报文被成功发送出去,而Unit2的RIP协议报文被Fabric系统在内部抑制,从而对于外界设备来说,整个Fabric只发出一份路由协议报文来。

图5 Fabric收发路由协议报文示意图

静态路由协议的热备份

静态路由协议的热备份相对比较简单,因为所有静态路由都是通过配置产生的,只要实现上文所说的把Fabric作为一台设备进行配置的功能,即用户配置的任何一条命令都会在所有Unit上同时执行,那么每一个Unit根据配置命令产生的静态路由也是完全一致的。

RIP路由协议的热备份

RIP路由协议是目前各种路由协议中相对比较简单的协议,它没有复杂的协议状态机,只是根据RIP协议报文来互相交互路由信息,因此只要让Fabric中的每一台Unit处理的RIP协议报文完全一致就可以保证每一台Unit上生成的RIP路由完全一致。

要实现这个功能,就必须要保证Fabric中的每一台Unit在相同的时间,以相同的时序收到完全相同的协议报文,并且处理该协议报文的所有前提条件(例如接口状态等)都是完全一致的。采取的办法是在所有Unit各种协议状态完全一致的情况下,任意一个Unit收到外界传来的RIP协议报文就马上同步给其它所有Unit,让Fabric中的所有Unit上同时能处理到同样的RIP协议报文,从而保证每个Unit生成RIP路由的一致性。

OSPF路由协议的热备份

OSPF是目前网络上应用最广的路由协议之一,同时也是最复杂的路由协议之一。它包含Down、Loopback、Waiting、Point-to-point、DR Other、Backup、DR等七个接口状态以及Down、Attempt、Init、2-Way、ExStart、Exchange、Loading、Full等八个邻居状态,另外还包括Router-LSAs、Network-LSAs、Summary-LSAs (IP network)、Summary-LSAs (ASBR)、AS-external-LSAs、type-7 LSA(NSSA)等各种类型的LSA以及HELLO(Hello Packets)、DD(DatabaseDescription Packets)、LSR(Link State Request Packets)、LSU(Link State Update Packet)、LSAck(Link State Acknowledgment Packet)等五大类协议报文,最要害的是OSPF的各种接口状态、邻居状态以及相关报文处理都是环环相扣的关系,它们之间互相作用互相推进并互相限制,任何状态以及相关时序的混乱都会导致OSPF邻居无法成功建立,网络无法及时得到收敛。所以要使得Fabric中各个Unit上各种OSPF路由信息保持完全一致、各种OSPF协议状态保持完全同步是一个非常复杂且庞大的工程。

华为3Com凭借多年深厚的技术积累以及相应开发团队的不断努力,终于攻克了上文提到的难题,在业界首次成功完成了OSPF协议热备份的开发工作,并且经受住了反复测试以及实验局的考验,在功能和性能上都取得了非常好的效果。

采用华为3Com的这种技术后可以轻松切换工作设备、并且整个切换过程快速、平滑,不会引起OSPF邻居关系的重建和路由振荡。因此可以说是首次在业界实现了切换工作设备时不中断路由协议、不中断业务的真正协议热备份。

华为3Com这次自主研发并具有独立知识产权的OSPF协议热备份技术主要由以下几个要害技术点组成:

1、OSPF IRF的协议报文处理以及FLOOD过程

上文“作为一台设备运行路由协议”一节中已经描述了在Fabric中各个Unit上的路由协议报文的发送过程,即采取的办法是从所有Unit中选出一个Unit来发送路由协议报文,其它Unit发送的路由协议报文都将被抑制,这样做的目的是使得整个Fabric只发出一份路由协议报文来,对于外界设备来说,就像只有一台设备在运行路由协议一样。


2、OSPF IRF的接口状态实时备份

OSPF的正常运行是通过状态机来推动的。状态机包括接口和邻居状态机。接口状态机是OSPF成功建立邻居关系以及正确处理协议报文的前提,为了保证切换工作设备时做到平滑、可靠,不中断路由协议的正常运行,则必须保证切换前后接口状态的一致性,所以必须保证Fabric中所有Unit上接口状态的严格同步。

针对以上问题,华为3Com推出了OSPF IRF的接口状态实时备份技术。它采用了华为3Com自主研发的具有独立知识产权的Unit间数据备份技术(XHA),能够有效保证备份数据的时序性以及可靠性,使得Fabric中所有Unit上接口状态的严格同步成为可能。

3、OSPF IRF的邻居状态实时备份

为了保证切换工作设备时的平滑、可靠,并且在切换的时候不引起OSPF邻居状态的动荡和变化,所以也必须保证Fabric中所有Unit上邻居状态的严格同步。

邻居状态热备份同样采用了XHA技术进行备份数据的传送,保证了Fabric中各个Unit上邻居状态的严格一致。

下文图6对OSPF IRF接口状态以及邻居状态的实时备份过程作了简要说明。Unit1作为OSPF主工作设备,接收并处理所有OSPF协议报文,并随时把接口状态和邻居状态的变化通过实时备份数据的形式发送给Unit2,从而保证了Fabric内部各个Unit上各种协议状态机的一致性。

图6 Fabric内部OSPF接口状态及邻居状态实时备份过程示意图

4、OSPF IRF的LSA实时备份

LSA是路由计算的基础,要使得Fabric中各个Unit上计算出来的路由一致,则必须保证Fabric中各个Unit上LSA的一致性。同样也只有在Fabric中各个Unit上LSA以及计算出来的相应路由保持一致的前提下,切换工作设备时才能够有效避免路由振荡,才能做到网络业务的真正无中断运行。

华为3Com推出了OSPF IRF的LSA实时备份技术。它既有效的保证了备份数据的时序性以及可靠性,并且备份数据量以及占用的系统资源都非常少,使得Fabric能够轻松实现各个Unit上LSA的一致性。

5、OSPF IRF的重传列表实时备份

为了保证切换工作设备时的平滑、可靠,并且在切换的时候不引起OSPF邻居状态的动荡和变化,并同时保证网络内路由的延续性和准确性,还必须要考虑OSPF的重传列表备份问题。因为假如Fabric内各个Unit上OSPF重传列表不一致,切换工作设备后就有可能造成部分LSA不会被重传给外界邻居,而外界邻居由于丢失了这部分LSA就会造成网络内各台设备之间LSDB的不同步,从而失去了OSPF赖以生存的基础,严重影响到网络内OSPF路由的完整性及准确性,从而无法实现切换设备后网络业务的无中断运行。

重传列表由于其出现的频繁性及短暂性,想要通过由主设备发送实时备份数据给其它Unit的方式来实现各个Unit上重传列表的一致性是非常困难的。

华为3Com通过特有的重传列表备份技术解决了以上难题,做到了Fabric中各个Unit上重传列表的严格一致,使得切换工作设备时的平滑、可靠成为可能。

Unit加入的处理

为了让IRF设备的平滑无缝升级成为可能,就需要在新Unit加入时做出复杂的处理,使得新Unit的加入不会中断或影响设备上路由协议和网络业务的正常运行,并且能够迅速融入整个Fabric进行工作,使得Fabric的端口数量和交换能力得到大大提升。

让新Unit在不中断或影响设备上运行的路由协议的情况下迅速融入Fabric有很多难题。第一,它需要学到在它加入之前用户在Fabric上的所有配置;第二,它需要学到整个Fabric上的所有三层接口;第三,它需要学到整个Fabric上各种路由协议的全部路由信息,即它需要在短时间内与Fabric上所有其它Unit上的路由信息保持完全一致(这里的路由信息不仅仅时指路由表,还包括路由协议的各种协议状态机、接口状态机以及链路信息库等)。


为了解决这些难题,华为3Com推出了一系列极具创新性的技术。

第一,;;;;;推出了设备间配置恢复技术:当Fabric探测到有新Unit加入时,立即启动设备间配置恢复流程,使得在新Unit加入之前的Fabric上的所有配置都被成功恢复到新Unit上,从而使得新Unit在极短的时间内做到与Fabric上所有其它Unit配置信息的一致性。

第二,;;;;;推出了设备间的三层接口恢复技术:当Fabric探测到有新Unit加入时,立即启动设备间的三层接口恢复流程,使得在新Unit加入之前的Fabric上的所有三层接口都被成功恢复到新Unit上,从而使得新Unit能够与其它Unit一样拥有整个Fabric上的所有三层接口。

第三,;;;;;推出了设备间路由协议批量备份技术:当Fabric探测到有新Unit加入时,立即启动设备间路由协议批量备份流程,Fabric会将正在运行的各个路由协议的所有路由信息批量备份给新Unit,包括路由协议的各种协议状态机、接口状态机以及链路信息库等,以OSPF为例,就需要备份OSPF全局数据、所有区域的相关数据、所有接口的状态机及相关数据、所有邻居的状态机及相关数据、所有LSA以及重传列表等。通过设备间的路由协议批量备份使得新Unit在短时间内迅速与Fabric上所有其它Unit上的路由信息保持完全一致,从而为Fabric在后续长期运行中各个Unit上路由信息保持完全一致奠定坚实基础。

Unit离开的处理

同样,为了让IRF设备的故障智能保护成为可能,就需要使Fabric能够自动探测各个Unit上故障的发生,并作出及时处理,使得一个或几个Unit的故障不会中断或影响Fabric上路由协议和网络业务的正常运行。

由于不管是Fabric内部线路故障或者Unit本身发生故障,都表现为某个或者某些Unit不能正常工作,Fabric通过内部探测协议可以发现这些不能正常工作的Unit,并把这些Unit从Fabric中剔除出去,所以对于Fabric中的其它正常Unit来说,它们感觉到的是某个或者某些Unit离开了Fabric,因此这种故障智能保护的处理归根结蒂也就是对Unit离开事件的处理。

当Fabric探测到某个或者某几个Unit离开时,立即通知给其它Unit,由于Fabric中各个Unit上的路由信息是完全一致的,因此剩下的Unit可以无缝的接管离开的Unit的工作。对于整个Fabric来说,所有路由协议信息都没有改变,例如OSPF的接口状态机以及邻居状态机都没有改变,因此不需要与外界设备进行重新协商;OSPF的所有链路信息库也是完整的,因此也不会出现丢失路由现象。因此,在不能正常工作的故障Unit离开Fabric的时候,路由协议不会随之出现中断,二/三层转发流量和业务也都不会出现中断,从而真正意义上实现了设备故障的智能保护。

以图7为例,Unit1发生故障后,Unit2可以无缝的接手Unit1的工作,Fabric上所有正在运行的路由协议OSPF/RIP都不会受到影响,对于外界设备来说,根本感觉不到Fabric上有故障发生。

图7 Fabric故障保护示意图

统一的三层转发表

上文在“IRF之分布式弹性路由的技术特点和应用价值”一节中提到IRF设备还有一个非常重要的特性,那就是实现三层报文的分布式转发,即实现了“IRF之分布式弹性路由”技术后,Fabric上任意一个Unit都有完整的三层转发能力,当它收到待转发的三层报文时,可以通过查询本Unit的三层转发表得到报文的出接口以及下一跳,然后将报文从正确的出接口送出去,这个出接口可以在本Unit上也可以在其它Unit上,并且将报文从一个Unit送到另外一个Unit是一个纯内部实现,对外界是完全屏蔽的,即对于三层报文来说,不管它在Fabric内部穿过了多少Unit,在跳数上只增加1,即表现为只经过了一个网络设备。

要实现上述功能有一个难题:那就是怎样让每个Unit都具有完全一样的三层转发表,因为虽然每个Unit上的路由信息都一样,但是它们进行路由计算的时间并不能保持完全一致,因此并不能保证各个Unit在任何时刻的三层转发表都完全一致。为了解决这个问题,华为3Com推出了设备间的三层转发表同步技术。


以图8为例, Unit1和Unit2组成了一个Fabric,它们都会根据本Unit上的路由信息进行路由计算并生成路由表,但只有Unit1生成的路由表会被下刷到三层转发表,Unit2上的三层转发表是由Unit1同步而来的,这样Fabric中各个Unit上的三层转发表就可以在任何时刻都保持完全一致。

图8 Fabric三层转发表示意图

总结

华为3Com的“IRF之分布式弹性路由”技术是业界首次真正实现“路由协议热备份”的技术,做到了同一个Fabric中各个Unit上路由信息的严格同步,并且在其中一个或多个Unit出现故障的时候,其它Unit可以照常运行并迅速接管故障Unit的功能。此时,路由协议不会随之出现中断,二/三层转发流量和业务也不会出现中断,从而实现了真正意义上的不中断路由协议、不中断业务的故障保护和设备切换功能。

另外,华为3Com的“IRF之分布式弹性路由”技术在业界首次改变了普通堆叠设备的三层转发模式,实现了具有重大创新意义的全新“分布式三层转发”流程,使得Fabric上任意一个Unit都有完整的三层转发能力,从而大幅度提升了堆叠设备的转发能力和产品性能。

总之,采用了“IRF之分布式弹性路由”技术的IRF设备,通过多个Unit的堆叠形成了用户迫切需要的易治理、易扩展以及高可靠、强转发能力的产品特点。是一种不同于业界现有所有设备的全新理念的网络设备。它必将在日新月异的数据通信网络建设大潮中大显身手。