链路检测方法及装置与流程

文档序号:11628621阅读:301来源:国知局
本发明涉及通信领域,具体而言,涉及一种链路检测方法及装置。
背景技术
::软件定义网络(softwaredefinednetwork,简称为sdn)是当前通信领域研究的热点技术。sdn包括控制面的控制器(controller,简称c)和转发面的交换机(switch,简称sw或者s)两部分构成。根据当前sdn技术的定义,控制器controller和交换机switch之间通过openflow(简称of)协议下发控制指令,指导交换机上的数据流转发;控制器还通过netconfig(networkconfigurationprotocol,网络配置协议)来对交换机sw上进行参数配置等。其中,of协议是美国斯坦福大学于2008年提出的一种转发/控制分离协议,外置控制面实体采用of协议控制转发面设备实现各种转发逻辑,而转发面设备主要功能就是根据of控制器下发的流表执行受控转发。其可以在控制面采用软件编程实现各种复杂的网络应用,例如vdc(virtualdatacenter,虚拟数据中心),sfc(servicefunctionchain,业务链),vtn(virtualtenantnetwork,虚拟租户网络)等。图1为相关技术中sdn网络技术的简单示意图,switch1,switch2和switch3是受控openflow交换机,为了清晰,这里只展示了环形topo(topology,拓扑)的三台交换机,在实际布网中,可以是任何topo的多台交换机。当前控制器对sw之间里的链路检测和topo形成都是通过lldp(linklayerdiscoveryprotocol,链路层发现协议)完成的。其中,lldp提供了一种标准的链路层发现方式,可以将本端设备的主要能力、管理地址、设备标识、接口标识等信息组织成不同的tlv(type/length/value,类型/长度/值),并封装在lldppdu(linklayerdiscoveryprotocoldataunit,链路层发现协议数据单元)中发布给与自己直连的邻居,邻居收到这些信息后将其以标准mib(managementinformationbase,管理信息库)的形式保存起来,以供网络管理系统查询及判断链路的通信状况。在sdn网络中,lldp消息的生成,发送,接受和处理都是控制器完成的,sw只是完成转发或者上送的功能,图2为相关技术中控制器控制lldp消息的基本流程图,参见图2,其步骤描述如下:步骤201:控制器构造由sw1发往sw2的lldppdu报文,通过packetout消息(分组报文发出消息,openflow协议消息族的一种)发送到sw1。步骤202:sw1从packetout消息中解析出lldppdu,并根据本机上的流表和组表,将lldppdu发往目的交换机sw2。步骤203:sw2收到lldppdu报文后,根据本机的流表和组表,将lldppdu 消息封装到packetin消息(分组报文收进消息,openflow协议消息族的一种)中,送往控制器。步骤204:控制器在规定的时间内收到了lldppdu,则解出lldppdu,据此判断sw1到sw2链路的状态为active;反之,如果控制器在规定的时间内没有收到lldppdu或者收到了错误的lldppdu,则断定sw1到sw2之间的状态为down。步骤205-208:同理,sw2到sw1(反向)链路的状态的探测也是通过上述类似方式进行。步骤209:同理,其他交换机之间(sw1与sw3,sw2与sw3等)的链路状态,也是通过上述方式探测。控制器根据探测的交互机之间的链路形成topo,并根据topo结构,计算交换机与交换机之间的path(路径),进而生成交换机上的流表(flowtable)和组表(group)等。其中:上述lldp探测是周期性的,周期分为两种,快速传送周期的时间间隔,其范围是:1-3600s,默认值为:1s;常规传送周期的时间间隔,其范围是:1-3600s,默认值为30s。上述lldp探测链路状态,根据探测周期可以发现:两种周期检测链路的实效性都不高—最佳配置情况下都大于1s。因此网络故障时链路切换的实效性也不会高于1s,这远远不能满足网络对路径切换速率低于100ms的指标的。另外每个lldp数据报文都是控制器生成,并最终再送往控制器处理的,如果lldp的探测周期设置的很小,那么控制器上因为lldp报文而造成的数据流量就很大,对sdn网络控制器造成了很大的处理负担,严重影响了控制器的性能和效率。针对相关技术中,应用lldp探测链路状态检测链路时,检测链路的时效性不高,以及给控制器来了很大处理负担的问题,尚未提出有效的解决方案。技术实现要素:为了解决上述技术问题,本发明提供了一种链路检测方法及装置。根据本发明的一个方面,提供了一种链路检测方法,包括:生成交换机之间的双向转发检测(bidirectionalforwardingdetection,简称为bfd)会话;接收所述交换机根据bfd会话确定的链路故障检测结果,其中,所述链路故障检测结果用于指示转发面的链路是否发生故障。优选地,接收所述交换机根据bfd会话确定的链路故障检测结果之后,所述方法还包括:根据预先获取的所述交换机之间的拓扑结构图,以及所述链路故障检测结果更新转发面中交换机的流表和组表,并将当前出现故障的链路切换到该链路的备用链路。优选地,生成交换机之间的双向转发检测bfd会话之前,所述方法还包括:向生成bfd会话的交换机下发配置参数,其中,该配置参数用于生成bfd会话。根据本发明的另一个方面,还提供了一种链路检测方法,包括:在转发面的交换机之间两两生成双向转发检测bfd会话;根据bfd会话确定转发面链路的链路故障检测结果;将所述链路故障检测结果上报至控制面的控制器。优选地,将所述链路故障检测结果上报至控制面的控制器,包括:通过openflow协议中端口描述信息的指定字段来携带所述链路故障检测结果,其中,该指定字段包括:扩展的openflow协议中协议指示位。优选地,根据bfd会话确定转发面链路的链路故障检测结果,包括:在指定时间段内,如果第一交换机没有收到第二交换机发送的bfd保活信息,则确定所述第一交换机与所述第二交换机的链路故障;在指定时间段内,如果第一交换机收到第二交换机发送的bfd保活信息,则确定所述第一交换机与所述第二交换机的链路无故障。根据本发明的另一个方面,还提供了一种链路检测装置,包括:第一生成模块,用于生成双向转发检测bfd会话;接收模块,用于接收所述交换机根据bfd会话确定的链路故障检测结果,其中,所述链路故障检测结果用于指示所述交换机之间的链路是否发生故障。优选地,所述装置还包括:更新模块,用于根据预先获取的所述交换机之间的拓扑结构图,以及所述链路故障检测结果更新所述转发面中交换机的流表和组表;切换模块,用于将当前出现故障的链路切换到该链路的备用链路。根据本发明的另一个方面,还提供了一种链路检测装置,包括:第二生成模块,用于在转发面的交换机之间两两生成双向转发检测bfd会话;确定模块,用于根据bfd会话确定转发面链路的链路故障检测结果;上报模块,用于将所述链路故障检测结果上报至控制面的控制器。优选地,所述确定模块,包括:第一确定单元,用于在指定时间段内,如果第一交换机没有收到第二交换机发送的bfd保活信息,则确定所述第一交换机与所述第二交换机的链路故障;第二确定单元,用于在指定时间段内,如果第一交换机收到第二交换机发送的bfd保活信息,则确定所述第一交换机与所述第二交换机的链路无故障。通过本发明,根据bfd会话来判断转发面的交换机之间的链路是否发生故障的技 术方案,解决了相关技术中,应用lldp探测链路状态而导致的检测链路时效性不高,并给控制器来了很大处理负担的问题,克服了lldp检测链路检测速度慢的问题,并且,由于bfd会话交互报文没有lldp数据量大,也大大减少了控制器负荷高的问题。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1为相关技术中sdn网络技术的简单示意图;图2为相关技术中控制器控制lldp消息的基本流程图;图3为根据本发明实施例的链路检测方法的流程图;图4为根据本发明实施例的链路检测装置的结构框图;图5为根据本发明实施例的链路检测装置的另一结构框图;图6为根据本发明实施例的链路检测方法的另一流程图;图7为根据本发明实施例的链路检测装置的又一结构框图;图8为根据本发明实施例的链路检测装置的确定模块的结构框图;图9为根据本发明优选实施例一的建立会话示意图;图10为根据本发明优选实施例一的链路检测流程图;图11是根据本发明优选实施例二的建立会话示意图;图12为根据本发明优选实施例二的快速链路检测的操作流程参加图;图13为根据本发明实施例的bfdm主动回访的流程图。具体实施方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。为了使本
技术领域
:的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通 技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。在本发明实施例中,提供了一种链路检测方法,图3为根据本发明实施例的链路检测方法的流程图,如图3所示,包括以下步骤:步骤s302,生成交换机之间的双向转发检测bfd会话;步骤s304,接收交换机根据bfd会话确定的链路故障检测结果,其中,上述链路故障检测结果用于指示转发面的链路是否发生故障。通过上述各个步骤,不完全依赖lldp来进行链路检测,而是根据bfd会话来判断转发面的交换机之间的链路是否发生故障,进而控制器根据链路检测结果来进行后续处理的技术方案,解决了相关技术中,应用lldp探测链路状态而导致的检测链路时效性不高,并给控制器来了很大处理负担的问题,克服了lldp检测链路检测速度慢的问题,并且,由于bfd会话交互报文没有lldp数据量大,也大大减少了控制器负荷高的问题。在确定链路检测结果以后,为了保证业务不中断,在一个可选实施例中,还可以根据预先获取的上述交换机之间的拓扑结构图,以及上述链路故障检测结果更新上述转发面中交换机的流表和组表,并将当前出现故障的链路切换到该链路的备用链路,即根据上述因素及时有效的更新流表和组表,进而出现故障的链路切换到备用链路中。可选地,在执行步骤s302之前,在本发明实施例中,向生成bfd会话的交换机或控制器(此时,控制器可以理解为代替交换机生成bfd会话)下发配置参数,其中,该配置参数用于生成bfd会话。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必需的。在本实施例中还提供了一种链路检测装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述,下面对该装置中涉及到的模块进行说明。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图4为根据本发明实施例的链路检测装置的结构框图。如图4所示,该装置包括:第一生成模块40,用于生成双向转发检测bfd会话;接收模块42,与第一生成模块40连接,用于接收上述交换机根据bfd会话确定的链路故障检测结果,其中,上述链路故障检测结果用于指示上述交换机之间的链路是否 发生故障。通过上述各个模块的综合作用,根据bfd会话来判断转发面的交换机之间的链路是否发生故障,进而控制器根据链路检测结果来进行后续处理的技术方案,解决了相关技术中,应用lldp探测链路状态而导致的检测链路时效性不高,并给控制器来了很大处理负担的问题,克服了lldp检测链路检测速度慢的问题,并且,由于bfd会话交互报文没有lldp数据量大,也大大减少了控制器负荷高的问题。图5为根据本发明实施例的链路检测装置的另一结构框图,如图5所示,包括:更新模块44,与接收模块42连接,用于根据预先获取的上述交换机之间的拓扑结构图,以及上述链路故障检测结果更新上述转发面中交换机的流表和组表;切换模块46,与更新模块44连接,用于将当前出现故障的链路切换到该链路的备用链路。需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。为了完善上述技术方案,在本发明实施例中,还提供了一种链路检测方法,包括:图6为根据本发明实施例的链路检测方法的另一流程图,如图6所示,包括以下步骤:步骤s602:在转发面的交换机之间两两生成双向转发检测bfd会话;步骤s604:根据bfd会话确定转发面链路的链路故障检测结果;步骤s606:将上述链路故障检测结果上报至控制面的控制器。其中,在上述实施例中,在转发面的交换机之间两两生成双向转发检测bfd会话可以是在转发面的两个以上交换机中,每两个之间都生成bfd会话。通过上述各个步骤,根据交换机两两之间生成的bfd会话来判断转发面的交换机之间的链路是否发生故障,进而控制器根据链路检测结果来进行后续处理的技术方案,解决了相关技术中,应用lldp探测链路状态而导致的检测链路时效性不高,并给控制器来了很大处理负担的问题,克服了lldp检测链路检测速度慢的问题,并且,由于bfd会话交互报文没有lldp数据量大,也大大减少了控制器负荷高的问题。在一个可选示例中,上述步骤s606可以通过以下方案实现:通过openflow协议中端口描述信息的指定字段来携带上述链路故障检测结果,即链路故障事件通过扩展的openflow协议指示位携带,如下所示:上述步骤s604可以通过以下技术方案来实现:在指定时间段内,如果第一交换机没有收到第二交换机发送的bfd保活信息,则确定上述第一交换机与上述第二交换机的链路故障;在指定时间段内,如果第一交换机收到第二交换机发送的bfd保活信息,则确定上述第一交换机与所述第二交换机的链路无故障。综上所述,本发明实施例提供的上述技术方案,可以至少解决检测速度慢和控制器处理负荷高的问题,以下结合一示例大致说明上述技术方案:sdn控制器通过lldp发现交换机网络拓扑;控制器下发bfd配置参数控制交换机生成双向bfd会话,并降低lldp探测链路的频率。交换机通过bfd会话保活检测转发面链路故障,并将链路故障事件通过openflow协议上报给控制器。控制器根据链路故障事件向交换机更新的流表和组表,保证数据流切换到备用路径上,保证业务不中断。链路故障恢复后,控制器根据lldp检测机制重新发现链路,启动bfd链路探测,并将数据迁移回原来的路径。由此可见,本发明示例结合了bfd技术和lldp机制,在sdn网络中解决了链路状态检测速度慢的问题,同时为减轻了因链路探测给控制器带来的额外高负荷。在本实施例中还提供了一种链路检测装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述,下面对该装置中涉及到的模块进行说明。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图7为根据本发明实施例的链路检测装置的又一结构框图。如图7所示,该装置包括:第二生成模块70,用于在转发面的交换机之间两两生成双向转发检测bfd会话;确定模块72,与第二生成模块70连接,用于根据bfd会话确定转发面链路的链路故障检测结果;上报模块74,与确定模块72连接,用于将上述链路故障检测结果上报至控制面的控制器。通过上述各个模块的综合作用,根据交换机两两之间生成的bfd会话来判断转发面的交换机之间的链路是否发生故障,进而控制器根据链路检测结果来进行后续处理的技术方案,解决了相关技术中,应用lldp探测链路状态而导致的检测链路时效性不高,并给控制器来了很大处理负担的问题,克服了lldp检测链路检测速度慢的问题,并且,由于bfd会话交互报文没有lldp数据量大,也大大减少了控制器负荷高的问题。图8为根据本发明实施例的链路检测装置的确定模块72的结构框图,如图8所示,确定模块72,包括:第一确定单元720,用于在指定时间段内,如果第一交换机没有收 到第二交换机发送的bfd保活信息,则确定上述第一交换机与上述第二交换机的链路故障;第二确定单元722,用于在指定时间段内,如果第一交换机收到第二交换机发送的bfd保活信息,则确定上述第一交换机与上述第二交换机的链路无故障。在本发明实施例中,还提供了一种链路检测系统,包括:控制器,交换机,其中,控制器,用于控制转发面的交换机生成双向转发检测bfd会话;交换机,用于根据bfd会话确定的链路故障检测结果,并将链路故障检测结果上报至上述控制器。为了更好的理解上述链路检测流程,以下结合附图和优选实施例对上述实施例进行简单说明:优选实施例一在本优选实施例一中提供了一种链路快速检测的方法,图9为根据本发明优选实施例一的建立会话示意图,如图9所示,控制器中设置bfd管理单元,在此称作bfdm(bfdmanager,bfd管理单元)。步骤s902:bfdm通过netconfig协议分别向交换机sw1和sw2下发bfd控制报文,也称作配置参数,例如bfd启动开关,控制报文时常,接收时间间隔,会话超时时长,管理地址等。步骤s904:交换机sw1和sw2收到bfd配置参数后,建立bfd会话,后续会对bfd会话的进行保活。其中,bfd回话的保活和链路的检测具体机制如下:bfd会话有两种模式异步模式。异步模式和查询模式。异步模式下,交换机双方会周期性地发送bfd控制报文,如果在检测时间内没有收到对端的bfd控制报文则认为对应的链路出现故障。查询模式下,只要有bfd会话建立,双发就停止发送bfd控制报文。如果要显式地验证连接性,系统发送一个短系列的bfd控制包,如果在检测时间内没有收到返回的报文就宣布会话为down;如果收到对端的回应报文,协议再次保持沉默。在bfd中还有一个回声功能(echo消息,保活报文),回声功能启动后,会话的一端周期性地发送bfd回声报文,对端不对此报文进行处理,而只将此报文转发再发回给发送端。发送端根据是否能收到bfd会话报文来检测会话状态。bfd回声报文只用来检测直连网段的链路状态,而bfd控制报文还可以检测非直连网段的链路状态。在维护过程中,如果出现以下情况:1)sw1或者sw2的自身端口变为down,或者2)保活报文超时没有收到,sw会在openflow的ofp_port_status异步消息中的端口描述信息ofp_port上报bfddown状态,其中ofp_port信息结构体中的枚举字段ofp_port_state中的第4个bit置为代表ofpps_bfd_down,即bfd检测结果。控制器中,bfdm判断ofpps_bfd_down一旦该标识位为置位(0或者1),则表示bfd 检测失败,链路故障。从而将该事件通知其他使用该链路的模块,例如路径管理和组表管理模块,调整流表和组表。同时,bfd检测链路故障的消息被bfdm捕获后,bfdm向交换机发送消息删除sw上的会话数据区,自此,bfd会话从sw上被删除。图10为根据本发明优选实施例一的链路检测流程图,如图10所示,包括:步骤s1002:通过图2的方式探测到网络topo,网络topo稳定后,lldp的发送频率调低。步骤s1004:控制器分别通过netconfig协议向sw1和sw2下发bfd配置参数,也称作控制报文。例如bfd启动开关,控制报文时常,接收时间间隔,会话超时时长,管理地址等。步骤s1006:sw1和sw2上形成各自的bfd会话。步骤s1008:sw2周期性的向sw1发送保活消息,sw1接收保活消息。为了阐述方便,图10中只展示了sw2向sw1发送保活消息的示例。实际操作中,sw1也向sw2发送保活消息。进行双向链路探测。步骤s1010:如果sw1在规定的时间内收到了bfd保活消息,则判定链路正常;如果sw1发生以下事件:交换机端口变为down,或者物理链路故障,或者交换机自身处理数据包拥塞,最终导致bfd会话保活失败,控制器则判定链路(link)探测到故障,即判断sw1->sw2的链路故障。步骤s1012:sw1通过port_status消息向控制器上报该事件。消息的详细设置参见对图8对应描述。步骤s1014-s1018:控制器根据链路故障事件,结合topo信息,调整路径及组表,流表,并下发到对应的交换机,修改交换机上的转发行为,使得业务数据切换到其他的畅通的备用路径上,从而保证业务不中断。其中,进行调整流表和组表的交换机未必只是sw1,可能是与该链路有关的多个交换机。其中,控制器在检测到bfd检测链路故障后,还会向交换机下发删除消息,删除交换机上的bfd配置参数和bfd会话(图10中未画出)。步骤s1020:lldp探测报文的被调低后,频率低于bfd保活报文,因此控制器通过lldp的判断链路故障要晚于bfd。链路故障期间,bfd的会话被从交换机上删除,因此bfd保活的机制不会执行和生效。步骤s1022:链路故障恢复后,控制器通过lldp机制重新探测到链路,此时控制器 的bfdm会重复s1004-s1020的步骤,通过下发配置参数,保活等步骤,继续对链路进行保活,对故障进行上报。上述操作中,由于bfd的检测周期是毫秒级别的,因此保证了检测的速度,从而为快速切换链路提供了前提和保障,经过实测,bfd保活消息的时间间隔能够满足网络对链路故障的切换需求。另外,由于bfd的保活和检测只发生在交换之间和交换机内部,只有在链路down掉的时候才上报控制,因此平常状态下,保活报文不会对控制器造成额外的负荷,降低了控制器的负担。优选实施例二在本发明优选实施例二中提供了一种链路快速检测的方法,图11是根据本发明优选实施例二的建立会话示意图,如图11所示,控制器中设置bfd管理单元bfdm。步骤s1102:bfdm通过netconfig协议向受控交换机sw1下发bfd控制报文,也称作配置参数,例如bfd启动开关,控制报文时时长接收时间间隔,会话超时时长,管理地址等。sw2为非受控交换机,因此bfd参数不会通过控制器获得的,而是预先在交换机之上配置的。步骤s1104:交换机sw1上被配置参数,如果sw2上也配置了对应的bfd参数,会发起会话协商,从而建立两交换机之间的bfd会话。其中,协商过程是在sw2和控制器之间发生的,sw1只对协商消息进行转发和上送,协商参数的处理由控制器代处理。其中,本发明优选实施例二与与优选实施例一的不同之处,优选实施例一中,会话协商在控制器的bfdm内部已经完成,因此下发到sw1和sw2的配置参数直接形成bfd会话;本实施例中,控制器中的bfdm要代表sw1与非受控交换机sw2进行会话协商,从而建立sw1与sw2之间的bfd会话。bfd会话建立后,会话进入保活阶段,在保活过程中,如果出现以下情况:1)sw1自身端口变为down,或者2)收到交换机sw2变为down的消息。sw1检测到上述两个事件的其中之一,sw1会在openflow的port_status异步消息中的portstate上报bfddown状态,其中portstate的ofpps_bfd_down位用来表示bfd检测结果。控制器判断ofpps_bfd_down一旦该标识位置位(0或者1),则表示bfd检测到链路故障。从而将该事件通知使用路径的其他模块,比如路径管理和组表管理模块,进而调整流表和组表。同时,bfd检测失败的消息被bfdm捕获后,bfdm发送消息删除sw1上的会话数据区,自此,bfd会话从sw1上被删除。图12为根据本发明优选实施例二的快速链路检测的操作流程参加图,如图12所示:步骤s1200:sw2是传统的非受控交换机,其上配置了bfd参数,等待bfd会话协商和建立。步骤s1202:通过图2的方式探测到网络topo。网络拓扑稳定后,lldp的发送频率调低。步骤s1204:控制器的bfdm功能模块通过netconfig协议向sw1下发bfd配置信息,也称作控制报文。例如bfd启动开关,控制报文时长,接收时间间隔,会话超时时长,管理地址等。步骤s1206:控制器的bfdm代sw1与非受控交换机sw2发起bfd会话协商,协商完成后,建立sw1和sw2之间的bfd会话。步骤s1208:sw2向sw1发送保活消息。周期性的发送用于持续保活。为了阐述方便,图12中只展示了sw2向sw1发送保活消息的示例。实际操作中,sw1也向sw2发送保活消息。进行双向链路探测。步骤s1210:如果sw1在规定的时间内收到了bfd保活消息,则判定链路正常;如果sw11)自身端口down,或者2)bfd保活报文超时没有收到,则认为bfd检测失败,判断sw2->sw1的链路故障。步骤s1212:sw1通过port_status向控制器上报该事件。步骤s1214:控制器的bfdm收到链路故障事件信息后转发给其他模块,最终使得路径及组表流表被更新,并下发到对应的交换机,修改交换机上的转发行为,使得业务数据切换到其他的畅通的路径上,从而保证业务不中断。其中,进行流表和组表调整的交换机未必只是sw1,可能是与该链路有关的多个交换机。步骤s1216:lldp探测报文的频率低于bfd保活报文,因此控制器通过lldp的判断链路故障要晚于bfd。链路故障期间,bfd的会话被从交换机上删除,因此bfd保活的机制不会执行和生效。步骤s1218:发生故障的链路恢复后,控制器通过lldp机制重新探测到链路,控制器下发配置参数,保活等步骤,继续对链路进行保活,对故障进行上报。步骤s1220:bfdm会重复s1204-s1218的步骤。上述操作中,由于bfd的检测频率是毫秒级别的,从而为快速切换链路提供了前提 和保障。另外,由于bfd的保活和检测只发生在交换之间和交换机内部,只有在链路down掉的时候才上报控制,因此平常状态下,保活报文不会对控制器造成额外的负荷,降低了控制器的负担。以上优选实施例一与优选实施例二都是综合lldp和bfd技术进行快速链路探测的,bfd会话的配置的前提是lldp已经发现链路;bfd会话和配置参数的删除借助于bfd探测链路失败。一般场景下,这两种机制可以配合工作,没有问题。在bfd检测链路失败,bfdm将交换机sw上的bfd配置参数和bfd会话删除,并且调整了使用到该链路的路径和组表流表等信息;然而lldp没有探测到链路故障,因此也不会有lldp探测的链路恢复的事件通知。因此即使链路恢复了,没有故障了,因bfdm通知而修改了的路径、组表以及流表就无法恢复。针对该问题,本发明实施例还提出了一种bfdm主动回访的机制,图13为根据本发明实施例的bfdm主动回访的流程图,如图13所示,包括以下步骤:步骤s1302:sw检测到链路断链,sw通过port_status向控制器上报该事件。步骤s1304:控制器的bfd管理模块bfdm根据链路故障事件信息,首先通知交换机删除bfd配置参数和bfd会话,并通知使用链路信息的模块,比如组表管理,路径计算模块等。最终,控制器向对应的交换机下发修改的流表和组表,修改交换机上的转发行为,使得业务数据切换到其他的畅通的路径上,从而保证业务不中断。步骤s1306:bfd管理模块自身启动定时器。定时器时长需要大于lldp的探测周期。步骤s1308-s1310:如果在定时器超时后,bfdm并没有收到lldp探测的对应链路的断链的事件通知,bfdm判断链路为瞬断,为了确保链路正常,bfd到topo管理单元回访该链路的状态。步骤s1312-s1316:如果链路状态良好,bfd重新向两端交换机/一端交换机下发bfd配置参数,并且bfdm向使用链路信息的其他模块,比如路径计算,组表流表管理模块等,通知该链路恢复,业务可以切换回该链路。如果链路状态有问题,则bfd临时不执行任何操作。等待lldp再次探测到该链路恢复后,由topo管理单元再次通知bfdm链路恢复后,bfdm再向链路两端的交换机下发bfd配置参数,进行bfd链路探测。综上所述,本发明实施例达到了以下技术效果:解决了相关技术中,应用lldp探测链路状态而导致的检测链路时效性不高,并给控制器来了很大处理负担的问题,克服了lldp检测链路检测速度慢的问题,并且,由于bfd会话交互报文没有lldp数据量大,也大大减少了控制器负荷高的问题。在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的对象在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1