基于转发与控制网络件架构中控制件失效检测和恢复方法与流程

文档序号:12005307阅读:148来源:国知局
基于转发与控制网络件架构中控制件失效检测和恢复方法与流程
本发明属于计算机通信技术领域,尤其涉及一种基于转发与控制网络件架构中控制件失效检测和恢复方法。

背景技术:
路由器作为计算机网络的核心设备,其高可用性至关重要。在硬件方面,路由器需要有健壮的体系结构包括各种完善的冗余部件,如路由引擎和交换矩阵的冗余。在软件方面,除了其自身要健壮,在遇到更换硬件、系统升级、增加板卡和改变链路等网络调整时,软件要有能力保证整个网络业务不受局部调整的影响,让整个网络体现出非常高的可用性,保证路由引擎进行不丢包的切换及优雅重启。当路由协议栈重启时,由此产生的路由重新计算和网络范围的路由更新会消耗处理资源,并有可能出现黑洞或瞬时转发循环形式的非预期网络行为,而优雅重启可以避免这种情况的发生。转发件和控制件分离(ForwardingandControlElementSeparation,ForCES)是IETF[1]路由领域(RoutingArea)的一个工作组,它专门研究开放可编程的路由器体系结构和协议问题,是当前开放可编程网络研究最受关注的研究组织之一。ForCES基本思想是把路由器分成转发件(ForwardingElements,FE)和控制件(ControlElements,CE),并认为其可由多个(可达几百个)FE、CE以及连接他们的ForCES协议构成。转发与控制网络件的典型结构如图1所示。在目前ForCES架构路由器的研究中,目前重点集中在对于CE和FE间通信机制的研究,我们通常所提到的ForCES协议本质上也就是Fp参考点协议,但是仅有这样一个Fp参考点协议对于ForCES架构的推广和产业化是大大不够的,业界更为关心的是路由器的可靠性和稳定性而并非技术标准的领先性,目前已经有大量的研究针对如何改善路由器的高可用性问题,因此如何提高ForCES架构路由器可靠性和稳定性已成为我们研究不可忽视的技术问题。互联网协议RFC3654中规定了转发与控制网络件的需求(Requirements),互联网协议RFC3746规定了转发与控制网络件的框架(Framework)。它们之间的信息交换使用标准化的被称为“ForCES协议”的信息交换协议,进而转发与控制网络件也被称为ForCES网络件,标准化使得转发件和控制件可以由不同厂家生产。冗余是获得高可用性的主要途径,即使是使用可能发生故障的组件,冗余也可使从意外故障中进行恢复和计划内升级的速度更快。一个ForCES网络件可由多个转发件和多个控制件组成,其中多个控制件的使用就是为了系统冗余备份目的,从而实现控制件的高可用性。多个控制件信息交换的标准化方法是ForCES网络件技术研究的核心内容之一。它至少包含两方面研究内容:多个控制件的信息交换的格式定义方法和多个控制件实现系统冗余备份的机制。目前ForCES小组对此正在探索性的研究,研究内容称为控制件冗余和恢复策略(CEredundancyandfailover),可简称为CERFPolicy。现在仅提出了通过采用主备模式实现控制件的冗余,并对转发件发现控制件失效后,提出了两种执行策略:1、转发件停止转发,然后转发件和备用控制件重新建立连接;2、转发件可以继续转发数据包,然后主动把备用控制件切换为主控制件。关于转发件如何检测到主控制件出错并确定其不能正常工作,主控制件和备用控制件之间如何切换,目前还没有一种有效的机制。所以,一种可以被标准化的用于主控制件失效检测和恢复机制成为ForCES网络件技术研究当前需要解决的重要问题。

