集群路由器路由控制方法、装置和集群路由器与流程

文档序号:12729147阅读:192来源:国知局
集群路由器路由控制方法、装置和集群路由器与流程
本发明涉及通信
技术领域
,特别是涉及一种集群路由器路由控制方法、装置和集群路由器。
背景技术
:随着互联网的不断发展,作为网络核心设备的路由器,也面临着新的挑战,单机路由器已经无法满足数据交换的容量需求。集群路由器是多台单机路由器相互直连组成的系统,多台单机路由器的主控处理单元(MainProcessUnit,MPU)之间通过光纤相互连接,实现相互通信。集群路由器与单机路由器一样,也分为控制屏幕和数据平面两部分,其中控制平面负责管理和控制设备,数据平面负责转发用户数据,二者使用完全独立的物理线路。控制平面使用的物理链路称为控制通道,数据平面使用的物理链路称为数据通道。集群路由器主要分为背靠背连接的集群和通过中央框连接的集群。其中背靠背连接的集群是至少两台单机路由器的MPU直接进行相互连接而组成的集群路由器;通过中央框连接的集群中,一个路由器的机框作为中央框(FabricCentralChassis,FCC),其他机框作为线卡框(LineCardChassis,LCC),各LCC中的MPU均与FCC中的控制连接单元(ControlConnectionUnit,CCU)连接,CCU负责在各LCC间转发报文。整个集群路由器构成一个统一的系统,对外体现出的是一台设备。为了提高系统的可靠性,在通过中央框连接的集群中,通过增加各机框之间连接的冗余物理链路来提高可靠性。但这样会导致集群路由器内部控制报文的路由十分复杂,当集群路由器内部的某个LCC出现故障,与其他机框失去连接后,可能导致其他机框为组播源的组播表项丢失,从而引起集群路由器的控制报文的组播故障。技术实现要素:本发明实施例的目的在于提供一种集群路由器路由控制方法、装置和集群路由器,能够避免集群中机框突然失联时导致的组播表项丢失。本实施例具体技术方案如下:第一方面提供一种集群路由器路由控制方法,应用于包括FCC和至少两个LCC的集群路由器,所述方法包括:当所述集群路由器的第一LCC的第一MPU接收到所述FCC中的CCU发送的第二LCC路由不可达消息时,若所述第一MPU确定,到所述第二LCC,除了当前最优单播路由外,仅有通过所述第一MPU与所述第一LCC的第二MPU连接的第一端口到所述第二LCC的单播路由时,所述第一MPU删除所述第一MPU到所述第二LCC的所述最优单播路由并启动延迟切换定时器,所述最优单播路由的出端口为所述第一MPU与所述CCU连接的第二端口;当所述延迟切换定时器超时时,所述第一MPU仍未在所述第一端口接收到所述第二LCC路由不可达消息,则所述第一MPU将所述最优单播路由的出端口修改为所述第一端口。在第一方面一种可能的实现方式中,所述方法还包括:当所述第一MPU接收到所述FCC中的CCU发送的第二LCC路由不可达消息时,若所述第一MPU确定具有通过第三端口到所述第二LCC的单播路由时,则所述第一MPU将所述最优单播路由的出端口修改为所述第三端口,所述第三端口与所述CCU直接连接。在第一方面一种可能的实现方式中,所述方法还包括:若所述延迟切换定时器超时之前,所述第一MPU在所述第一端口接收到所述第二LCC路由不可达消息,则所述第一MPU删除到所述第二LCC的单播路由。在第一方面一种可能的实现方式中,所述延迟切换定时器的定时时间为所述集群路由器的两个路由更新周期。第二方面提供一种集群路由器路由控制装置,用于控制包括FCC和至少两个LCC的集群路由器,所述装置包括:判断模块,用于判断当所述集群路由器的第一LCC的第一MPU接收到所述FCC中的CCU发送的第二LCC路由不可达消息时,所述第一MPU到所述第二LCC,除了当前最优单播路由外,是否仅有通过所述第一MPU与所述第一LCC的第二MPU连接的第一端口到所述第二LCC的单播路由;删除模块,用于当所述判断模块确定当所述第一LCC的所述第一MPU接收到所述FCC中的CCU发送的第二LCC路由不可达消息时,若所述第一MPU到所述第二LCC,除了当前最优单播路由外,仅有通过所述第一MPU与所述第一LCC的第二MPU连接的第一端口到所述第二LCC的单播路由时,删除所述第一MPU到所述第二LCC的所述最优单播路由并启动延迟切换定时器,所述最优单播路由的出端口为所述第一MPU与所述CCU连接的第二端口;所述判断模块,还用于判断当所述延迟切换定时器超时时,所述第一MPU是否在所述第一端口接收到所述第二LCC路由不可达消息;修改模块,用于所述判断模块确定当所述延迟切换定时器超时时,所述第一MPU仍未在所述第一端口接收到所述第二LCC路由不可达消息,则将所述最优单播路由的出端口修改为所述第一端口。在第二方面一种可能的实现方式中,所述修改模块,还用于当所述判断模块确定所述第一MPU接收到所述FCC中的CCU发送的第二LCC路由不可达消息时,若所述第一MPU确定具有通过第三端口到所述第二LCC的单播路由时,则所述第一MPU将所述最优单播路由的出端口修改为所述第三端口,所述第三端口与所述CCU直接连接。在第二方面一种可能的实现方式中,所述删除模块,还用于当所述判断模块确定在所述延迟切换定时器超时之前,所述第一MPU在所述第一端口接收到所述第二LCC路由不可达消息,则删除到所述第二LCC的单播路由。在第二方面一种可能的实现方式中,所述延迟切换定时器的定时时间为所述集群路由器的两个路由更新周期。第三方面提供一种集群路由器,所述集群路由器为包括FCC和LCC的集群路由器,所述集群路由器包括:FCC和至少两个LCC,所述至少两个LCC包括第一LCC和第二LCC,所述第一LCC包括第一MPU和第二MPU;所述第一MPU用于,当从接收到所述FCC中的CCU发送的第二LCC路由不可达消息时,若确定所述第一MPU到所述第二LCC,除了当前最优单播路由外,仅有通过所述第一MPU与所述第一LCC的第二MPU连接的第一端口到所述第二LCC的单播路由时,删除所述第一MPU到所述第二LCC的所述最优单播路由并启动延迟切换定时器,所述最优单播路由的出端口为所述第一MPU与所述CCU连接的第二端口;当所述延迟切换定时器超时时,仍未在所述第一端口接收到所述第二LCC路由不可达消息,则将所述最优单播路由的出端口修改为所述第一端口。在第三方面一种可能的实现方式中,所述第一MPU,还用于当接收到所述FCC中的CCU发送的第二LCC路由不可达消息时,若确定所述第一MPU具有通过第三端口到所述第二LCC的单播路由时,则将所述最优单播路由的出端口修改为所述第三端口,所述第三端口与所述CCU直接连接。在第三方面一种可能的实现方式中,所述第一MPU,还用于若所述延迟切换定时器超时之前,在所述第一端口接收到所述第二LCC路由不可达消息,则删除到所述第二LCC的单播路由。在第三方面一种可能的实现方式中,所述延迟切换定时器的定时时间为所述集群路由器的两个路由更新周期。本发明实施例提供的集群路由器路由控制方法、装置和集群路由器,在通过FCC连接的集群路由器中,当集群路由器中第一LCC的第一MPU接收到CCU发送的第二LCC路由不可达消息时,若第一MPU确定仅有通过第一MPU与第一LCC的第二MPU连接的第一端口到第二LCC的单播路由时,第一MPU删除第一MPU到第二LCC的最优单播路由并启动延迟切换定时器,当延迟切换定时器超时时,若第一MPU仍未在第一端口接收到第二LCC路由不可达消息,第一MPU再最优单播路由的出端口修改为第一端口,从而避免了在第二LCC失联时出现的单播临时环路,进而避免了由于单播临时环路而导致的组播表项丢失。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为通过FCC连接的集群路由器的结构示意图;图2示出LCC失联时单播路由处理流程;图3示出在单播出现临时环路时组播的处理流程;图4为本发明实施例提供的集群路由器路由控制方法实施例一的流程图;图5为本发明实施例提供的集群路由器路由控制方法中路由删除过程示意图;图6为本发明实施例提供的集群路由器路由控制方法中路由添加流程示意图;图7为控制器的一种硬件结构图;图8为本发明实施例提供的集群路由器路由控制装置实施例一的结构示意图;图9为本发明实施例提供的集群路由器的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了提高系统的可靠性,集群路由器中的每台机框中都设置有两个MPU,两个MPU互为备份。集群路由器的控制通道也通过增加冗余物理链路的方式来提高可靠性,机框中的每块MPU都有至少两个与外部连接的端口。在通过中央框连接的集群中,每个MPU的两个端口中,一个与CCU连接,另一个与同一机框中的另一MPU连接。其中,MPU与CCU连接的端口为集群路由器中的集群端口,MPU与同一机框中的另一MPU连接的端口是LCC内部的端口,对用户是不可见的。集群路由器的跨框通信分为单播和组播两种方式,其中跨框单播通信通过各MPU中存储的单播路由表确定跨框单播通信的路由,跨框组播通信基于各MPU中保存的最优单播路由确定跨框组播通信的路由。当集群路由器中的某个LCC失去联接时,CCU将向其他LCC广播失联的LCC路由不可达消息,但由于每个MPU具有至少两个端口,MPU的不同端口接收到CCU发送的LCC的路由不可达消息的时序是不确定的,当MPU的一个端口接收到路由不可达消息时,若其他端口还未接收到路由不可达消息,那么LCC将出现单播临时环路,从而可能错误地删除组播控制通道,导致集群路由器的组播表项丢失。集群路由器分为通过FCC连接的集群路由器和背靠背连接的路由器两种结构,其中,通过FCC连接的集群路由器包括至少一个FCC和至少两个LCC。图1示例了通过FCC连接的集群路由器的结构示意图。在图1中仅示出一个FCC和两个LCC组成的集群路由器,且每个LCC中包括两个MPU的情况,但通过FCC连接的集群路由器中LCC的数量不以此为限,可以为两个或两个以上。如图1所示,FCC11中包括CCU12和MPU13,LCC14中包括MPU15和MPU16,LCC17中包括MPU18和MPU19。LCC14和LCC17中均包括两个MPU,实现MPU的主备备份。每个LCC中的两个MPU中一个为主MPU,另一个为备MPU,其中MPU15为LCC14的主MPU,MPU16为LCC14的备MPU,MPU18为LCC17的主MPU,MPU19为LCC17的备MPU。图1所示的集群路由器中FCC11中仅示出了一个MPU13,但实际上FCC11中也包括两个MPU,实现主备备份。为了提高集群路由器的控制通道的可靠性,集群内部每个LCC中的每个MPU都至少包括两个集群端口,实现集群控制通道的冗余备份。在图1中以每个MPU包括两个集群端口为例,MPU15、MPU16、MPU18和MPU19分别与CCU12进行跨框连接,MPU13与CCU12进行框内连接,MPU15和MPU16之间以及MPU18和MPU19之间也进行框内连接。其中MPU15、MPU16、MPU18和MPU19分别包括两个集群端口,将各MPU与CCU12连接的端口称为该MPU的端口1,将各MPU与同一LCC内的另一MPU连接的端口称为该MPU的端口5。CCU12具有5个集群端口,其中与MPU15连接的端口为端口1,与MPU16连接的端口为端口2,与MPU18连接的端口为端口3,与MPU19连接的端口为端口4,与MPU13连接的端口为端口5。MPU13与CCU12连接的端口为端口1。对于每个LCC而言,与FCC11之间都具有两个集群控制通道的端口。在集群路由器中,FCC11、LCC14和LCC17内部各单元之间的连接属于机框的一部分,连接可靠且无法改变,LCC14和LCC17与FCC11之间的连接是在集群路由器建设过程中连接的。在集群路由器中,跨框通信分为跨框单播通信和跨框组播通信,以及跨框广播通信。对于跨框单播通信,为了保证控制流的隔离,集群控制通道让去往其他框的流量在不同的虚拟局域网(VirtualLocalAreaNetwork,VLAN)内传递,这些VLAN均属于集群内部预留VLAN,不能被用户所使用。跨框单播功能细分为三个部分:1、上层协议模块生成或者从网络中学习到目的框的单播路由;2、驱动将目的框路由信息转换为目的框内所有与控制通道相关CPU节点的表项信息并写入芯片,其中表项信息的目的地址采用框(Chassis)号+槽位(Slot)号+CPU号来表示,和控制流报文的目的地址保持一致(因为控制流最终都会被送到某一特定的CPU上);3、当有控制流出现时,芯片查表项进行转发。对于跨框组播通信,和单播一样,对于来自不同源框的流量也是采用集群预留的VLAN进行隔离(对于每一个框来讲,都有一个单播VLAN和一个组播VLAN)。对于跨框单播通信,每个MPU上以及CCU上均保存有单播路由表,当MPU检测到单播控制报文时,查询单播路由表确定单播控制报文的路由,从而实现单播控制报文的转发。表1示出LCC14中的MPU15中存储的单播路由表,其中出端口的端口号均为MPU15的端口号,开销表示路由需要经过几块单板(MPU或CCU)才能到达目的框,MPU15与FCC11中的CCU12虽然是直接连接的。但是由于CCU12不处理任何业务,而是只负责交换各框内的控制报文,因此CCU12需要将接收到的控制报文再转发出去,相当于经过了CCU12一块单板,因此开销可设定为1。MPU15通过出端口5的路由需要经过MPU16的转发,因此开销为2。每个MPU会选择到达目的框的路由中开销最小的路由作为最优路由。LCC14和LCC17中的其他MPU中的单播路由表与表1的表项生成方式类似。表1MPU15的单播路由表表2示出FCC11中的CCU12中存储的单播路由表,其中出端口的端口号均为CCU12的端口号,CCU12与各MPU均为直接连接的,因此开销均为0。当到达同一机框的多条路由开销相同时,将出端口号最小的作为最优路由。FCC11中的MPU13由于仅与CCU12直接连接,MPU13中存储的单播路由表到达目的框LCC14和LCC17的出端口均为MPU13的端口1,也就是分别仅有一条路由,开销均为0,如表3所示。表2CCU12的单播路由表目的框出端口开销路由是否最优FCC50是LCC1410是LCC1420否LCC1730是LCC1740否表3MPU13的单播路由表目的框出端口开销路由是否最优LCC1411是LCC1711是对于各MPU和CCU保存的单播路由表中的最优路由,会周期性地向网络中扩散,以保证集群路由器内部各框之间均有路由可达。而各MPU和CCU保存的单播路由表中的非最优路由将不会进行扩散。集群路由器中的跨框组播通信是依靠各MPU和CCU的单播路由表中的最优单播路由确定的。由于目前集群路由器中的跨框组播报文均为广播发送的,为了避免在集群中出现互相冲突的组播表项,因此在一个机框内同一时间仅能由一个MPU在软件层上建立组播表项。一般地,每个机框由主MPU上依据最优单播路由建立针对同一组播源的组播表项。结合表1至表3中的单播最优路由,可以得知LCC14会在MPU15上创建组播表项,如表4所示。其中,源框表示发送组播控制报文的源机框,入端口表示接收到相应源框的组播控制报文的端口,出端口表示发送相应源框的组播控制报文的端口,表4中的端口号均为MPU15的端口号。表4MPU15的组播路由表源框入端口出端口列表LCC14无1LCC171无FCC111无FCC11仅会在CCU12上创建组播表项,如图5所示。表5CCU12的组播路由表源框入端口出端口列表LCC1413和5LCC1731和5FCC1151和3集群路由器中的控制报文分别根据上述单播路由表和组播路由表进行传输。但是当集群路由器中的某个LCC突然失联时,可能导致另一个LCC到FCC的组播表项丢失。这里的LCC失联可以是LCC重启、断电或LCC与CCU之间的连接全部断开。LCC的组播表项丢失的具体原因如图2和图3所示,下面将详细陈述。仍以图1所示集群路由器为例,当LCC17失联时,FCC11中的CCU12将检测到LCC17的离开,然后CCU12将向网络中广播LCC17的路由不可达消息。由于CCU12与LCC14中的MPU15和MPU16均有连接,且LCC17的路由不可达消息是广播发送的,因此MPU15和MPU16都将接收到该消息。但是由于连接质量或MPU处理能力的问题,导致MPU15和MPU16收到该消息的时序是不确定的,也就是无法确定MPU15和MPU16谁先接收到该消息,以图2给出的时序流程图为例,当LCC失联后,则可能出现MPU15和MPU16之间的短暂的单播临时环路。需要说明的是,为了描述简洁,本发明实施例中所述的LCC17的路由不可达消息以及MPU15、MPU16和CCU12之间交互的报文都指的是集群路由器中的控制报文,均通过集群路由器中的最优单播控制通道传输。如图2所示,当CCU12检测到LCC17的路由不可达时,将广播发送LCC17的路由不可达消息,假设LCC14中的MPU15先接收到了该消息,那么MPU15查询单播路由表后,发现到达LCC17仍有一条通过端口5到达的路由,因此会即刻将到达LCC17的最优单播路由切换到通过端口5的路由,并通知组播模块LCC17的路由出端口发生了变化。之后MPU16接收到了LCC17的路由不可达消息,那么MPU16会通过与MPU15连接的端口5向MPU15转发该消息,MPU15也会在端口5接收到该消息,从而获知通过端口5到达LCC17的路由也不通,此时MPU15会再次通知组播模块LCC17的路由不可达。由于CCU12广播的消息会在LCC14中的MPU15和MPU16之间进行相互转发,但转发过程很快消失,将这种状态称为单播临时环路。针对图2所示的单播临时环路状态,图3示出在单播出现临时环路时组播的处理流程。首先,当MPU15的组播模块接收到LCC17的路由出端口发生了变化的通知消息后,将获知到达LCC17还具有通过端口5到达LCC17的路由,随后MPU15将在端口5上发送目的框为LCC17的组播加入报文,MPU16在接收到MPU15发送的组播加入报文后,会创建源框为LCC14的组播表项,并将端口5作为该表项的入端口,并向MPU15回复确认(Acknowledge,ACK),此时MPU15将端口5添加到组播路由表中源框为LCC14的表项的出端口列表中。然后MPU16通过MPU16的端口1向CCU12发送组播创建报文。CCU12通过端口2接收到组播加入报文后,查询组播路由表,发现端口2并不是源框为LCC14的表项的入端口,那么为了避免组播表项残留,CCU12将首先给源框为LCC14的组播路由的下游设备(即MPU13和LCC17,由于LCC17已失联,因此仅向MPU13发送,如果还有其它通过CCU连接的LCC框,则还需要向其它框发送)发送剪枝报文。剪枝报文用于删除源框为LCC14的组播表项。随后CCU12将重建源框为LCC14的组播表项,但是由于LCC17的失联,CCU12已经没有了达到LCC17的单播路由,而由于CCU12接收到的组播加入报文的目的框为LCC17,因此CCU12将向上游设备(即MPU16)发送组播加入报文的响应报文(以剪枝报文的形式)。此时当MPU15从端口5接收到单播发送的LCC17的路由不可达消息,将删除源框为LCC14的组播表项,然后在端口5上向MPU16发送剪枝报文,MPU16接收到剪枝报文后,也将删除源框为LCC14的组播表项。通过上述过程可知,LCC14中的MPU15上保存的组播路由表中源框为LCC14的组播表项将丢失。需要说明的是,图3所示组播表项丢失的情况仅会出现在通过FCC连接的集群路由器中,这是由于在背靠背连接的集群路由器中,没有FCC的存在,LCC之间的组播报文无需通过FCC的转发。为了避免如图3所示的组播表项丢失,本发明实施例提供一种集群路由器路由控制方法,以下将以各实施例进行详细阐述。图4为本发明实施例提供的集群路由器路由控制方法实施例一的流程图,如图4所示,本实施例的方法包括:步骤S401,当集群路由器的第一LCC的第一MPU接收到FCC中的CCU发送的第二LCC路由不可达消息时,若第一MPU确定,到第二LCC,除了当前最优单播路由外,仅有通过第一MPU与第一LCC的第二MPU连接的第一端口到第二LCC的单播路由时,第一MPU删除第一MPU到第二LCC的最优单播路由并启动延迟切换定时器,最优单播路由的出端口为第一MPU与所述CCU连接的第二端口。本实施例提供的集群路由器路由控制方法应用于包括FCC和LCC的集群路由器,该集群路由器包括一个FCC和至少两个LCC,FCC中包括CCU,每个LCC中包括至少两个MPU,每个MPU至少通过一个端口与CCU连接。下面以每个LCC中包括两个MPU,每个MPU通过一个端口与CCU连接为例,对本实施例提供的方法进行说明。当集群路由器中的某个LCC突然失联时,CCU将检测到并向集群中广播该LCC路由不可达消息,将失联的LCC称为第二LCC,那么集群中的第一LCC中的第一MPU将接收到第二LCC路由不可达消息。第一MPU中保存的单播路由表中到第二LCC的最优单播路由为通过第一MPU与CCU连接的第二端口到第二LCC的路由,但除了这条最优单播路由,第一MPU中至少还保存有通过第一MPU与第二MPU连接的第一端口到第二LCC的路由,第一MPU与第二MPU均位于第一LCC中。而如果第一MPU不是通过第一端口接收到的第二LCC路由不可达消息,那么第一MPU将试图将达到第二LCC的单播路由切换至通过第一端口的路由。根据图2和图3所示切换流程可知,若第二LCC确实处于失联状态,那么在切换的过程中可能会导致第一MPU中保存的组播路由表项丢失。而出现上述问题的原因是由于第一MPU的第一端口和第二端口接收到第二LCC路由不可达消息的时序是不确定的,这可能是由于组成控制通道的链路故障所致,也可能是由于其他原因所致。那么为了解决上述问题,可以在第一MPU接收到第二LCC路由不可达消息时,启动一个延迟切换定时器,在延迟切换定时器超时之前,第一MPU不进行最优单播路由的切换。步骤S402,当延迟切换定时器超时时,第一MPU仍未在第一端口接收到第二LCC路由不可达消息,则第一MPU将最优单播路由的出端口修改为第一端口。在启动延迟切换定时器之后,第一MPU将等待延迟切换定时器超时,若延迟切换定时器超时的时候,第一MPU仍然未在第一端口接收到第二LCC路由不可达消息,那么第一MPU即可确定第二LCC并不是确实不可达,而是第一MPU通过第二端口到达第二LCC的最优单播路由发生故障,需要进行单播路由的切换。那么第一MPU可以将单播路由表中的到达第二LCC的最优单播路由修改为通过第一端口到达第二LCC的路由。当然,第一MPU也可以通过删除通过第二端口到达第二LCC的单播路由,使得第一MPU到达第二LCC的最优单播路由变为通过第一端口到达第二LCC的路由。在第一MPU进行了最优单播路由的修改后,将通知组播模块修改源框为第二LCC的组播表项。通过本实施例提供的方法,当第二LCC失联后,第一LCC中的第一MPU仅会进行一次单播路由的切换,而不会出现如图2所示的两次通知修改组播表项的过程。而由于不会出现两次通知修改组播表项的过程,那么也就不会出现如图3所示的组播表项丢失的情况,从而解决了在第二LCC失联时,第一LCC中的组播表项可能丢失的问题。需要说明的是,延迟切换定时器的定时时间可以根据需要进行设定,设定的原则是充分考虑到链路传输延迟的问题,使得当第二LCC确实失联时,第一MPU的第一端口和第二端口均能在延迟切换定时器超时前接收到CCU发送的第二LCC路由不可达消息。延迟切换定时器的定时时间越长,越能够确保在第二LCC失联时,第一MPU通过第一端口和第二端口均能接收到第二LCC路由不可达消息。但延迟切换定时器的定时时间也不宜设置的过长,以免影响集群路由器的正常的业务。一般地,延迟切换定时器的定时时间可以设置为集群路由器的两个路由更新周期。需要说明的是,本实施例仅以集群路由器包括一个FCC和两个LCC,FCC中包括一个CCU,每个LCC中包括两个MPU,每个MPU通过一个端口与CCU连接为例,对本发明实施例提供的集群路由器路由控制方法进行了说明。但本发明实施例提供的集群路由器路由控制方法中,对集群路由器中LCC的数量,每个MPU所具有的第二端口的数量均不以此为限,上述数量为其他数量时仍然可以执行本实施例提供的方法。但每个LCC中仅能具有两个MPU,每个MPU仅能具有一个第一端口。本实施例提供的集群路由器路由控制方法,在通过FCC连接的集群路由器中,当集群路由器中第一LCC的第一MPU接收到CCU发送的第二LCC路由不可达消息时,若第一MPU确定仅有通过第一MPU与第一LCC的第二MPU连接的第一端口到第二LCC的单播路由时,第一MPU删除第一MPU到第二LCC的最优单播路由并启动延迟切换定时器,当延迟切换定时器超时时,若第一MPU仍未在第一端口接收到第二LCC路由不可达消息,第一MPU再最优单播路由的出端口修改为第一端口,从而避免了在第二LCC失联时出现的单播临时环路,进而避免了由于单播临时环路而导致的组播表项丢失。进一步的,在图4所示实施例的基础上,当第一MPU接收到FCC中的CCU发送的第二LCC路由不可达消息时,若第一MPU确定具有通过第三端口到第二LCC的单播路由时,则第一MPU将最优单播路由的出端口修改为第三端口,第三端口与CCU直接连接。第一MPU与一个CCU连接的链路可以超过一条,也就是说,第一MPU可以通过两个以上的端口与CCU连接,进一步地增加控制通道的冗余备份。那么,当第一MPU接收到CCU发送的第二LCC路由不可达消息时,如果第一MPU除了具有与CCU直接连接的第二端口,还具有与CCU直接连接的第三端口,且在单播路由表中,具有通过第三端口到达第二LCC的单播路由。那么第一MPU可以直接将到达第二LCC的最优单播路由的出端口修改为第三端口,即将到达第二LCC的最优单播路由修改为通过第三端口到达第二LCC的路由。同时,第一MPU还可以删除通过第二端口到达第二LCC的路由。由于这样的路由切换没有经过同一LCC中的第二MPU,因此也不会出现单播临时环路,因此无需启动延迟切换定时器。进一步的,在图4所示实施例的基础上,在步骤S401中第一MPU启动了延迟切换定时器后,如果在延迟切换定时器超时之前,第一MPU在第一端口接收到第二LCC路由不可达消息,那么第一MPU即可确定第二LCC的路由确实不可达,也就是第二LCC已经失联。那么第一MPU即可直接删除到第二LCC的单播路由。当第一MPU删除了到第二LCC的单播路由后,将通知组播路由删除的消息,组播模块在获知到第一MPU到第二LCC的单播路由被删除后,由于发现第一MPU还有去往FCC的单播路由,因此不进行源框为第一LCC的组播表项的删除。从而避免了组播表项被删除。下面仍以图1所示集群路由器为例,对本发明提供的集群路由器路由控制方法进行进一步说明。当图1所示的集群路由器中的LCC17突然失联时,CCU12会检测到并向集群中广播LCC17路由不可达消息。由于LCC17失联,那么将会有MPU13、MPU15、MPU16接收到该消息。由于MPU16与MPU15通过框内的链路进行了连接,那么当MPU16接收到LCC17路由不可达消息时,将向MPU15转发,反之亦然。也就是说,MPU15可能从端口1和端口5分别接收到LCC17路由不可达消息。由于控制通道的链路延迟或故障等原因,即使CCU12与各MPU之间的链路是通畅的,也无法保证MPU15同时从端口1和端口5接收到LCC17路由不可达消息。如果MPU15先从端口1接收到该消息,且一段时间内还未从端口5接收到该消息,那么将发生如图2所示的单播临时环路,进而发生如图3所示的组播表项丢失。因此,当MPU15从端口1接收到LCC17路由不可达消息时,MPU15将启动延迟切换定时器,在延迟切换定时器的定时时间内,MPU15监测是否从端口5接收到LCC17路由不可达消息。如果在延迟切换定时器超时时,MPU15仍未从端口5接收到LCC17路由不可达消息,那么也就是说MPU16并未接收到CCU12发送的LCC17路由不可达消息,通过MPU16到达LCC17的路由是通畅的。因此MPU15将删除到达LCC17的最优路由,并将MPU15到达LCC17的最优路由的出端口修改为端口5。也即MPU15删除表1中的第三条目,并将表1中的第四条目作为目的框为LCC17的最优单播路由。在进行了上述修改后,MPU15将修改后的最优单播路由通知给组播模块,组播模块是根据单播最优路由确定的组播表项,当LCC14的组播模块发现MPU15的最优单播路由发生变化后,由于MPU15的单播路由表中仍有目的框为FCC11的最优单播路由,因此组播模块将不对源框为LCC14的组播表项进行修改,从而避免了如图3所示的组播表项丢失。图5和图6为本发明实施例提供的集群路由器路由控制方法的执行逻辑示意图。其中图5为本发明实施例提供的集群路由器路由控制方法中路由删除过程示意图,图6为本发明实施例提供的集群路由器路由控制方法中路由添加流程示意图。如图5所示,在步骤S501中,对于LCC14中的MPU15接收到LCC17的路由不可达消息。MPU15随机进行步骤S502中的判断,判断是否必须将目的框为LCC17的单播路由切换为通过端口5的路由。若判断为否,也即除了端口5以外,MPU15仍有目的框为LCC17的单播路由,那么将执行步骤S503,即立即修改目的框为LCC17的最优单播路由的出端口。若步骤S502中判断为是,那么MPU15将首先删除目的框为LCC17的最优单播路由,即步骤S504,然后在步骤S505中启动延迟切换定时器。随后进行步骤S506中的判断,判断在延迟切换定时器超时前,MPU15是否从端口5接收到了LCC17路由不可达消息。若步骤S506的判断为是,那么在步骤S507中,MPU15删除通过端口5到达LCC17的单播路由。若步骤S506的判断为否,那么在步骤S508中确定通过端口5到LCC17的路由仍然可达,随后进入图6所示的路由添加流程。在图6中,在步骤S601中,当延迟切换定时器超时时,进行步骤S602中的判断,判断端口5是否存在目的框为LCC17的单播路由,若存在,则执行步骤S603,将通过端口5的路由添加为目的框为LCC17的最优单播路由。若步骤S602的判断为否,则不进行任何处理。基于与上述方法同样的申请构思,本发明实施例还提供一种集群路由器路由控制装置,应用在控制器上。该集群路由器路由控制装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的控制器上的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图7所示,为控制器的一种硬件结构图,除了图7所示的处理器、非易失性存储器外,控制器还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,该控制器还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。图8为本发明实施例提供的集群路由器路由控制装置实施例一的结构示意图,本实施例提供的集群路由器路由控制装置用于控制包括FCC和至少两个LCC的集群路由器。如图8所示,本实施例提供的集群路由器路由控制装置包括:判断模块81,用于判断当集群路由器的第一LCC的第一MPU接收到FCC中的CCU发送的第二LCC路由不可达消息时,第一MPU到第二LCC,除了当前最优单播路由外,是否仅有通过第一MPU与第一LCC的第二MPU连接的第一端口到第二LCC的单播路由。删除模块82,用于当判断模块81确定当第一LCC的第一MPU接收到FCC中的CCU发送的第二LCC路由不可达消息时,若第一MPU确定仅有通过第一MPU与第一LCC的第二MPU连接的第一端口到第二LCC的单播路由时,删除第一MPU到第二LCC的最优单播路由并启动延迟切换定时器,最优单播路由的出端口为第一MPU与CCU连接的第二端口。判断模块81,还用于判断当延迟切换定时器超时时,第一MPU是否在第一端口接收到第二LCC路由不可达消息。修改模块83,用于判断模块81确定当延迟切换定时器超时时,第一MPU仍未在第一端口接收到第二LCC路由不可达消息,则将最优单播路由的出端口修改为第一端口。本发明实施例提供的集群路由器路由控制装置用于实现图4所示的集群路由器路由控制方法,其实现原理和技术效果类似,此处不再赘述。需要说明的是,本发明实施例提供的集群路由器路由控制装置可以设置于第一MPU中,也可以独立于第一MPU设置于集群路由器中。进一步的,在图8所示实施例中,修改模块83,还用于当判断模块81确定第一MPU接收到FCC中的CCU发送的第二LCC路由不可达消息时,若第一MPU确定具有通过第三端口到第二LCC的单播路由时,则第一MPU将最优单播路由的出端口修改为第三端口,第三端口与CCU直接连接。进一步的,在图8所示实施例中,删除模块82,还用于当判断模块81确定在延迟切换定时器超时之前,第一MPU在第一端口接收到第二LCC路由不可达消息,则删除通过第一端口到第二LCC的单播路由。进一步的,在图8所示实施例中,延迟切换定时器的定时时间为集群路由器的两个路由更新周期。本发明实施例还提供一种集群路由器。图9为本发明实施例提供的集群路由器的结构示意图,如图9所示,本发明实施例提供的集群路由器包括:FCC91和至少两个LCC,至少两个LCC包括第一LCC92和第二LCC93,第一LCC92包括第一MPU94和第二MPU95。第一MPU94用于,当从接收到FCC91中的CCU96发送的第二LCC93路由不可达消息时,若确定第一MPU94到第二LCC93,除了当前最优单播路由外,仅有通过第一MPU94与第一LCC92的第二MPU95连接的第一端口到第二LCC93的单播路由时,删除第一MPU94到第二LCC93的最优单播路由并启动延迟切换定时器,最优单播路由的出端口为第一MPU93与CCU96连接的第二端口;当延迟切换定时器超时时,仍未在第一端口接收到第二LCC93路由不可达消息,则将最优单播路由的出端口修改为第一端口。本发明实施例提供的集群路由器用于实现图4所示的集群路由器路由控制方法,其实现原理和技术效果类似,此处不再赘述。进一步的,在图9所示实施例中,第一MPU94,还用于当接收到FCC91中的CCU96发送的第二LCC93路由不可达消息时,若确定第一MPU93具有通过第三端口到第二LCC93的单播路由时,则将最优单播路由的出端口修改为第三端口,第三端口与CCU96直接连接。进一步的,在图9所示实施例中,第一MPU94,还用于若延迟切换定时器超时之前,在第一端口接收到第二LCC93路由不可达消息,则删除通过第一端口到第二LCC93的单播路由。进一步的,在图9所示实施例中,延迟切换定时器的定时时间为集群路由器的两个路由更新周期。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1