本发明涉及通信技术,尤其涉及一种报文转发路径切换方法、装置及网络设备。
背景技术:随着传输控制协议/因特网互联协议(TransmissionControlProtocol/InternetProtocol,简称为TCP/IP)网络的广泛应用,对网络可靠性方面的要求越来越高。在路由器和交换机等基础网络设备中集成嵌入防火墙卡,实现了网络和安全保护的高度一体化,已经得到越来越广泛的应用。当网络设备中集成的防火墙卡出现故障时,因为单点故障会导致数据流转发出现中断。现有技术中,为了解决因防火墙卡故障而导致断流的问题,网络设备上通常会部署旁路(BYPASS)功能。网络设备上的BYPASS功能会检测防火墙卡的工作状态,当检测到防火墙卡出现故障时,能够自动将数据流的转发路径切换到网络设备上进行直接转发,而不再将其发送给防火墙卡进行处理,从而保证在防火墙卡故障时数据流转发不中断。当BYPASS功能检测到防火墙卡故障恢复时,一般需要将数据流重新回切到防火墙卡进行安全保护处理。而此时,由于防火墙卡上不存在这些回切数据流的流表状态信息,因此需要重新对这些回切数据流进行合法状态检测并在通过合法性检测后建立流表信息。在该过程中,那些不符合防火墙卡状态连接检测的报文将会被丢弃,从而导致回切到防火墙卡的数据流可能出现中断的问题。
技术实现要素:本发明提供一种报文转发路径切换方法、装置及网络设备,用以解决数据流回切到防火墙卡可能出现中断的问题。第一方面提供一种报文转发路径切换方法,包括:网络设备检测嵌入所述网络设备的防火墙卡的状态;当检测到所述防火墙卡由故障恢复正常后,所述网络设备向所述防火墙卡发送数据流切换通告消息,以指示所述防火墙卡在预设的数据流回切期间,对回切到所述防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表,并将数据流的转发路径由所述网络设备回切到所述防火墙卡,以使所述数据流回切到所述防火墙卡进行转发。第二方面提供一种报文转发路径切换方法,包括:嵌入网络设备的防火墙卡接收所述网络设备发送的数据流切换通告消息,并接收由所述网络设备回切到所述防火墙卡的数据流;所述数据流切换通告消息是所述网络设备在所述防火墙卡由故障恢复正常后发送的;所述防火墙卡根据所述数据流切换通告消息,在预设的数据流回切期间对回切到所述防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表。第三方面提供一种报文转发路径切换装置,包括:检测模块,用于检测嵌入所述报文转发路径切换装置的防火墙卡的状态;发送模块,用于在所述检测模块检测到所述防火墙卡由故障恢复正常后,向所述防火墙卡发送数据流切换通告消息,以指示所述防火墙卡在预设的数据流回切期间,对回切到所述防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表,并将数据流的转发路径由所述网络设备回切到所述防火墙卡,以使所述数据流回切到所述防火墙卡进行转发。第四方面提供一种防火墙卡,嵌入网络设备实现,所述防火墙卡包括:接收模块,用于接收所述网络设备发送的数据流切换通告消息,并接收由所述网络设备回切到所述防火墙卡的数据流;所述数据流切换通告消息是所述网络设备在所述防火墙卡由故障恢复正常后发送的;流表建立模块,用于根据所述接收模块接收的所述数据流切换通告消息,在预设的数据流回切期间对回切到所述防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表。第五方面提供一种网络设备,包括第三方面提供的任一报文转发路径切换装置。本发明提供的报文转发路径切换方法、装置及网络设备,网络设备检测 嵌入网络设备的防火墙卡的状态,当检测到防火墙由故障恢复正常后,网络设备向防火墙卡发送数据流切换通告消息,以指示防火墙卡在预设的数据流回切期间对回切到所述防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表,并将数据流的转发路径切换回防火墙卡,使数据流回切到防火墙卡进行转发,这样对于那些不符合防火墙卡状态连接检测但属于预设的允许直接建立流表的数据流类型的数据流,在回切到防火墙卡后就不会发生中断的问题。附图说明图1为本发明实施例提供的一种报文转发路径切换方法的流程图;图2为本发明实施例提供的另一种报文转发路径切换方法的流程图;图3为本发明实施例提供的一种报文转发路径切换装置的结构示意图;图4为本发明实施例提供的一种防火墙卡的结构示意图。具体实施方式图1为本发明实施例提供的一种报文转发路径切换方法的流程图。如图1所示,所述方法包括:101、网络设备检测嵌入所述网络设备的防火墙卡的状态。102、当检测到防火墙卡由故障恢复正常后,网络设备向所述防火墙卡发送数据流切换通告消息,以指示所述防火墙卡在预设的数据流回切期间,对回切到所述防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表,并将数据流的转发路径由所述网络设备回切到所述防火墙卡,以使所述数据流回切到所述防火墙卡进行转发。在本实施例中,网络设备上嵌有防火墙卡,同时网络设备还具有BYPASS功能,会检测防火墙卡的状态,当检测到防火墙卡出现故障时,能够自动将数据流的转发路径切换到网络设备上进行直接转发,而不再将其发送给防火墙卡进行处理。可选的,网络设备可以向防火墙卡发送故障检测报文。当网络设备在预设的时间内没有收到防火墙卡针对该故障检测报文返回的应答报文时,则确定防火墙卡发生故障;当网络设备在上述预设的时间内收到防火墙卡针对该 故障检测报文返回的应答报文时,则确定防火墙卡工作正常。当判断出防火墙卡故障后,网络设备继续向防火墙卡发送故障检测报文,以判断防火墙卡是否由故障恢复正常,当网络设备在上述预设的时间内收到防火墙卡针对该故障检测报文返回的应答报文时,则确定防火墙卡由故障恢复工作,当网络设备在上述预设的时间内没有收到防火墙卡针对该故障检测报文返回的应答报文时,则确定防火墙卡仍然故障。当检测到防火墙卡由故障恢复正常后,网络设备一方面向防火墙卡发送数据流切换通告消息,以指示防火墙卡在预设的数据流回切期间,对回切到防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表,而不是在防火墙卡状态连接检测通过后再建立流表;另一方面将数据流的转发路径由网络设备切回防火墙卡,即数据流后续将继续通过防火墙卡进行转发处理。具体的,在防火墙卡上预设有数据流回切时间,例如可以是10分钟,但不限于此,那么从防火墙卡收到数据流切换通告消息开始的10分钟期间就是所述数据流回切期间。另外,防火墙卡上预设有允许直接建立流表的数据流类型,例如可以允许TCP的非SYN报文流直接建立流表,还可以是除ICMP数据流和TCP数据流之外的其他协议的数据。在现有技术中,防火墙卡会对到达的报文进行合法状态检测,例如对于TCP来说,SYN报文(即首报文)可以通过合法状态检测,并会建立流表,对于之后的报文就可以通过流表进行转发处理;如果第一个到达防火墙卡的报文是非SYN报文,则不会通过合法状态检测,该非SYN报文就会被丢弃,从而出现断流现象;对于ICMP来说,任何ICMP报文都可以通过合法状态检测,则不会出现断流现象;等等。在本实施例中,允许某些数据流类型在数据流回切期间直接建立流表,例如允许TCP的非SYN报文直接建立流表,这样当防火墙卡收到数据流切换通告消息后,在数据流回切期间会对那些回切到防火墙卡且允许直接建立流表的数据流直接建立流表,这样就可以避免这些数据流因不符合防火墙卡状态连接检测而造成的中断。在此说明,本实施例中设定的允许直接建立流表的数据流类型可以根据实际应用进行设定,例如如果按照现有技术处理,某类应用的数据流就会出现断流,而又不希望该类应用的数据流出现断流时,可以将该类应用的数据流设置为允许直接建立流表。在一可选实施方式中,网络设备发送给防火墙卡的数据流切换通告消息可以是:防火墙卡由故障恢复正常后接收到的网络设备发送的故障检测报文。也就是说,当防火墙卡在由故障恢复正常后第一次接收到网络设备发送的故障检测报文时,开始对那些回切到防火墙卡且允许直接建立流表的数据流直接建立流表。在此说明,数据流切换通告消息除了可以是故障检测报文之外,还可以是不同于故障检测报文的报文,该报文可专门用于指示防火墙卡对那些回切到防火墙卡且允许直接建立流表的数据流直接建立流表。在本实施例提供的方法中,网络设备检测嵌入网络设备的防火墙卡的状态,当检测到防火墙由故障恢复正常后,网络设备将数据流的转发路径切换回防火墙卡,使数据流回切到防火墙卡进行转发,并向防火墙卡发送数据流切换通告消息,以指示防火墙卡在预设的数据流回切期间对回切到所述防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表,这样对于那些不符合防火墙卡状态连接检测的报文在回切到防火墙卡后就不会发生中断的问题。图2为本发明实施例提供的另一种报文转发路径切换方法的流程图。如图2所示,所述方法包括:201、嵌入网络设备的防火墙卡接收所述网络设备发送的数据流切换通告消息,并接收由所述网络设备回切到所述防火墙卡的数据流;所述数据流切换通告消息是所述网络设备在所述防火墙卡由故障恢复正常后发送的。202、所述防火墙卡根据所述数据流切换通告消息,在预设的数据流回切期间对回切到所述防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表。在本实施例中,网络设备上嵌有防火墙卡,同时网络设备还具有BYPASS功能,会检测防火墙卡的状态,当检测到防火墙卡出现故障时,能够自动将数据流的转发路径切换到网络设备上进行直接转发,而不再将其发送给防火墙卡进行处理。进一步,当网络设备检测到防火墙卡由故障恢复正常后,一方面向防火墙卡发送数据流切换通告消息,以指示防火墙卡在预设的数据流回切期间,对回切到防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表,而不是在防火墙卡状态连接检测通过后再建立流表;另一方面 将数据流的转发路径由网络设备切回防火墙卡,即数据流后续将继续通过防火墙卡进行转发处理。基于此,嵌入网络设备的防火墙卡会接收网络设备在防火墙卡由故障恢复正常后发送的数据流切换通告消息,并会接收由所述网络设备回切到所述防火墙卡的数据流。可选的,网络设备可以通过向防火墙卡发送故障检测报文,来检测防洪墙卡的状态。基于此,在一可选实施方式中,防火墙卡接收的数据流切换通告消息可以是:网络设备在防火墙卡由故障恢复正常后继续发送的故障检测报文,但不限于此。具体的,在防火墙卡上预设有数据流回切时间,例如可以是10分钟,但不限于此,那么从防火墙卡收到数据流切换通告消息开始的10分钟期间就是所述数据流回切期间。另外,防火墙卡上预设有允许直接建立流表的数据流类型,例如可以允许TCP的非SYN报文流直接建立流表,还可以是除ICMP数据流和TCP数据流之外的其他协议的数据。在此说明,本实施例中设定的允许直接建立流表的数据流类型可以根据实际应用进行设定,例如如果按照现有技术处理,某类应用的数据流就会出现断流,而又不希望该类应用的数据流出现断流时,可以将该类应用的数据流设置为允许直接建立流表,并不限于上面提及的几种。则当防火墙卡接收到所述数据流切换通告消息后,在数据流回切期间会对那些回切到防火墙卡且允许直接建立流表的数据流直接建立流表,这样可以避免这些数据流因不符合防火墙卡状态连接检测而造成的中断。举例说明,以允许直接建立流表的数据流类型包括TCP的非SYN报文流为例,则对于TCP协议报文,当防火墙卡收到TCPACK等非SYN报文时,直接建立握手成功连接(ESTABLISHED)状态的流表信息,不受安全访问控制策略等处理;当收到TCP的SYN报文时,则按照原有的防火墙卡状态连接检测流程和安全访问控制策略进行合法TCP连接的判断,在通过后,建立ESTABLISHED状态的流表信息。对于ICMP协议报文,可以按照原有的防火墙卡状态连接检测流程和安全访问控制策略进行合法握手连接的判断,在通过后,建立ESTABLISHED状态的流表信息。或者,对于ICMP协议报文,也可以直接建立ESTABLISHED状态的 流表信息。对于除TCP和ICMP之外其他协议的报文,例如UDP/RAWIP等,可以不受安全访问策略控制,直接建立ESTABLISHED状态的流表信息。即本实施例中预设的允许直接建立流表的数据流类型还可以是除TCP和ICMP之外其他协议的报文。由上述可见,在数据流回切期间,对于数据流转发回切到防火墙卡前已经在使用的业务应用,可以通过该数据流回切期间回切的数据流报文来重建流表,从而保证业务应用在数据流回切到防火墙卡时不发生中断。进一步,在所述数据流回切时间结束,即数据流回切结束后,所述防火墙卡停止对回切到所述防火墙卡的属于所述预设的允许直接建立流表的数据流类型的数据流直接建立流表。这样可以方便防火墙卡后续对经由防火墙卡转发的数据流进行正常的安全保护处理。由上述可见,防火墙卡与网络设备相配合,在接收到网络设备在防火墙卡由故障恢复正常后发送的数据流切换通告消息后,在预设的数据流回切期间对回切到所述防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表,这样对于那些不符合防火墙卡状态连接检测的报文在回切到防火墙卡后就不会发生中断的问题。图3为本发明实施例提供的一种报文转发路径切换装置的结构示意图。如图3所示,所述装置包括:检测模块31和发送模块32。检测模块31,用于检测嵌入所述报文转发路径切换装置的防火墙卡的状态。发送模块32,与检测模块31连接,用于在检测模块31检测到所述防火墙卡由故障恢复正常后,向所述防火墙卡发送数据流切换通告消息,以指示所述防火墙卡在预设的数据流回切期间,对回切到所述防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表,并将数据流的转发路径由所述网络设备回切到所述防火墙卡,以使所述数据流回切到所述防火墙卡进行转发。在一可选实施方式中,发送模块32还用于向所述防火墙卡发送故障检测报文,以供检测模块31检测所述防火墙卡的状态。具体的,在正常情况下,防火墙卡在接收到故障检测报文后需要在预设的时间内返回应答报文。基于 此,检测模块31具体可在发送模块32发送所述故障检测报文后,检测在预设的时间内是否收到所述防火墙卡针对所述故障检测报文返回的应答报文,如果在预设的时间内接收到所述应答报文,则确定所述防火墙卡处于正常状态;反之,确定所述防火墙卡故障。进一步,为了检测防火墙卡是否由故障恢复正常,发送模块32在所述防火墙卡故障后,继续向所述防火墙卡发送故障检测报文。基于此,检测模块31具体可用于在发送模块32发送所述故障检测报文后,检测在预设的时间内是否收到所述防火墙卡针对所述故障检测报文返回的应答报文,如果在预设的时间内接收到所述应答报文,则确定所述防火墙卡从故障恢复正常。基于上述,发送模块32向所述防火墙卡发送的数据流切换通告消息为:发送模块32在所述防火墙卡由故障恢复正常后继续向所述防火墙卡发送的所述故障检测报文,但不限于此。在此说明,本实施例中所述预设的允许直接建立流表的数据流类型可以包括:除ICMP数据流和TCP数据流之外的其他协议的数据流、以及TCP的非SYN报文流。本实施例提供的报文转发路径切换装置的各功能模块可用于执行图1所示方法实施例的流程,其具体工作原理不再赘述,详见方法实施例的描述。本实施例提供的报文转发路径切换装置,测嵌入该装置的防火墙卡的状态,当检测到防火墙由故障恢复正常后,向防火墙卡发送数据流切换通告消息,以指示防火墙卡在预设的数据流回切期间对回切到所述防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表,并将数据流的转发路径切换回防火墙卡,使数据流回切到防火墙卡进行转发,这样对于那些不符合防火墙卡状态连接检测但属于预设的允许直接建立流表的数据流类型的数据流,在回切到防火墙卡后就不会发生中断的问题。本实施例提供一种网络设备,包括图3所示实施例提供的报文转发路径切换装置。本实施例提供的网络设备可以是路由器和交换机等基础网络设备,但不限于此。对于那些不符合防火墙卡状态连接检测但属于预设的允许直接建立流表的数据流类型的数据流,本实施例的网络设备同样可以保证其在回切到防火墙卡后不会发生中断的问题。图4为本发明实施例提供的一种防火墙卡的结构示意图。该防火墙卡需 要嵌入网络设备中实现,如图4所示,所述防火墙卡包括:接收模块41和流表建立模块42。接收模块41,用于接收所述网络设备发送的数据流切换通告消息,并接收由所述网络设备回切到所述防火墙卡的数据流;所述数据流切换通告消息是所述网络设备在所述防火墙卡由故障恢复正常后发送的;流表建立模块42,与接收模块41连接,用于根据接收模块41接收的所述数据流切换通告消息,在预设的数据流回切期间对回切到所述防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表。在一可选实施方式中,接收模块41接收的所述数据流切换通告消息为:所述防火墙卡由故障恢复正常后接收到的网络设备发送的故障检测报文。在一可选实施方式中,流表建立模块42还用于在所述数据流回切时间结束后,停止对回切到所述防火墙卡的属于所述预设的允许直接建立流表的数据流类型的数据流直接建立流表。在此说明,本实施例中所述预设的允许直接建立流表的数据流类型可以包括:除ICMP数据流和TCP数据流之外的其他协议的数据流、以及TCP的非SYN报文流。本实施例提供的防火墙卡,与前述实施例提供的网络设备相配合,在由故障恢复正常后,可以根据网络设备发送的数据流切换通告消息,在预设的数据流回切期间对回切到所述防火墙卡的属于预设的允许直接建立流表的数据流类型的数据流直接建立流表,并对回切到防火墙卡的数据流进行转发处理,这样对于那些不符合防火墙卡状态连接检测但属于预设的允许直接建立流表的数据流类型的数据流,在回切到防火墙卡后就不会发生中断的问题。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。