技术实现要素:
本发明的目的是针对现有技术的不足,提供一种基于转发与控制网络件架构中控制件失效检测和恢复方法。本发明解决其技术问题所才有的技术方案包括如下步骤:步骤(1)通过控制件管理单元确定主控制件和其他可用的控制件列表,并将列表告知每个控制件,同时列表通过转发件管理单元告知转发件;步骤(2)主控制件监控其他控制件状态的变化,根据其他控制件状态的变化更新可用控制件列表,并将更新后的列表告知其他控制件和转发件;根据转发与控制网络件中转发件的忙碌程度进行下一步工作,若转发件没有数据包处理时,则转至步骤(3),若转发件正在处理数据包,则转至步骤(4);步骤(3)转发件获取更新后的控制件列表后,空余时间再次确认可用控制件列表中控制件的可用性,通过主控制件告知其他转发件和可用控制件,然后跳转至步骤(5);步骤(4)转发件在向主控制件发送消息的同时,同时发送一份消息给处于可用控制件列表表头的控制件,在可用控制件间进行数据单向备份,实现相关数据的一致性;步骤(5)转发件跟主控制件之间采用心跳与点检测相结合的方法来检测主控制件的可用性,主控制件跟可用控制件列表表头的控制件之间采用心跳检测方法;步骤(6)若步骤(5)中,心跳与点检测相结合的方法检测出主控制件死机,则实现主控制件与可用控制件列表表头的控制件之间的无缝切换。所述的步骤(1)初始时,通过控制件管理单元确定主控制件和其他可用的控制件列表的操作,是由管理人员预先使用配置文件或者命令告知控制件管理单元系统中主控制件和其他可用控制件的IP地址,之后转发件管理单元通过和控制件管理单元进行数据交换获取其可用的控制件列表,在转发件向转发件管理单元询问时,将可用的控制件列表告知。所述的步骤(2)中,转发与控制网络件刚启动时,主控制件根据人工配置的可用的控制件列表,依次向可用的控制件列表中的控制件发送ACK消息,确定其可用性;然后根据权值排列可用的控制件和不可用的控制件,并把排列结果广播给转发与控制网络件中所有的可用控制件和转发件。所述的步骤(3)中,若转发件没有数据包处理时,根据步骤(2)主控制件更新后的可用控制件列表,首先,向可用控制件列表中不可用的控制件发送ACK消息,确定其可用性,如果为可用,则告知主控制件,并要求重新更新可用控制件列表;如果为不可用,则不做任何处理。其次,转发件再次向可用控制件列表的可用控制件发送ACK消息,确定其可用性,如果为不可用,则告知主控制件,并要求重新更新可用控制件列表;如果为可用,则不做任何处理。所述的步骤(4)中,转发件每次发送数据时,都同时发送给主控制件和可用控制件列表表头的控制件,主控制件对转发件的数据进行处理并返回结果,可用控制件列表表头的控制件对转发件的数据只进行接收备份,并不返回结果,根据可用控制件列表中控制件的排列顺序,控制件依次从前一个控制件复制数据内容,即进行数据单向备份,实现相关数据的一致性。所述的步骤(5)中,在主控制件端采用心跳检测机制,由主控制件向转发件发送心跳消息;转发件端采用点检测机制,点检测时间大于定时检测的时间间隔。若在点检测的时间间隔内收到主控制件的心跳消息,则定时器不被激活;若没有收到主控制件的心跳消息,则定时器激活,且转发件向主控制件发送消息,要求主控制件回应,如果主控制件在定时器规定时间内没有回应,则认为此主控制件失效,如果回应,则认为此主控制件仍正常工作。所述的步骤(6)中,在确定主控制件死机以后,可用控制件列表表头的控制件直接接管主控制件的工作,将自己对外的IP地址修改为被转发件认为是主控制件的IP地址,原主控制件根据自己的内部IP排入可用控制件列表表末端等待修复。本发明有益效果如下:本发明解决ForCES技术实现和技术标准化过程中对CERFPolicy策略急需解决的重要问题,即一种有效可实施的控制件失效检测和恢复机制。从IETFForCES工作组的工作看,本发明是目前唯一一套具有完整解决方案、可向IETFForCES工作组申请进行标准化的控制件失效检测和恢复机制,目前还未见其它任何有效的解决方法发表。本发明显著优点有:1)满足了多控制件冗余备份的需求;2)通过点检测和心跳检测相结合的方法,防止转发件切换到不同的控制件;3)本发明已经被实际系统使用证明是切实可行的;4)可被标准化的前景使得本发明具有广阔的应用前景和广泛的实际使用效果前景。附图说明图1是转发与控制网络件的结构示意图;图2是主控制件更新可用控制件表格流程图;图3是转发件更新可用控制件表格流程图;图4为主控制件与可用控制件数据备份示意图;图5为主控制件失效检测示意图。具体实施方式下面结合附图,对本发明做进一步说明。如图1-5所示,基于转发与控制网络件架构中控制件失效检测和恢复方法,包括如下步骤:步骤(1)通过控制件管理单元确定主控制件和其他可用的控制件列表,并将列表告知每个控制件,同时列表通过转发件管理单元告知转发件;步骤(2)主控制件监控其他控制件状态的变化,根据其他控制件状态的变化更新可用控制件列表,并将更新后的列表告知其他控制件和转发件;根据转发与控制网络件中转发件的忙碌程度进行下一步工作,若转发件没有数据包处理时,则转至步骤(3),若转发件正在处理数据包,则转至步骤(4);步骤(3)转发件获取更新后的控制件列表后,空余时间再次确认可用控制件列表中控制件的可用性,通过主控制件告知其他转发件和可用控制件,然后跳转至步骤(5);步骤(4)转发件在向主控制件发送消息的同时,同时发送一份消息给处于可用控制件列表表头的控制件,在可用控制件间进行数据单向备份,实现相关数据的一致性;步骤(5)转发件跟主控制件之间采用心跳与点检测相结合的方法来检测主控制件的可用性,主控制件跟可用控制件列表表头的控制件之间采用心跳检测方法;步骤(6)若步骤(5)中,心跳与点检测相结合的方法检测出主控制件死机,则实现主控制件与可用控制件列表表头的控制件之间的无缝切换。所述的步骤(1)初始时,通过控制件管理单元确定主控制件和其他可用的控制件列表的操作,是由管理人员预先使用配置文件或者命令告知控制件管理单元系统中主控制件和其他可用控制件的IP地址,之后转发件管理单元通过和控制件管理单元进行数据交换获取其可用的控制件列表,在转发件向转发件管理单元询问时,将可用的控制件列表告知。在转发与控制网络件中,只有一个IP地址(CEID),对主CE还是备份CEs而言,只有这个CEID是被FE认为是主CE的ID,而其他CE,使用自己内部ID。初始时,通过人工配置每个控制件的IP地址,并根据IP地址确定其权值大小(IP地址小的权值大),因此初始时,主控制件的内部IP地址是最小的,权值最大。图1是转发与控制网络件的结构示意图。所述的步骤(2)中,转发与控制网络件刚启动时,主控制件根据人工配置的可用的控制件列表,依次向可用的控制件列表中的控制件发送ACK消息,确定其可用性;然后根据权值排列可用的控制件和不可用的控制件,并把排列结果广播给转发与控制网络件中所有的可用控制件和转发件。如图2所示,转发与控制网络件刚启动时,主控制件根据人工配置的可用控制件表格,依次向可用备份控制件发送ACK消息,如果回应,则认为此控制件是活跃可用的,根据权值,排在可用控制件表最前端,其中表头权值最大;如果某个控制件不回应,根据权值,排在可用控制件表最末端,其中表尾权值最大,直至一个来回结束。然后主控制件把更新完毕的可用控制件列表表广播给转发与控制网络件中的转发件和可用控制件,并告知不活跃控制件在表中排列的起始位置(表ID)。所述的步骤(3)中,若转发件没有数据包处理时,根据步骤(2)主控制件更新后的可用控制件列表,首先,向可用控制件列表中不可用的控制件发送ACK消息,确定其可用性,如果为可用,则告知主控制件,并要求重新更新可用控制件列表;如果为不可用,则不做任何处理。其次,转发件再次向可用控制件列表的可用控制件发送ACK消息,确定其可用性,如果为不可用,则告知主控制件,并要求重新更新可用控制件列表;如果为可用,则不做任何处理。如图3所示,转发与控制网络件正常工作时,当转发与控制网络件中某个转发件空闲时,首先根据可用控制件列表,再次向不活跃的控制件发送ACK消息,回应则认为是活跃的控制件,告知主控制件,由主控制件修改可用控制件列表(被转发件检测到的活跃的控制件,除了是原先宕机的主控制件外,其它控制件在可用控制件列表表头(CE1)后根据权值排列,因为CE1与主控制件有交互,并与转发件有实时备份,数据齐全)和不活跃控制件的起始位置,并由它广播给转发与控制网络件中各个转发件和可用控制件;不回应则认为是不活跃(仅对此转发件而言),继续向下一个可用控制件发送ACK消息,直至到表尾。然后根据不活跃控制件的起始位置,依次向排在此位置前活跃的控制件发送ACK消息,回应则不作反应,不回应则告知主控制件,由主控制件修改可用控制件列表(不活跃的控制件根据权值排在表末端)和不活跃控制件的起始位置。这样做能够保证转发与控制网络件中各个转发件的可用控制件列表一致性,以免在主控制件死机后,切换到不同的控制件。所述的步骤(4)中,转发件每次发送数据时,都同时发送给主控制件和可用控制件列表表头的控制件,主控制件对转发件的数据进行处理并返回结果,可用控制件列表表头的控制件对转发件的数据只进行接收备份,并不返回结果,根据可用控制件列表中控制件的排列顺序,控制件依次从前一个控制件复制数据内容,即进行数据单向备份,实现相关数据的一致性。如图4所示,转发与控制网络件启动前,由人工对转发与控制网络件中每个控制件进行数据备份。转发与控制网络件启动后,转发件每次发送数据时,都同时发送给主控制件和可用控制件列表表头的控制件(CE1),主控制件对转发件的数据进行处理并返回结果,可用控制件列表表头的控制件对转发件的数据只进行接收备份,并不返回结果,根据可用控制件列表中控制件的排列顺序,控制件依次从前一个控制件复制数据内容,即进行数据单向备份,CE1——CE2——CE3——…——CEn,实现相关数据的一致性。所述的步骤(5)中,在主控制件端采用心跳检测机制,由主控制件向转发件发送心跳消息;转发件端采用点检测机制,点检测时间大于定时检测的时间间隔。若在点检测的时间间隔内收到主控制件的心跳消息,则定时器不被激活;若没有收到主控制件的心跳消息,则定时器激活,且转发件向主控制件发送消息,要求主控制件回应,如果主控制件在定时器规定时间内没有回应,则认为此主控制件失效,如果回应,则认为此主控制件仍正常工作。如图5所示,采用点检测与心跳检测相结合的方法具体如下:设置定时检测的时间间隔为一个时段T1,设置心跳检测的间隔时间为一个时间间隔T1和处理一定数量服务请求的时间T2的最小值,即心跳检测时间间隔为min(T1,T2),短任务时,T2较小,当请求频繁时,T1>T2,定时器不被激活。而请求较少时,定时器激活不受影响。在主控制件端采用心跳,由主控制件向转发件发送心跳检测消息。转发件端采用点检测,时间为T3,T3>T1。点检测采用定时器,如果在T3周期内收到主控制件的心跳检测信号,则定时器进入下一个周期;如果在一个周期内没有收到主控制件的心跳信号,则定时器激活转发件。转发件向主控制件发送消息,并要求主控制件回应此消息,如果在规定时间内,转发件没有收到该主控制件的响应消息也没有收到该主控制件的心跳信号,则认为该主控制件失效。图5为主控制件失效检测示意图。改善原先只有心跳检测的方法来检测主控制件是否失效。如果只有心跳检测,如果主控制件回应ACK消息延时,则会导致转发件引起不必要的切换。例如主控制件是正常的,只是转发件发送的ACK消息延时或者主控制件响应ACK消息延时,会让转发件认为此主控制件已经宕机,就发送切换主备控制件消息(此消息权值最高,CE1只对此消息进行响应),这样就会切换掉原先正常工作的主控制件。所述的步骤(6)中,在确定主控制件死机以后,可用控制件列表表头的控制件直接接管主控制件的工作,将自己对外的IP地址修改为被转发件认为是主控制件的IP地址,原主控制件根据自己的内部IP排入可用控制件列表表末端等待修复。当确定主控制件宕机后,可用控制件列表中的CE1直接代替主控制件,修改可用控制件列表,宕机的主控制件放入表末端,并向转发件和控制件广播此表。如果原主控制件宕机后,在表中已修复,则向现主控制件发送复活消息,现主控制件则更新可用控制件列表,原主控制件作为CE1,其后可用控制件依次后移,并向转发件和控制件广播此表。其他可用控制件在表末端修复,向现主控制件发送复活消息,根据权值排在CE1后,并向转发件和控制件广播此表。主控制件跟CE1有心跳检测消息,保证CE1是活跃的。如果CE1不活跃,则主控制件更新可用控制件列表,不活跃的CE1根据权值排入表末端,并向转发件和控制件广播此表。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1