CN105591776B - Sdn网络设备的主备链路切换方法和装置 - Google Patents
Sdn网络设备的主备链路切换方法和装置 Download PDFInfo
- Publication number
- CN105591776B CN105591776B CN201410571748.7A CN201410571748A CN105591776B CN 105591776 B CN105591776 B CN 105591776B CN 201410571748 A CN201410571748 A CN 201410571748A CN 105591776 B CN105591776 B CN 105591776B
- Authority
- CN
- China
- Prior art keywords
- packet
- link
- message
- controller
- network equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了SDN网络设备的主备链路切换方法和装置。该方法包括:设置主用链路能力为接收packet_in报文且不处理packet_out报文,建立目标主用链路,原主用链路转为备用链路;设置该备用链路为等价链路、且能力为接收packet_out报文、不上送packet_in报文,原主用控制器通过该等价链路处理packet_in报文;存储的packet_in报文处理完毕后,设置该等价链路为备用链路,通知目标主用控制器开始处理packet_in报文和packet_out报文。应用本发明实施例,能够在主备链路切换时减少甚至避免SDN网络设备的业务数据包丢包现象。
Description
技术领域
本发明涉及通信技术领域,特别是涉及SDN网络设备的主备链路切换方法和装置。
背景技术
SDN网络(Software Defined Network,软件定义网络)通常由SDN网络设备(Switch)和SDN控制器(Controller)组成。其中,SDN控制器是控制中心,根据用户的配置或者动态运行的协议生成流表发送到SDN网络设备。SDN网络设备接收SDN控制器下发的流表,并根据流表进行报文处理。SDN控制器和SDN网络设备根据SDN通信接口标准进行通信,其中,Openflow是常用的SDN通信接口标准。
在采用Openflow协议的SDN网络组网应用中,存在着SDN控制器集群,每个SDN控制器集群包括多个SDN控制器,SDN网络设备以所述集群中的一个SDN控制器为主用控制器,其他一个或多个SDN控制器为备用控制器。当SDN控制器集群内的某个SDN控制器发生升级、恢复、故障、与SDN网络设备的连接断开等涉及集群内SDN控制器切换的动作时,将引起以该SDN控制器为主用控制器的SDN网络设备的主备链路切换,即,将该SDN网络设备与当前主用控制器之间的主用链路切换为备用链路,与集群内的其他SDN控制器建立主用链路,从而将该SDN网络设备的业务数据流从当前主用SDN控制器切换到其他SDN控制器中。
在进行SDN网络设备的主备链路切换时,如何减少甚至避免SDN网络设备的业务数据包丢包现象,是当前亟需解决的技术问题。
发明内容
有鉴于此,本发明提出了SDN网络设备的主备链路切换方法和装置,能够在采用Openflow协议的SDN网络设备的进行主备链路切换时,减少甚至避免SDN网络设备的业务数据包丢包现象。
本发明提出的技术方案是:
一种SDN网络设备的主备链路切换方法,该方法包括:
设置主用链路能力为接收并存储packet_in报文、且不处理packet_out报文,建立目标主用链路,原主用链路转换为备用链路;
设置所述备用链路为等价链路,该等价链路的能力为接收packet_out报文、且不上送packet_in报文,所述原主用控制器通过所述等价链路处理存储的packet_in报文;
所述存储的packet_in报文处理完毕后,设置所述等价链路为备用链路,通知所述目标主用控制器开始处理packet_in报文和packet_out报文。
一种SDN控制器中的主备链路切换装置,该装置包括链路设置模块和报文处理模块,当该SDN控制器作为SDN网络设备的原主用控制器时:
所述链路设置模块,用于设置主用链路能力为接收并存储packet_in报文、且不处理Packet_out报文,在建立主用链路建立时,原主用链路转换为备用链路,设置所述备用链路为等价链路,该等价链路的能力为接收packet_out报文、且不上送packet_in报文,所述存储的packet_in报文处理完毕后,设置所述等价链路为备用链路;
所述报文处理模块,用于通过原主用链路接收并存储SDN网络设备上传的packet_in报文、且不处理Packet_out报文,通过所述等价链路处理存储的packet_in报文,所述存储的packet_in报文处理完毕后,通知所述目标主用控制器开始处理packet_in报文和packet_out报文。
由上述技术方案可见,本发明实施例中,在Openflow网络中进行SDN网络设备的主备链路切换时,首先,设置主用链路能力为接收并存储packet_in报文、且不处理Packet_out报文,SDN网络设备的目标主用控制器建立目标主用链路,原主用链路转换为备用链路,然后,SDN网络设备的原主用控制器设置所述备用链路为等价链路,该等价链路的能力为接收packet_out报文、且不上送packet_in报文,所述原主用控制器通过所述等价链路处理存储的packet_in报文,最后,在所述存储的packet_in报文处理完毕后,设置所述等价链路为备用链路,通知所述目标主用控制器开始处理packet_in报文和packet_out报文。
在Openflow网络中,SDN网络设备和SDN控制器之间通过packet_in报文和packet_out报文交互业务数据包,因此,只要在进行SDN网络设备的主备链路切换时,减少甚至避免packet_in报文和packet_out报文的丢包现象,就能够减少甚至避免SDN网络设备的业务数据包丢包现象。
对于packet_in报文,本发明实施例中,首先通过SDN网络设备与原主用控制器之间的原主用链路将packet_in报文上传至原主用控制器,当SDN网络设备与目标主用控制器建立主用链路时,由于主备链路的原子性,原主用链路自动转换为备用链路,这时,SDN网络设备通过与目标主用控制器之间的主用链路上传packet_in报文。对于SDN网络设备已经上传到原主用控制器的packet_in报文,通过将SDN网络设备与原主用控制器之间的链路设置为等价链路,利用所述等价链路将存储在原主用控制器上的packet_in报文的处理结果发给SDN网络设备,实现了在将主用链路切换到目标控制器之前上传到原主用控制器的packet_in报文不丢包。
而且,由于所述等价链路的能力被设置为只接收packet_out报文、不上送packet_in报文,因此,在SDN网络设备通过等价链路接收原主用控制器对packet_in报文的处理结果时,SDN网络设备还是将packet_in报文上传到目标主用控制器中,而不会上传到原主用控制器,因此,使得主备链路切换过程能够继续进行,且能够保证在将主用链路切换到目标控制器之后产生的packet_in报文不丢包。
对于packet_out报文,由于SDN网络设备将主用链路由原主用控制器切换到目标主用控制器上时,原主用链路自动转换为备用链路,SDN网络设备无法通过备用链路接收packet_out报文,因此,本发明实施例通过预先将原主用链路的能力设置为不处理packet_out报文,避免了在主用链路切换到目标主用控制器的瞬间,原主用控制器已经正常发送了packet_out报文,但是SDN网络设备却由于原主用链路已经转换为备用链路而无法接收原主用控制器发送的packet_out报文,因而避免了原主用控制器上的packet_out报文出现丢包现象。
通过预先将与目标主用控制器建立的主用链路的能力设置为不处理packet_out报文,然后通过等价链路将原主用控制器的packet_out报文接收完毕以后,再设置与目标主用控制器建立的主用链路能够处理packet_out报文,即,通知目标主用控制器处理packet_in报文和packet_out报文,可以实现packet_out报文的保序,避免由于顺序错误而造成packet_out报文丢包。
附图说明
图1是本发明实施例提供的SDN网络设备的主备链路切换方法流程图。
图2是本发明实施例提供的SDN控制器升级的场景下进行SDN网络设备主备链路切换的流程图。
图3是本发明实施例提供的应用实例一的组网示意图。
图4是应用实例一的主备链路切换过程中步骤301的网络连接和数据流向示意图。
图5是应用实例一的主备链路切换过程中步骤302的网络连接和数据流向示意图。
图6是应用实例一的主备链路切换过程中步骤303的网络连接和数据流向示意图。
图7是应用实例一的主备链路切换过程中步骤304的网络连接和数据流向示意图。
图8是应用实例一的主备链路切换过程中步骤305的网络连接和数据流向示意图。
图9是本发明实施例提供的SDN控制器在控制器集群中新开始工作的场景下进行SDN网络设备主备链路切换的流程图。
图10是本发明实施例提供的应用实例二的组网示意图。
图11是应用实例二的主备链路切换过程中步骤1002的网络连接和数据流向示意图。
图12是应用实例二的主备链路切换过程中步骤1003的网络连接和数据流向示意图。
图13是应用实例二的主备链路切换过程中步骤1004的网络连接和数据流向示意图。
图14是应用实例二的主备链路切换过程中步骤1005的网络连接和数据流向示意图。
图15是应用实例二的主备链路切换过程中步骤1006的网络连接和数据流向示意图。
图16为本发明实施例SDN控制器的硬件结构连接图。
图17是本发明实施例提供的主备链路切换装置结构示意图。
具体实施方式
在Openflow网络中,SDN网络设备常常需要将一些业务数据上送给其主用控制器进行处理,在进行SDN网络设备的主备链路切换时,一般情况下,SDN网络设备的一部分业务数据已经上送给原主用控制器进行处理,并且,不断有新的业务数据需要上送给主用控制器进行处理。在SDN网络设备与目标主用控制器建立主用链路的同时,基于主备链路的原子性,原主用链路自动转换为备用链路,由于主用链路和备用链路的数据处理能力不同,例如,备用链路不允许处理packet_out报文,默认情况下,主用链路既可以处理packet_in报文、也可以处理packet_out报文,因此,如何将已经上送到原主用控制器的业务数据切换到目标主用控制器中而不丢包,以及如何保证新的需要上送给主用控制器的业务数据不丢包,是当前SDN网络设备进行主备链路切换时需要解决的技术问题。
图1是本发明实施例提供的SDN网络设备的主备链路切换方法流程图。
如图1所示,该流程包括:
步骤101,设置主用(Master)链路能力为接收并存储packet_in报文、且不处理Packet_out报文,建立目标主用链路,原主用链路转换为备用(Slave)链路。
步骤102,设置所述备用链路为等价(Equal)链路,该等价链路的能力为接收packet_out报文、且不上送packet_in报文,所述原主用控制器通过所述等价链路处理存储的packet_in报文。
步骤103,所述存储的packet_in报文处理完毕后,设置所述等价链路为备用链路,通知所述目标主用控制器开始处理packet_in报文和packet_out报文。
只要SDN控制器能够执行图1所示的各项动作,就可以应用本发明实施例,例如,在SDN控制器升级的场景下,或者在SDN控制器在控制器集群中新开始工作的场景下,比如SDN控制器故障排除后、或升级完成后,将原来属于该SDN控制器的SDN网络设备切回的场景,都可以应用图1所示方法。
图2是本发明实施例提供的SDN控制器升级的场景下进行SDN网络设备主备链路切换的流程图。
如图2所示,该流程包括:
步骤201,原主用控制器将自身与该SDN网络设备之间的原主用链路能力设置为接收并存储packet_in报文、且不处理Packet_out报文,所述原主用控制器接收并存储所述SDN网络设备发送的packet_in报文。
本步骤中,原主用控制器将SDN网络设备发送的packet_in报文全部存入缓存队列不做其他处理。
步骤202,原主用控制器通知所述目标主用控制器将所述SDN网络设备与所述目标主用控制器之间的链路更新为主用链路,且设置更新后的主用链路的能力为接收并存储packet_in报文、且不处理Packet_out报文。
本步骤中,原主用控制器将升级事件通知给目标主用控制器,目标主用控制器接收到原主用控制器的通知后,先在该目标主用控制器上将所述SDN网络设备与该目标主用控制器之间的链路设置为主用链路,且设置该主用链路的能力为接收并存储packet_in报文、且不处理Packet_out报文,然后,所述目标主用控制器向所述SDN网络设备下发将该SDN网络设备与该目标主用控制器之间的链路切换为主用链路的更新消息,所述SDN网络设备收到所述更新消息后,将该SDN网络设备与该目标主用控制器之间的链路切换为主用链路,此时,由于SDN网络设备上主备链路切换的原子性,所述SDN网络设备与原主用控制器之间的链路自动转换为备用链路。
步骤203,原主用控制器设置自身与所述SDN网络设备之间的链路在等价模式的能力为接收packet_out报文、且不上送packet_in报文,向所述SDN网络设备下发将与所述原主用控制器之间的链路设置为等价链路的消息,原主用控制器处理步骤201中存储的packet_in报文。
步骤204,在原主用控制器将存储的packet_in报文全部处理完毕后,原主用控制器设置所述等价链路为备用链路。
优选地,在原主用控制器将存储的packet_in报文全部处理完毕后,还执行如下操作:所述原主用控制器将自身与所述SDN网络设备之间的链路在等价模式的能力设置为默认态,即设置为接收packet_out报文、且能够上送packet_in报文,从而避免对原主用控制器以后的业务处理产生影响。
步骤205,原主用控制器通知所述目标主用控制器开始处理packet_in报文和packet_out报文。
至此,SDN网络设备的主备链路切换过程完成,SDN网络设备的业务零丢包地从原主用控制器切换到目标主用控制器上。
关于图2所示流程,下面结合应用实例一进一步说明,具体请参见图3-图8。图3-图8中,箭头的方向为流量的方向。
图3是本发明实施例提供的应用实例一的组网示意图。
如图3所示,控制器A和控制器B组成一个控制器集群,控制器A为该集群的主用控制器,控制器B为该集群的备用控制器,控制器与SDN网络设备之间采用openflow协议进行通信。SDN网络设备A上的openflow实例A(Dpid A)和SDN网络设备B上的openflow实例B(Dpid B)与该控制器集群相连。
图3所示控制器集群工作在负载均衡模式下,Dpid A的主用控制器为控制器A,Dpid B的主用控制器为控制器B,Dpid A与控制器A之间的链路Dpid A-Con A为主用链路,Dpid A与控制器B之间的链路Dpid A-Con B为备用链路,Dpid B与控制器A之间的链路DpidB-Con A为备用链路,Dpid B与控制器B之间的链路Dpid B-Con B为主用链路。
当控制器A需要升级时,通过用户界面(UI)设置控制器A进入升级准备状态,控制器A中的备份组模块(Region模块)收到升级准备消息后,执行如下步骤:
步骤301,在控制器A上对于Dpid A-Con A设置为只接收packet_in报文、且不处理packet_out报文,将接收到的packet_in报文全部存入缓存队列。关于步骤301,具体请参见图4。
图4是应用实例一的主备链路切换过程中步骤301的网络连接和数据流向示意图。
如图4所示,链路Dpid A-Con A的数据流向变为单向,即控制器A对于Dpid A只接收packet_in报文,不下发packet_out报文。
步骤302,将控制器A的升级事件通知给控制器B。控制器B收到升级消息后,在控制器B上将Dpid A-Con B的角色由备用链路(Slave)更新为主用链路(Master),通过该DpidA-Con B接收并缓存packet_in报文、且不处理packet_out报文。然后控制器B向SDN网络设备A下发将Dpid A-Con B切换为主用链路的消息。此时,由于SDN网络设备A上主备链路切换的原子性,Dpid A-Con A的角色变为备用链路。关于步骤302,具体请参见图5。
图5是应用实例一的主备链路切换过程中步骤302的网络连接和数据流向示意图。
如图5所示,链路Dpid A-Con A变为备用链路,Dpid A-Con B变为主用链路,且Dpid A-Con B的数据流向为单向,即,控制器B对于Dpid A只接收packet_in报文,不下发packet_out报文。
步骤303,控制器A通过openflow协议的SET_ASYNC功能设置SDN网络设备A的DpidA-Con A在等价(Equal)模式为只接收packet_out报文,不上送packet_in报文。控制器A向SDN网络设备A下发将Dpid A-Con A的角色切换为Equal态的消息,此时,控制器A处理在步骤301中存储在缓冲队列内的packet_in报文。关于步骤303,具体请参见图6。
图6是应用实例一的主备链路切换过程中步骤303的网络连接和数据流向示意图。
如图6所示,链路Dpid A-Con A变为等价链路,且Dpid A-Con A的数据流向为单向,即,控制器A对于Dpid A不接收packet_in报文,只下发packet_out报文。
步骤304,当控制器A上积压的packet_in报文处理完毕后,更新控制器A上Dpid A-Con A的角色为备用链路,并向SDN网络设备A下发将Dpid A-Con A的角色更新为备用链路的消息,然后控制器A通过openflow协议的SET_ASYNC功能设置控制器A的Dpid A-Con A在等价模式能够上送packet_in报文和接收packet_out报文。关于步骤304,具体请参见图7。
图7是应用实例一的主备链路切换过程中步骤304的网络连接和数据流向示意图。
如图7所示,链路Dpid A-Con A变更为备用链路。
步骤305,控制器A通知控制器B开始处理packet_in报文和packet_out报文。至此,Dpid A的主备链路切换过程完成,Dpid A的业务零丢包地成功切换到控制器B上。关于步骤305,具体请参见图8。
图8是应用实例一的主备链路切换过程中步骤305的网络连接和数据流向示意图。
如图8所示,链路Dpid A-Con B的数据流向变为双向,即,控制器B既可以接收DpidA上送的packet_in报文,也可以向Dpid A下发packet_out报文。
图9是本发明实施例提供的SDN控制器在控制器集群中新开始工作的场景下进行SDN网络设备主备链路切换的流程图。
如图9所示,该流程包括:
步骤901,将控制器集群需要同步的上层应用数据同步到该新开始工作的SDN控制器中,一般地,依赖于Region模块的应用数据需要进行同步,以保证新开始工作的控制器和其他控制器拥有相同的处理能力。该新开始工作的SDN控制器同步完上层应用数据以后,根据负载均衡算法判断出自身应为所述SDN网络设备的目标主用控制器时,将判断结果通知给所述SDN网络设备的原主用控制器。
步骤902,同步骤201。
步骤903,目标主用控制器将所述SDN网络设备与所述目标主用控制器之间的链路更新为主用链路,且设置更新后的主用链路的能力为接收并存储packet_in报文、且不处理Packet_out报文。然后,目标主用控制器通知原主用控制器执行步骤904。
步骤904-步骤906,同步骤203-步骤205。
关于图9所示流程,下面结合应用实例二进行进一步说明,具体请参见图10-图15。
图10是本发明实施例提供的应用实例二的组网示意图。
如图10所示,控制器A和控制器B组成一个控制器集群,控制器与SDN网络设备之间采用openflow协议进行通信。SDN网络设备A上的openflow实例A(Dpid A)和SDN网络设备B上的openflow实例B(Dpid B)与该控制器集群相连,其中,Dpid A和Dpid B都以控制器B为主用控制器,控制器A升级完成或者刚刚排除故障后恢复启动。
控制器A恢复后,需要将集群内另一台控制器上原本属于自身的openflow实例(在图10中,即为位于网络设备A上的Dpid A)切换回来,以保证两个控制器的负载均衡。
SDN控制器恢复启动时的网络设备回切过程与SDN控制器升级时的网络设备切换过程的不同点在于,回切过程中需要保证上层应用数据备份完成后再进行SDN网络设备的主备链路切换。而SDN控制器升级时,主用控制器和备用控制器上的上层应用数据是实时备份的,两者是一致的。因此,需要确保控制器A启动等待上层数据备份完成后再处理openflow连接。
如图10所示,控制器A恢复启动,网络设备A、网络设备B与控制器A建立openflow连接Dpid A-Con A和Dpid B-Con A,链路Dpid A-Con A和Dpid B-Con A均为等价链路。此时,若控制器A还未完成上层应用数据的备份,则控制器A的region模块就不进行角色选择,此时上送的packet_in报文丢弃不处理。
当控制器A上的上层应用数据备份完成后,进入回切流程,该回切流程包括:
步骤1001,控制器A通过负载分担算法,计算出Dpid A的主用控制器应该回切至控制器A上,Dpid B的主用控制器仍应为控制器B。
步骤1002,控制器A通知控制器B对于Dpid A-Con B上送的packet_in只接收,不处理packet_out报文,接收到的packet_in报文全都存入缓存队列。关于步骤1002,具体请参见图11。
图11是应用实例二的主备链路切换过程中步骤1002的网络连接和数据流向示意图。
如图11所示,链路Dpid A-Con B的数据流向为单向,即只接收packet_in报文,不处理packet_out报文。
步骤1003,控制器A将Dpid A-Con A的角色更新为主用链路(Master),通过该DpidA-Con A接收并缓存packet_in报文、且不处理packet_out报文。然后控制器A向SDN网络设备A下发将Dpid A-Con A切换为主用链路的消息。此时,由于SDN网络设备A上主备链路切换的原子性,Dpid A-Con B的角色变为备用链路。关于步骤1003,具体请参见图12。
图12是应用实例二的主备链路切换过程中步骤1003的网络连接和数据流向示意图。
如图12所示,Dpid A-Con A为主用链路,Dpid A-Con B为备用链路,且Dpid A-ConA只接收packet_in报文,不下发packet_out报文。
步骤1004,控制器A通知控制器B通过openflow协议的SET_ASYNC功能设置SDN网络设备A的Dpid A-Con B在等价(Equal)模式为只接收packet_out报文,不上送packet_in报文。控制器B向SDN网络设备A下发将Dpid A-Con B的角色切换为Equal态的消息,此时,控制器B处理在步骤1002中存储在缓冲队列内的packet_in报文。关于步骤1004,具体请参见图13。
图13是应用实例二的主备链路切换过程中步骤1004的网络连接和数据流向示意图。
如图13所示,链路Dpid A-Con B变为等价链路,且Dpid A-Con B的数据流向为单向,即,控制器B对于Dpid A不接收packet_in报文,只下发packet_out报文。
步骤1005,当控制器B上积压的packet_in报文处理完毕后,更新控制器B上DpidA-Con B的角色为备用链路,并向SDN网络设备A下发将Dpid A-Con B的角色更新为备用链路的消息,然后控制器B通过openflow协议的SET_ASYNC功能设置控制器B的Dpid A-Con B在等价模式能够上送packet_in报文和接收packet_out报文。关于步骤1005,具体请参见图14。
图14是应用实例二的主备链路切换过程中步骤1005的网络连接和数据流向示意图。
如图14所示,链路Dpid A-Con B变更为备用链路。
步骤1006,控制器B通知控制器A开始处理packet_in报文和packet_out报文。至此,Dpid A的主备链路切换过程完成,Dpid A的业务零丢包地成功切换到控制器A上。关于步骤1006,具体请参见图15。
图15是应用实例二的主备链路切换过程中步骤1006的网络连接和数据流向示意图。
如图15所示,链路Dpid A-Con A的数据流向变为双向,即,控制器A既可以接收Dpid A上送的packet_in报文,也可以向Dpid A下发packet_out报文。
由上述描述可见,本发明实施例具有以下有益技术效果:
本发明实施例中,通过对SDN网络设备与原主用控制器之间的链路之间的链路和与目标主用控制器之间的链路进行设置,包括设置链路的状态和相应状态下链路的数据处理能力,SDN网络设备和SDN控制器根据相应的链路设置,执行相应的数据处理操作,能够避免在进行SDN网络设备的主备链路切换时出现业务数据包丢包现象。具体地:
对于packet_in报文,首先通过SDN网络设备与原主用控制器之间的原主用链路将packet_in报文上传至原主用控制器,当SDN网络设备与目标主用控制器建立主用链路时,SDN网络设备通过与目标主用控制器之间的主用链路上传packet_in报文。对于SDN网络设备已经上传到原主用控制器的packet_in报文,通过将SDN网络设备与原主用控制器之间的链路设置为等价链路,利用所述等价链路将存储在原主用控制器上的packet_in报文的处理结果发给SDN网络设备,实现了在将主用链路切换到目标控制器之前上传到原主用控制器的packet_in报文不丢包。
而且,由于所述等价链路的能力被设置为只接收packet_out报文、不上送packet_in报文,因此,在SDN网络设备通过等价链路接收原主用控制器对packet_in报文的处理结果时,SDN网络设备还是将packet_in报文上传到目标主用控制器中,而不会上传到原主用控制器,因此,能够保证在将主用链路切换到目标控制器之后产生的packet_in报文不丢包。
对于packet_out报文,由于SDN网络设备将主用链路由原主用控制器切换到目标主用控制器上时,原主用链路自动转换为备用链路,SDN网络设备无法通过备用链路接收packet_out报文,因此,本发明实施例通过预先将原主用链路的能力设置为不处理packet_out报文,避免了在主用链路切换到目标主用控制器的瞬间,原主用控制器已经正常发送了packet_out报文,但是SDN网络设备却由于原主用链路已经转换为备用链路而无法接收原主用控制器发送的packet_out报文,因而避免了原主用控制器上的packet_out报文出现丢包现象。
通过预先将与目标主用控制器建立的主用链路的能力设置为不处理packet_out报文,在通过等价链路将原主用控制器的packet_out报文接收完毕以后,再设置与目标主用控制器建立的主用链路能够处理packet_out报文,即,通知目标主用控制器处理packet_in报文和packet_out报文,可以实现packet_out报文的保序,避免由于顺序错误而造成packet_out报文丢包。
SDN网络设备和SDN控制器之间通过packet_in报文和packet_out报文交互业务数据包,本发明实施例在进行SDN网络设备的主备链路切换时,避免了packet_in报文和packet_out报文的丢包现象,因此能够避免SDN网络设备的业务数据包丢包现象。
针对上述方法,本发明还公开一种SDN控制器。
图16为本发明实施例SDN控制器的硬件结构连接图。
如图16所示,该SDN控制器包括处理器、网络接口、内存和非易失性存储器,且上述各硬件通过总线连接,其中:
非易失性存储器,用于存储指令代码;所述指令代码被处理器执行时完成的操作主要为内存中的报文转发装置完成的功能。
处理器,用于与非易失性存储器通信,读取和执行非易失性存储器中存储的所述指令代码,完成上述报文转发装置完成的功能。
内存,当非易失性存储器中的所述指令代码被执行时完成的操作主要为内存中的报文转发装置完成的功能。
从软件层面而言,应用于SDN控制器中的主备链路切换装置如图17所示。
图17是本发明实施例提供的主备链路切换装置结构示意图。
如图17所示,该主备链路切换装置包括:
链路设置模块1701,用于设置主用链路能力为接收并存储packet_in报文、且不处理Packet_out报文,在目标主用链路建立时,原主用链路转换为备用链路,设置所述备用链路为等价链路,该等价链路的能力为接收packet_out报文、且不上送packet_in报文,所述存储的packet_in报文处理完毕后,设置所述等价链路为备用链路。
报文处理模块1702,用于通过原主用链路接收并存储SDN网络设备上传的packet_in报文、且不处理Packet_out报文,通过所述等价链路处理存储的packet_in报文,所述存储的packet_in报文处理完毕后,通知所述目标主用控制器开始处理packet_in报文和packet_out报文。
链路设置模块1701,用于设置所述原主用控制器与所述SDN网络设备之间的链路在等价模式的能力为接收packet_out报文、且不上送packet_in报文,向所述SDN网络设备下发将与所述原主用控制器之间的链路设置为等价链路的消息。
链路设置模块1701,用于在设置所述等价链路为备用链路之后,设置所述原主用控制器与所述SDN网络设备之间的链路在等价模式的能力为接收packet_out报文、且能够上送packet_in报文。
当所述主备链路切换装置位于的SDN控制器作为SDN网络设备的目标主用控制器时:
链路设置模块1701,用于将所述SDN网络设备与所述目标主用控制器之间的链路更新为主用链路,且设置更新后的主用链路的能力为接收并存储packet_in报文、且不处理Packet_out报文。
报文处理模块1702,用于在接收到原主用控制器发送的开始处理packet_in报文和packet_out报文的通知后,开始处理packet_in报文和packet_out报文。
如果所述主备链路切换装置位于的SDN控制器在控制器集群中新开始工作,且所述控制器集群工作在负载均衡模式下,则所述主备链路切换装置还包括同步模块和负载均衡模块。
所述同步模块,用于在主用链路的能力被设置为接收并存储packet_in报文、不处理Packet_out报文之前,同步控制器集群中需要同步的上层应用数据。
所述负载均衡模块,用于根据负载均衡算法判断出自身应为所述SDN网络设备的目标主用控制器时,将判断结果通知给所述SDN网络设备的原主用控制器。
上述的主备链路切换装置作为一个逻辑意义上的装置,其是通过处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。当对应的计算机程序指令被执行时,形成的主备链路切换装置用于按照上述实施例中的主备链路切换方法执行相应操作。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种SDN网络设备的主备链路切换方法,其特征在于,该方法包括:
设置主用链路能力为接收并存储packet_in报文、且不处理Packet_out报文,建立目标主用链路,原主用链路转换为备用链路;
设置所述备用链路为等价链路,该等价链路的能力为接收packet_out报文、且不上送packet_in报文,所述原主用控制器通过所述等价链路处理存储的packet_in报文;
所述存储的packet_in报文处理完毕后,设置所述等价链路为备用链路,通知所述目标主用控制器开始处理packet_in报文和packet_out报文。
2.根据权利要求1所述的方法,其特征在于,所述设置主用链路能力为接收并存储packet_in报文、且不处理Packet_out报文,建立目标主用链路包括:
所述原主用控制器将自身与该SDN网络设备之间的原主用链路能力设置为接收并存储packet_in报文、且不处理Packet_out报文,所述原主用控制器接收并存储所述SDN网络设备发送的packet_in报文;
所述目标主用控制器将所述SDN网络设备与所述目标主用控制器之间的链路更新为主用链路,且设置更新后的主用链路的能力为接收并存储packet_in报文、且不处理Packet_out报文。
3.根据权利要求1所述的方法,其特征在于,所述设置所述备用链路为等价链路,设置该等价链路的能力为接收packet_out报文、且不上送packet_in报文包括:
所述原主用控制器设置自身与所述SDN网络设备之间的链路在等价模式的能力为接收packet_out报文、且不上送packet_in报文,向所述SDN网络设备下发将与所述原主用控制器之间的链路设置为等价链路的消息。
4.根据权利要求1所述的方法,其特征在于,设置所述等价链路为备用链路之后,该方法还包括:
所述原主用控制器设置自身与所述SDN网络设备之间的链路在等价模式的能力为接收packet_out报文、且能够上送packet_in报文。
5.根据权利要求1所述的方法,其特征在于,当控制器集群工作在负载均衡模式下,且在所述控制器集群中有新开始工作的SDN控制器时,在设置主用链路的能力为接收并存储packet_in报文、不处理Packet_out报文之前,该方法还包括:
将控制器集群需要同步的上层应用数据同步到该新开始工作的SDN控制器中,该新开始工作的SDN控制器根据负载均衡算法判断出自身应为所述SDN网络设备的目标主用控制器时,将判断结果通知给所述SDN网络设备的原主用控制器。
6.一种SDN控制器中的主备链路切换装置,其特征在于,该装置包括链路设置模块和报文处理模块,当该SDN控制器作为SDN网络设备的原主用控制器时:
所述链路设置模块,用于设置主用链路能力为接收并存储packet_in报文、且不处理Packet_out报文,在目标主用链路建立时,原主用链路转换为备用链路,设置所述备用链路为等价链路,该等价链路的能力为接收packet_out报文、且不上送packet_in报文,所述存储的packet_in报文处理完毕后,设置所述等价链路为备用链路;
所述报文处理模块,用于通过原主用链路接收并存储SDN网络设备上传的packet_in报文、且不处理Packet_out报文,通过所述等价链路处理存储的packet_in报文,所述存储的packet_in报文处理完毕后,通知所述目标主用控制器开始处理packet_in报文和packet_out报文。
7.根据权利要求6所述的装置,其特征在于,
所述链路设置模块,用于设置所述原主用控制器与所述SDN网络设备之间的链路在等价模式的能力为接收packet_out报文、且不上送packet_in报文,向所述SDN网络设备下发将与所述原主用控制器之间的链路设置为等价链路的消息。
8.根据权利要求6所述的装置,其特征在于,
所述链路设置模块,用于在设置所述等价链路为备用链路之后,设置所述原主用控制器与所述SDN网络设备之间的链路在等价模式的能力为接收packet_out报文、且能够上送packet_in报文。
9.根据权利要求6所述的装置,其特征在于,当该SDN控制器作为SDN网络设备的目标主用控制器时:
所述链路设置模块,用于将所述SDN网络设备与所述目标主用控制器之间的链路更新为主用链路,且设置更新后的主用链路的能力为接收并存储packet_in报文、且不处理Packet_out报文;
所述报文处理模块,用于在接收到原主用控制器发送的开始处理packet_in报文和packet_out报文的通知后,开始处理packet_in报文和packet_out报文。
10.根据权利要求6所述的装置,其特征在于,如果所述SDN控制器在控制器集群中新开始工作,且所述控制器集群工作在负载均衡模式下,则所述SDN控制器还包括同步模块和负载均衡模块;
所述同步模块,用于在主用链路的能力被设置为接收并存储packet_in报文、不处理Packet_out报文之前,同步控制器集群中需要同步的上层应用数据;
所述负载均衡模块,用于根据负载均衡算法判断出自身应为所述SDN网络设备的目标主用控制器时,将判断结果通知给所述SDN网络设备的原主用控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410571748.7A CN105591776B (zh) | 2014-10-23 | 2014-10-23 | Sdn网络设备的主备链路切换方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410571748.7A CN105591776B (zh) | 2014-10-23 | 2014-10-23 | Sdn网络设备的主备链路切换方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105591776A CN105591776A (zh) | 2016-05-18 |
CN105591776B true CN105591776B (zh) | 2019-03-15 |
Family
ID=55931042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410571748.7A Active CN105591776B (zh) | 2014-10-23 | 2014-10-23 | Sdn网络设备的主备链路切换方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105591776B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10389647B2 (en) * | 2017-04-19 | 2019-08-20 | The Boeing Company | Controller coordination system |
CN111865659B (zh) * | 2020-06-10 | 2023-12-29 | 新华三信息安全技术有限公司 | 主备控制器的切换方法和装置、控制器、网络设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7483370B1 (en) * | 2003-12-22 | 2009-01-27 | Extreme Networks, Inc. | Methods and systems for hitless switch management module failover and upgrade |
CN101667963A (zh) * | 2009-09-09 | 2010-03-10 | 中兴通讯股份有限公司 | 一种链路切换的方法及装置 |
CN102045263A (zh) * | 2011-01-25 | 2011-05-04 | 神州数码网络(北京)有限公司 | Mpls vpn隧道备份链路自动无间隙平滑切换方法 |
-
2014
- 2014-10-23 CN CN201410571748.7A patent/CN105591776B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7483370B1 (en) * | 2003-12-22 | 2009-01-27 | Extreme Networks, Inc. | Methods and systems for hitless switch management module failover and upgrade |
CN101667963A (zh) * | 2009-09-09 | 2010-03-10 | 中兴通讯股份有限公司 | 一种链路切换的方法及装置 |
CN102045263A (zh) * | 2011-01-25 | 2011-05-04 | 神州数码网络(北京)有限公司 | Mpls vpn隧道备份链路自动无间隙平滑切换方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105591776A (zh) | 2016-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521044B (zh) | 一种基于消息中间件的分布式任务调度方法及*** | |
CN112463535B (zh) | 多集群异常处理方法及装置 | |
CN112463366B (zh) | 面向云原生的微服务自动扩缩容和自动熔断方法及*** | |
US20070299906A1 (en) | Server change management | |
CN104753817A (zh) | 一种云计算消息队列服务本地模拟方法和*** | |
WO2015180040A1 (zh) | 流表管理方法及相关设备和*** | |
JP2018503159A (ja) | 分散トランザクション・リソースを実行するための方法、装置、及びシステム | |
CN107666415B (zh) | Fc-ae-1553协议桥的优化方法和装置 | |
US11991083B2 (en) | Systems and methods for enhanced autonegotiation | |
CN105119997A (zh) | 云计算***的数据处理方法 | |
WO2016107443A1 (zh) | 一种快照处理方法及相关设备 | |
US20150319036A1 (en) | Network transaction control method and executing method, network controller, and forwarding device | |
CN110958297B (zh) | 一种数据迁移方法及*** | |
CN105591776B (zh) | Sdn网络设备的主备链路切换方法和装置 | |
CN102831038B (zh) | Enum-dns的容灾方法及enum-dns | |
JP6606919B2 (ja) | フロースイッチ、コントローラ、及び、中継装置 | |
CN107222883B (zh) | 无线控制器备份方法、备份切换方法、装置及*** | |
JP7006786B2 (ja) | オーケストレーション装置、vnfm装置、管理方法及びプログラム | |
CN104486215B (zh) | 一种消息发送方法及设备 | |
JP6953713B2 (ja) | 通信ノード、通信システム、通信方法及びプログラム | |
CN107872479B (zh) | 云管理平台与控制器集成方法和***以及相关模块 | |
WO2018153347A1 (en) | Elastic consistency high availability in multiple boards | |
WO2015192298A1 (en) | Telecommunication device and method for updating software in a telecommunication device | |
JP2015041938A (ja) | ネットワーク制御方法 | |
WO2014203728A1 (ja) | メッセージ制御システム、メッセージ制御装置、メッセージ制御方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |