交换机连接控制器集群的方法和系统以及交换机和控制器的制造方法

文档序号:7805891阅读:190来源:国知局
交换机连接控制器集群的方法和系统以及交换机和控制器的制造方法
【专利摘要】一种交换机连接控制器集群的方法和系统、控制器、交换机,控制器根据交换机发送的请求消息获取与交换机待连接的新的控制器,然后将新的控制器的信息填充到请求消息的数据段,得到响应消息,并将响应消息返回给交换机,根据交换机发送的连接请求建立交换机与新的控制器的连接,降低了产品的运行成本和维护难度。
【专利说明】交换机连接控制器集群的方法和系统以及交换机和控制器

【技术领域】
[0001] 本发明涉及通信【技术领域】,特别是涉及一种交换机连接控制器集群的方法、交换 机连接控制器集群的系统、控制器以及交换机。

【背景技术】
[0002] Openf low 协议规范从版本 1. 2 开始,对 OFS (Openf low Switch,Openf low 交换机) 连接多个〇FC(Openflow Controller, Openflow控制器)作了规范性的描述,如下:
[0003] 1、一台0FS可以和多台0FC建立Openflow连接;
[0004] 2、0FS与0FC的连接分为EQUAL (默认角色)、MASTER (主角色)、SLAVE (备角色) 三种角色,其中,处于EQUAL、MASTER角色的0FC拥有0FS的全权读写能力,处于SLAVE角色 的0FC有只读权限;
[0005] 3、一台0FS只能拥有一条MASTER角色的连接,但可以拥有多条EQUAL或SLAVE角 色的连接,因此,当某条非MASTER连接申请变更为MASTER时,原来的MASTER连接会被修改 为 SLAVE ;
[0006] 4、0FS与0FC建立连接时,默认为EQUAL角色;
[0007] 5、0FC通过发送0FPT_R0LE_REQUEST消息进行连接角色的变更,0FS收到消息后, 需要将连接的角色切换为0FC要求的角色;
[0008] 综上可知,Openflow协议已经阐述了一些0FC集群化的思想,明确了多台0FC如 何协同控制同一台0FS。但是协议没有规定0FS如何动态接入0FC集群,即0FS接入0FC集 群时,需要连接哪些0FC尚未有标准规范支撑。虽然可以手工指定0FS连接哪些0FC,但是 这会大大增加产品的运营成本,增加维护难度。


【发明内容】

[0009] 基于此,有必要针对上述问题,提供一种交换机连接控制器集群的方法、交换机连 接控制器集群的系统、控制器以及交换机,在交换机接入控制器集群时,控制器自行确定连 接哪些控制器,降低了维护的难度等。
[0010] 一种交换机连接控制器集群的方法,包括步骤:
[0011] 控制器接收交换机发送的请求消息,响应所述请求消息获取与所述交换机待连接 的新的控制器;
[0012] 控制器将所述新的控制器的信息填充到所述请求消息的数据段,得到响应消息;
[0013] 控制器将所述响应消息返回给所述交换机;
[0014] 由所述交换机向所述新的控制器发送连接请求,建立所述交换机与所述新的控制 器的连接。
[0015] 一种交换机连接控制器集群的方法,包括步骤:
[0016] 交换机将请求消息发送给控制器;
[0017] 交换机接收所述控制器根据所述请求消息返回的响应消息,其中所述响应消息的 数据段填充有与所述交换机待连接的新的控制器的信息;
[0018] 交换机将连接请求发送给所述新的控制器;
[0019] 交换机接收所述新的控制器根据所述连接请求返回的连接响应,与所述新的控制 器建立连接。
[0020] -种交换机连接控制器集群的方法,包括步骤:
[0021] 交换机将请求消息发送给控制器;
[0022] 控制器接收所述请求消息,响应所述请求消息获取与所述交换机待连接的新的控 制器;
[0023] 控制器将所述新的控制器的信息填充到所述请求消息的数据段,得到响应消息, 并将所述响应消息返回给所述交换机;
[0024] 交换机接收所述响应消息,将连接请求发送给所述新的控制器,建立与所述新的 控制器的连接。
[0025] -种控制器,包括:
[0026] 接收模块,用于接收交换机发送的请求消息;
[0027] 控制器获取模块,用于响应所述请求消息获取与所述交换机待连接的新的控制 器;
[0028] 响应消息生成模块,用于将所述新的控制器的信息填充到所述请求消息的数据 段,得到响应消息,并将所述响应消息返回给所述交换机;
[0029] 连接模块,用于接收交换机发送的连接请求,响应所述连接请求与所述交换机建 立连接。
[0030] 一种交换机,包括:
[0031] 发送模块,用于将请求消息发送给控制器或将连接请求发送给所述新的控制器;
[0032] 消息接收模块,用于接收控制器根据所述请求消息返回的响应消息,其中所述响 应消息的数据段填充有与所述交换机待连接的新的控制器的信息;接收所述新的控制器根 据所述连接请求返回的连接响应,与所述新的控制器建立连接。
[0033] -种交换机连接控制器集群的系统,包括控制器和交换机;
[0034] 所述控制器包括:
[0035] 接收模块,用于接收交换机发送的请求消息;
[0036] 控制器获取模块,用于响应所述请求消息获取与所述交换机待连接的新的控制 器;
[0037] 响应消息生成模块,用于将所述新的控制器的信息填充到所述请求消息的数据 段,得到响应消息,并将所述响应消息返回给所述交换机;
[0038] 连接模块,用于接收交换机发送的连接请求,响应所述连接请求与所述交换机建 立连接;
[0039] 所述交换机包括:
[0040] 发送模块,用于将请求消息发送给控制器或将连接请求发送给所述新的控制器;
[0041] 消息接收模块,用于接收控制器根据所述请求消息返回的响应消息,其中所述响 应消息的数据段填充有与所述交换机待连接的新的控制器的信息;接收所述新的控制器根 据所述连接请求返回的连接响应,与所述新的控制器建立连接。
[0042] 上述本发明方案,交换机在接入控制器集群之前,先通过请求消息向其中一台控 制器询问它需要连接哪些控制器;接收请求消息的控制器为所述交换机分配相应的控制 器,然后将分配的控制器的信息填充到请求消息的数据段,得到响应消息,并将响应消息返 回给所述交换机;交换机解析响应消息中的数据段信息,与分配的控制器建立连接,使交换 机接入控制器集群时,不需要手动指定连接哪些控制器,控制器自行确定,然后通过响应消 息返回,降低了产品的运行成本和维护的难度,实现了交换机与控制器集群的动态连接。

【专利附图】

【附图说明】
[0043] 图1为本发明交换机连接控制器集群方法实施例的流程示意图;
[0044] 图2为Experimenter消息实施例的示意图;
[0045] 图3为Experimenter请求消息实施例的示意图;
[0046] 图4为交换机与请求的控制器的交互过程示意图;
[0047] 图5为交换机连接控制器集群实施例的示意图;
[0048] 图6为交换机与控制器集群连接断开实施例的示意图;
[0049] 图7为交换机重新连接控制器集群实施例的示意图;
[0050] 图8为本发明控制器实施例的结构示意图;
[0051] 图9为本发明交换机连接控制器集群的方法实施例的流程示意图;
[0052] 图10为本发明交换机实施例的结构示意图;
[0053] 图11为本发明交换机连接控制器集群的方法实施例的流程示意图;
[0054] 图12为本发明交换机连接控制器集群的系统实施例的结构示意图。

【具体实施方式】
[0055] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0056] 如图1所示,一种交换机连接控制器集群的方法,包括步骤:
[0057] S100、控制器接收交换机发送的请求消息,响应所述请求消息获取与所述交换机 待连接的新的控制器;
[0058] 控制器可以包括Openflow控制器等,交换机可以包括Openflow交换机等, 根据Openflow协议规范定义的消息类型,请求消息可以采用具有可编辑数据段的 Experimenter消息;Experimenter消息的格式如图2所示,每行为32bit (比特),前 16字节是Experimenter消息的标准头部,其中,Experimenter字段填充厂商自己的 Experimenter ID (Identification,身份标识号码),Exp_type 为 0 时表不 Request (请求)消 息,Exp_type为1时表示Response (响应)消息,也可以将Exp_type为0时设置为Response 消息,Exp_type为1时设置为Request消息,后面紧接着的是Experimenter消息的数据段, 当为Experimenter请求消息时,如图3所示,数据段没有填充任何信息;
[0059] 为了较好保证控制器集群的负载均衡,控制器可以通过集群协同和负载均衡处理 获取与所述交换机连接的新的控制器,其中集群协同和负载均衡处理均可以通过现有技术 中已知的方法实现;
[0060] S110、控制器将所述新的控制器的信息填充到所述请求消息的数据段,得到响应 消息;
[0061] 若请求消息为Experimenter消息,如图2所示,控制器将获取的新的OFCs信息 以Controller Info(控制器消息)列表的形式填充到Experimenter消息的数据段,每 个 Controller Info 列表标识一台新的 0FC,包括 IP 地址(Internet Protocol Address, 互联网协议地址)、端口、协议,如TCP (Transmission Control Protocol传输控制协议)、 SSL (Secure Sockets Layer,安全套接层)等;
[0062] S120、控制器将所述响应消息返回给所述交换机;
[0063] S130、由所述交换机向所述新的控制器发送连接请求,建立所述交换机与所述新 的控制器的连接;
[0064] 交换机接收并解析响应消息,获取响应消息数据段中的Controller Info列表,与 所述新的控制器建立连接。
[0065] 如图4所示,为0FS动态接入OFCs集群200具体实施例的示意图,0FS100先通过 Experimenter请求消息向OFCs集群200的其中一台0FC询问要连接哪些0FC。假设0FC210 接收到0FS100发送的Experimenter请求消息,则该0FC210通过集群协同工具300和负载 均衡算法为该0FS100分配待连接的OFCs,以确保0FC集群的负载均衡以及0FS100与足够 数量的0FC连接,0FC210将分配好的待连接OFCs信息填充到Experimenter消息的数据段, 然后将Experimenter响应消息返回给0FS100。0FS100解析Experimenter响应消息即可 获得待连接的OFCs信息,然后与待连接的OFCs建立Openflow连接,如图5所示,为0FS100 与0FC210分配的OFCs连接的示意图。
[0066] 0FS连接上多台OFCs后,OFCs之间通过集群协同机制协调连接的角色(一般为一 个MASTER,其他为SLAVE),然后将角色变更消息,例如0FPT_R0LE_REQUEST消息,发送给0FS 进行角色的变更,其中通过集群协同机制协调连接的角色可以通过现有技术中已知的方法 实现。
[0067] 0FS接入0FC集群后,难免会由于各种因素导致连接断开,例如0FC崩溃移出0FC 集群等,这样会导致与此0FS连接的OFCs的连接数减少。目前Openf low协议并没有规定 0FS与0FC断开连接时,如何动态增加0FS的连接数,以继续保证连接的可靠性。所以本发 明实施例还提供一种方法,在0FS与部分OFCs断开连接时,保证连接的可靠性。所述方法 为:在步骤S130之后,还可以包括步骤:
[0068] 当前连接的控制器检测是否有控制器与所述交换机断开连接,若是,则当前连接 的控制器获取与所述交换机待连接的新的控制器,进入步骤S110。通过集群协同机制,与 0FS正常连接的OFCs会检测到有其它OFCs与该0FS断开连接。若有其它OFCs与该0FS断 开连接,且断开连接的其中一个为MASTER角色的0FC,则正常连接中的一个SLAVE角色的 0FC需要变为MASTER,对0FS进行管理;若原来是MASTER角色的0FC与0FS正常连接,既没 有断开连接,则还是该MASTER角色的0FC管理该0FS。正常连接的MASTER角色的0FC重新 为该0FS分配待连接的新的OFCs,然后将该OFCs信息填充到Experimenter响应消息的数 据段返回给该〇FS。0FS继而与新分配的OFCs连接,保证了足够的连接数。
[0069] 结合图6和图7具体说明。如图6所示,为0FS与部分0FC连接断开实施例的示 意图,图中虚线表示连接断开,即0FS100与0FC220连接断开,0FS110与0FC240连接断开。 以0FS100为例说明,通过集群协同机制,与0FS100正常连接的MASTER角色的0FC210检测 到0FC220与0FS100连接断开,则0FC210重新分配新的0FC给0FS100,例如将0FC230分 配给0FS100,确定好分配的0FC后,0FC210将0FC210、0FC230的信息填充到Experimenter 消息的数据段,然后将Experimenter响应消息发送给0FS100。如图7所示,0FS100解 析Experimenter响应消息即可获得0FC210、0FC230的信息,进而与0FC210、0FC230建立 Openf low连接(0FS100与0FC210的连接保持不变,不需要重新建立连接),保证了 0FS100 足够的连接数。
[0070] 当有新的0FC进入集群系统时,为了保证负载均衡,需要对负载进行动态迁移。步 骤S130之后,还可以包括步骤:
[0071] 控制器检测是否有新的控制器加入控制器集群,若是,则控制器断开与其连接的 部分交换机,进入当前连接的控制器检测是否有控制器与交换机断开连接的步骤。根据集 群协同机制,其它0FCS能够检测的到新的0FC加入0FC集群,这时,根据负载均衡算法等, 它们会主动断开与其连接的部分〇FSs,然后通过上述连接断开时的操作流程,将新加入的 0FC作为分配对象下发到0FS,从而实现了负载的动态迁移,保证了负载的均衡。
[0072] 基于同一发明构思,本发明还提供一种控制器,下面结合附图对本发明Openflow 控制器的【具体实施方式】做详细描述。
[0073] 如图8所示,一种控制器210,包括:
[0074] 接收模块2101,用于接收交换机100发送的请求消息;
[0075] 控制器210可以包括Openflow控制器等,交换机100可以包括Openflow交换 机等,根据Openflow协议规范定义的消息类型,请求消息可以采用具有可编辑数据段的 Experimenter消息;Experimenter消息的格式如图2所示,Exp_type为0时表示Request 消息,Exp_type为1时表示Response消息,也可以将Exp_type为0时设置为Response消 息,Exp_type为1时设置为Request消息,后面紧接着的是Experimenter消息的数据段, 当为Experimenter请求消息时,如图3所示,数据段没有填充任何信息;
[0076] 控制器获取模块2102,用于响应所述请求消息获取与所述交换机100待连接的新 的控制器;
[0077] 所述控制器获取模块2102可以通过集群协同和负载均衡处理获取与所述交换机 100待连接的新的控制器,其中集群协同和负载均衡处理均可以通过现有技术中已知的方 法实现;
[0078] 响应消息生成模块2103,用于将所述新的控制器的信息填充到所述请求消息的数 据段,得到响应消息,并将所述响应消息返回给所述交换机1〇〇 ;
[0079] 若请求消息为Experimenter消息,如图2所示,所述控制器获取模块2102将获取 的新的〇FCs信息以Controller Info列表的形式填充到Experimenter消息的数据段,每个 Controller Info列表包括IP地址、端口、协议等;
[0080] 连接模块2104,用于接收交换机100发送的连接请求,响应所述连接请求与所述 交换机1〇〇建立连接。
[0081] 0FS连接上多台OFCs后,0FC还需要对0FS进行角色变更,以便更好的管理0FS。 故控制器210还可以包括与所述连接模块2104相连的角色变更模块,用于将角色变更消 息,例如0FPT_R0LE_REQUEST消息,发送给所述交换机100进行角色的变更。
[0082] 0FS接入0FC集群后,难免会由于各种因素导致连接断开,这样会导致与此0FS连 接的OFCs的连接数减少。所以针对0FS与部分OFCs连接断开的问题,控制器210还可以包 括与所述连接模块2104相连的连接状态检测模块,用于检测是否有控制器与所述交换机 断开连接,若是,获取与所述交换机待连接的新的所述控制器,然后响应消息生成模块2103 将该OFCs信息填充到请求消息的数据段返回给该OFS。0FS继而与新分配的OFCs连接,保 证了足够的连接数。
[0083] 当有新的0FC进入集群系统时,为了保证负载均衡,需要对负载进行动态迁移。控 制器210还可以还包括与所述连接模块2104相连的控制器检测模块,用于检测是否有新 的控制器加入控制器集群,若是,控制器根据负载均衡算法等断开与其连接的部分交换机, 然后连接状态检测模块检测控制器与交换机的连接状态,获取与交换机待连接的新的控制 器,响应消息生成模块2103将新加入的控制器作为分配对象下发到交换机,从而实现了负 载的动态迁移,保证了负载的均衡。
[0084] 本发明从与控制器交互的交换机角度出发,提供了一种交换机连接控制器集群的 方法,下面结合附图对本发明方法的【具体实施方式】做详细描述。
[0085] 如图9所示,一种交换机连接控制器集群的方法,包括步骤:
[0086] S200、交换机将请求消息发送给控制器;
[0087] 交换机可以包括Openflow交换机等,控制器可以包括Openflow控制器等, 根据Openflow协议规范定义的消息类型,请求消息可以采用具有可编辑数据段的 Experimenter消息;Experimenter消息的格式如图2所示,Exp_type为0时表示Request 消息,Exp_type为1时表示Response消息,也可以将Exp_type为0时设置为Response消 息,Exp_type为1时设置为Request消息,后面紧接着的是Experimenter消息的数据段, 当为Experimenter请求消息时,如图3所示,数据段没有填充任何信息;
[0088] S210、交换机接收所述控制器根据所述请求消息返回的响应消息,其中所述响应 消息的数据段填充有与所述交换机待连接的新的控制器的信息;
[0089] 所述新的控制器可以通过集群协同和负载均衡处理确定,其中集群协同和负载 均衡处理均可以通过现有技术中已知的方法实现;所述新的控制器的信息可以包含IP地 址、端口、协议等,如图2所示,若请求消息为Experimenter消息,新的OFCs信息可以以 Controller Info列表的形式填充到Experimenter消息的数据段,每个Controller Info列 表标识一台0FC ;
[0090] S220、交换机将连接请求发送给所述新的控制器;
[0091] S230、交换机接收所述新的控制器根据所述连接请求返回的连接响应,与所述新 的控制器建立连接。
[0092] 0FS连接上多台OFCs后,0FC还需要对0FS进行角色变更,步骤S230之后,还 可以包括步骤:所述交换机接收所述新的控制器发送的角色变更消息,例如0FPT_R0LE_ REQUEST消息,进行角色的变更,一般为一个MASTER角色的0FC,其他为SLAVE角色的OFCs。
[0093] 0FS接入0FC集群后,难免会由于各种因素导致连接断开。所以本发明实施例还 提供一种方法,在0FS与全部OFCs断开连接时,用以保证连接的可靠性。所述方法为:步骤 S230之后,交换机检测是否与控制器均未连接,若是,则进入步骤S200,从而重新与OFCs建 立连接,保证连接的可靠性。
[0094] 基于同一发明构思,本发明还提供一种交换机,下面结合附图对本发明交换机的

【具体实施方式】做详细描述。
[0095] 如图10所示,一种交换机100,包括:
[0096] 发送模块1001,用于将请求消息发送给控制器或将连接请求发送给所述新的控制 器;
[0097] 交换机100可以包括Openf low交换机等,控制器可以包括Openf low控制器 等,根据Openflow协议规范定义的消息类型,请求消息可以采用具有可编辑数据段的 Experimenter消息;Experimenter消息的格式如图2所示,Exp_type为0时表示Request 消息,Exp_type为1时表示Response消息,也可以将Exp_type为0时设置为Response消 息,Exp_type为1时设置为Request消息,后面紧接着的是Experimenter消息的数据段, 当为Experimenter请求消息时,如图3所示,数据段没有填充任何信息;
[0098] 消息接收模块1002,用于接收控制器根据所述请求消息返回的响应消息,其中所 述响应消息的数据段填充有与所述交换机待连接的新的控制器的信息;接收所述新的控制 器根据所述连接请求返回的连接响应,与所述新的控制器建立连接;
[0099] 所述新的控制器可以通过集群协同和负载均衡处理确定,其中集群协同和负载 均衡处理均可以通过现有技术中已知的方法实现;所述新的控制器的信息可以包含IP地 址、端口、协议等,如图2所示,若请求消息为Experimenter消息,新的OFCs信息可以以 Controller Info列表的形式填充到Experimenter消息的数据段,每个Controller Info列 表标识一台0FC。
[0100] 0FS接入0FC集群后,难免会由于各种因素导致连接断开。所以本发明交换机针对 0FS与全部OFCs断开连接的情况,还可以包括与所述消息接收模块1002连接的状态检测模 块,用于检测交换机是否与控制器均未连接,若是,生成所述请求消息,发送模块1001重新 将请求消息发送给控制器,用以保证连接的可靠性。
[0101] 0FS连接上多台OFCs后,0FC还需要对0FS进行角色变更,故本发明交换机还可以 包括与所述消息接收模块1002相连的角色设置模块,用于接收控制器发送的角色变更消 息,例如0FPT_R0LE_REQUEST消息,进行角色的变更。
[0102] 本发明从控制器交换机交互的角度出发,提供了一种交换机连接控制器集群的方 法,下面结合附图对本发明方法的【具体实施方式】做详细描述。
[0103] 如图11所示,一种交换机连接控制器集群的方法,包括步骤:
[0104] S300、交换机将请求消息发送给控制器;
[0105] 交换机可以包括Openflow交换机等,控制器可以包括Openflow控制器等, 根据Openflow协议规范定义的消息类型,请求消息可以采用具有可编辑数据段的 Experimenter消息;Experimenter请求消息的格式如图3所不,前16字节是Experimenter 请求消息的标准头部,其中,Experimenter字段填充厂商自己的Experimenter ID, Exp_ type为0时表示请求消息,也可以将EXp_type为1时设置为请求消息,后面紧接着的是 Experimenter请求消息的数据段,数据段没有填充任何信息;
[0106] S310、控制器接收所述请求消息,响应所述请求消息获取与所述交换机待连接的 新的控制器;
[0107] 为了较好保证控制器集群的负载均衡,控制器可以通过集群协同和负载均衡处理 获取与所述交换机连接的新的控制器,其中集群协同和负载均衡处理均可以通过现有技术 中已知的方法实现;
[0108] S320、控制器将所述新的控制器的信息填充到所述请求消息的数据段,得到响应 消息;
[0109] 若请求消息为Experimenter消息,如图2所示,控制器将获取的新的OFCs信息 以Controller Info列表的形式填充到Experimenter消息的数据段,每个Controller Info列表标识一台新的0FC,包括IP地址、端口、协议等,然后将Exp_type设置为1,得到 Experimenter 口向应消息;
[0110] S330、控制器将所述响应消息返回给所述交换机;
[0111] S340、交换机接收所述响应消息,将连接请求发送给所述新的控制器,建立与所述 新的控制器的连接。
[0112] 0FS连接上多台OFCs后,OFCs之间通过集群协同机制协调连接的角色,然后将角 色变更消息,例如〇FPT_ROLE_REQUEST消息,发送给0FS进行角色的变更,其中通过集群协 同机制协调连接的角色可以通过现有技术中已知的方法实现。
[0113] 0FS接入0FC集群后,难免会由于各种因素导致连接断开。所以针对0FS与部分或 全部OFCs连接断开的问题,本发明实施例在步骤S340之后,还可以包括步骤:
[0114] 当前连接的控制器检测是否有控制器与所述交换机断开连接,若是,则当前连接 的控制器获取与所述交换机待连接的新的控制器,进入步骤320,保证了足够的连接数;
[0115] 交换机检测是否与控制器均未连接,若是,则进入步骤S300,从而使交换机与控制 器集群建立新的连接,保证连接的可靠性。
[0116] 当有新的0FC进入集群系统时,为了保证负载均衡,需要对负载进行动态迁移。步 骤S340之后,还可以包括步骤:
[0117] 控制器检测是否有新的控制器加入控制器集群,若是,则控制器断开与其连接的 部分交换机,进入当前连接的控制器检测是否有控制器与交换机断开连接的步骤。其它控 制器检测到新的控制器加入控制器集群时,它们会主动断开与其连接的部分交换机,然后 通过上述连接断开时的操作流程,将新加入的控制器作为分配对象下发到交换机,从而实 现了负载的动态迁移,保证了负载的均衡。
[0118] 基于同一发明构思,本发明还提供一种交换机连接控制器集群的系统,下面结合 附图对本发明系统的【具体实施方式】做详细描述。
[0119] 如图12所示,一种交换机连接控制器集群的系统,包括控制器210和交换机100, 控制器210可以包括Openf low控制器等,交换机100可以包括Openf low交换机等;
[0120] 所述控制器210,包括:
[0121] 接收模块2101,用于接收交换机100发送的请求消息;
[0122] 根据Openflow协议规范定义的消息类型,请求消息可以采用具有可编辑数据段 的Experimenter消息;Experimenter请求消息的格式如图3所示,Exp_type为0时表示请 求消息,也可以将Exp_type为1时设置为请求消息,后面紧接着的是Experimenter请求消 息的数据段,数据段没有填充任何信息;
[0123] 控制器获取模块2102,用于响应所述请求消息获取与所述交换机100待连接的新 的控制器;
[0124] 新的控制器可以通过集群协同和负载均衡处理确定,其中集群协同和负载均衡处 理均可以通过现有技术中已知的方法实现;
[0125] 响应消息生成模块2103,用于将所述新的控制器的信息填充到所述请求消息的数 据段,得到响应消息,并将所述响应消息返回给所述交换机100 ;
[0126] 如图2所示,若请求消息为Experimenter消息,响应消息生成模块2103将新 的OFCs信息以Controller Info列表的形式填充到Experimenter消息的数据段,每个 Controller Info列表包括IP地址、端口、协议等;
[0127] 连接模块2104,用于接收交换机100发送的连接请求,响应所述连接请求与所述 交换机1〇〇建立连接;
[0128] 所述交换机100,包括:
[0129] 发送模块1001,用于将请求消息发送给控制器或将连接请求发送给所述新的控制 器;
[0130] 消息接收模块1002,用于接收控制器根据所述请求消息返回的响应消息,其中所 述响应消息的数据段填充有与所述交换机待连接的新的控制器的信息;接收所述新的控制 器根据所述连接请求返回的连接响应,与所述新的控制器建立连接。
[0131] 0FS连接上多台OFCs后,0FC还需要对0FS进行角色变更,以便更好的管理0FS。 故所述控制器210还可以包括与所述连接模块2104相连的角色变更模块,用于将角色变更 消息,例如〇FPT_ROLE_REQUEST消息,发送给所述交换机进行角色的变更。
[0132] 0FS接入0FC集群后,难免会由于各种因素导致连接断开。所以针对0FS与部分或 全部OFCs连接断开的问题,控制器210还可以包括与所述连接模块2104相连的连接状态 检测模块,用于检测是否有控制器与所述交换机断开连接,若是,获取与所述交换机待连接 的新的所述控制器,然后响应消息生成模块2103将该OFCs信息填充到请求消息的数据段 返回给该〇FS。0FS继而与新分配的OFCs连接,保证了足够的连接数;
[0133] 交换机100还可以包括与消息接收模块1002连接的状态检测模块,用于检测交换 机是否与控制器均未连接,若是,生成所述请求消息,发送模块1001重新将请求消息发送 给控制器,用以保证连接的可靠性。
[0134] 当有新的0FC进入集群系统时,为了保证负载均衡,需要对负载进行动态迁移。控 制器210还可以还包括与所述连接模块2104相连的控制器检测模块,用于检测是否有新的 控制器加入控制器集群,若是,控制器断开与其连接的部分交换机,然后连接状态检测模块 检测控制器与交换机的连接状态,获取与交换机待连接的新的控制器,响应消息生成模块 2103将新加入的控制器作为分配对象下发到交换机,从而实现了负载的动态迁移,保证了 负载的均衡。
[0135] 除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形 式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进 行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执 行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。
[0136] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为 磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0137] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1. 一种交换机连接控制器集群的方法,其特征在于,包括步骤: 控制器接收交换机发送的请求消息,响应所述请求消息获取与所述交换机待连接的新 的控制器; 控制器将所述新的控制器的信息填充到所述请求消息的数据段,得到响应消息; 控制器将所述响应消息返回给所述交换机; 由所述交换机向所述新的控制器发送连接请求,建立所述交换机与所述新的控制器的 连接。
2. 根据权利要求1所述的交换机连接控制器集群的方法,其特征在于,所述控制器包 括Openf low控制器,所述交换机包括Openf low交换机,所述请求消息包括Experimenter 消息。
3. 根据权利要求1所述的交换机连接控制器集群的方法,其特征在于,建立所述交换 机与所述新的控制器的连接的步骤之后,还包括步骤: 当前连接的控制器检测是否有控制器与所述交换机断开连接,若是,则当前连接的控 制器获取与所述交换机待连接的新的控制器,进入将所述新的控制器的信息填充到请求消 息数据段的步骤。
4. 根据权利要求3所述的交换机连接控制器集群的方法,其特征在于,建立所述交换 机与所述新的控制器的连接的步骤之后,还包括步骤: 控制器检测是否有新的控制器加入控制器集群,若是,则控制器断开与其连接的部分 交换机,进入当前连接的控制器检测是否有控制器与交换机断开连接的步骤。
5. 根据权利要求1所述的交换机连接控制器集群的方法,其特征在于,建立所述交换 机与所述新的控制器的连接的步骤之后,还包括步骤: 控制器将角色变更消息发送给所述交换机进行角色的变更。
6. 根据权利要求1至5任意一项所述的交换机连接控制器集群的方法,其特征在于,所 述新的控制器的信息包含IP地址、端口、协议;控制器通过集群协同和负载均衡处理获取 与所述交换机连接的新的控制器。
7. -种交换机连接控制器集群的方法,其特征在于,包括步骤: 交换机将请求消息发送给控制器; 交换机接收所述控制器根据所述请求消息返回的响应消息,其中所述响应消息的数据 段填充有与所述交换机待连接的新的控制器的信息; 交换机将连接请求发送给所述新的控制器; 交换机接收所述新的控制器根据所述连接请求返回的连接响应,与所述新的控制器建 立连接。
8. 根据权利要求7所述的交换机连接控制器集群的方法,其特征在于,所述控制器包 括Openf low控制器,所述交换机包括Openf low交换机,所述请求消息包括Experimenter 消息。
9. 根据权利要求7所述的交换机连接控制器集群的方法,其特征在于,交换机与所述 新的控制器建立连接的步骤之后,还包括步骤: 交换机检测是否与控制器均未连接,若是,则进入交换机将请求消息发送给控制器的 步骤。
10. 根据权利要求7所述的交换机连接控制器集群的方法,其特征在于,交换机与所述 新的控制器建立连接的步骤之后,还包括步骤: 所述交换机接收所述新的控制器发送的角色变更消息进行角色的变更。
11. 根据权利要求7至10任意一项所述的交换机连接控制器集群的方法,其特征在于, 所述新的控制器的信息包含IP地址、端口、协议;所述新的控制器通过集群协同和负载均 衡处理确定。
12. -种交换机连接控制器集群的方法,其特征在于,包括步骤: 交换机将请求消息发送给控制器; 控制器接收所述请求消息,响应所述请求消息获取与所述交换机待连接的新的控制 器; 控制器将所述新的控制器的信息填充到所述请求消息的数据段,得到响应消息,并将 所述响应消息返回给所述交换机; 交换机接收所述响应消息,将连接请求发送给所述新的控制器,建立与所述新的控制 器的连接。
13. 根据权利要求12所述的交换机连接控制器集群的方法,其特征在于,所述控制器 包括Openf low控制器,所述交换机包括Openf low交换机,所述请求消息包括Experimenter 消息。
14. 根据权利要求12所述的交换机连接控制器集群的方法,其特征在于,交换机建立 与所述新的控制器连接的步骤之后,还包括步骤: 当前连接的控制器检测是否有控制器与所述交换机断开连接,若是,则当前连接的控 制器获取与所述交换机待连接的新的控制器,进入将所述新的控制器的信息填充到请求消 息数据段的步骤; 交换机检测是否与控制器均未连接,若是,则进入交换机将请求消息发送给控制器的 步骤。
15. 根据权利要求14所述的交换机连接控制器集群的方法,其特征在于,交换机建立 与所述新的控制器连接的步骤之后,还包括步骤: 控制器检测是否有新的控制器加入控制器集群,若是,则控制器断开与其连接的部分 交换机,进入当前连接的控制器检测是否有控制器与交换机断开连接的步骤。
16. 根据权利要求12所述的交换机连接控制器集群的方法,其特征在于,交换机建立 与所述新的控制器连接的步骤之后,还包括步骤: 控制器将角色变更消息发送给所述交换机进行角色的变更。
17. 根据权利要求12至16任意一项所述的交换机连接控制器集群的方法,其特征在 于,所述新的控制器的信息包含IP地址、端口、协议;所述新的控制器通过集群协同和负载 均衡处理确定。
18. -种控制器,其特征在于,包括: 接收模块,用于接收交换机发送的请求消息; 控制器获取模块,用于响应所述请求消息获取与所述交换机待连接的新的控制器; 响应消息生成模块,用于将所述新的控制器的信息填充到所述请求消息的数据段,得 到响应消息,并将所述响应消息返回给所述交换机; 连接模块,用于接收交换机发送的连接请求,响应所述连接请求与所述交换机建立连 接。
19. 根据权利要求18所述的控制器,其特征在于,所述控制器包括Openflow控制器,所 述交换机包括Openflow交换机,所述请求消息包括Experimenter消息。
20. 根据权利要求18所述的控制器,其特征在于,还包括与所述连接模块相连的连接 状态检测模块,用于检测是否有控制器与所述交换机断开连接,若是,获取与所述交换机待 连接的新的所述控制器。
21. 根据权利要求20所述的控制器,其特征在于,还包括与所述连接模块相连的控制 器检测模块,用于检测是否有新的控制器加入控制器集群,若是,控制器断开与其连接的部 分交换机。
22. 根据权利要求18所述的控制器,其特征在于,还包括与所述连接模块相连的角色 变更模块,用于将角色变更消息发送给所述交换机进行角色的变更。
23. 根据权利要求18至22任意一项所述的控制器,其特征在于,所述新的控制器的信 息包含IP地址、端口、协议;所述控制器获取模块通过集群协同和负载均衡处理获取与所 述交换机待连接的新的控制器。
24. -种交换机,其特征在于,包括: 发送模块,用于将请求消息发送给控制器或将连接请求发送给所述新的控制器; 消息接收模块,用于接收控制器根据所述请求消息返回的响应消息,其中所述响应消 息的数据段填充有与所述交换机待连接的新的控制器的信息;接收所述新的控制器根据所 述连接请求返回的连接响应,与所述新的控制器建立连接。
25. 根据权利要求24所述的交换机,其特征在于,所述控制器包括Openf low控制器,所 述交换机包括Openf low交换机,所述请求消息包括Experimenter消息。
26. 根据权利要求24所述的交换机,其特征在于,还包括与所述消息接收模块连接的 状态检测模块,用于检测交换机是否与控制器均未连接,若是,生成所述请求消息。
27. 根据权利要求24所述的交换机,其特征在于,还包括与所述消息接收模块相连的 角色设置模块,用于接收控制器发送的角色变更消息进行角色的变更。
28. 根据权利要求24至27任意一项所述的交换机,其特征在于,所述新的控制器的信 息包含IP地址、端口、协议;所述新的控制器通过集群协同和负载均衡处理确定。
29. -种交换机连接控制器集群的系统,其特征在于,包括控制器和交换机; 所述控制器包括: 接收模块,用于接收交换机发送的请求消息; 控制器获取模块,用于响应所述请求消息获取与所述交换机待连接的新的控制器; 响应消息生成模块,用于将所述新的控制器的信息填充到所述请求消息的数据段,得 到响应消息,并将所述响应消息返回给所述交换机; 连接模块,用于接收交换机发送的连接请求,响应所述连接请求与所述交换机建立连 接; 所述交换机包括: 发送模块,用于将请求消息发送给控制器或将连接请求发送给所述新的控制器; 消息接收模块,用于接收控制器根据所述请求消息返回的响应消息,其中所述响应消 息的数据段填充有与所述交换机待连接的新的控制器的信息;接收所述新的控制器根据所 述连接请求返回的连接响应,与所述新的控制器建立连接。
30. 根据权利要求29所述的交换机连接控制器集群的系统,其特征在于,所述控制器 包括Openf low控制器,所述交换机包括Openf low交换机,所述请求消息包括Experimenter 消息。
31. 根据权利要求29所述的交换机连接控制器集群的系统,其特征在于,所述控制器 还包括与所述连接模块相连的连接状态检测模块,用于检测是否有控制器与所述交换机断 开连接,若是,获取与所述交换机待连接的新的所述控制器; 所述交换机还包括与所述消息接收模块连接的状态检测模块,用于检测交换机是否与 控制器均未连接,若是,生成所述请求消息。
32. 根据权利要求31所述的交换机连接控制器集群的系统,其特征在于,所述控制器 还包括与所述连接模块相连的控制器检测模块,用于检测是否有新的控制器加入控制器集 群,若是,控制器断开与其连接的部分交换机。
33. 根据权利要求29所述的交换机连接控制器集群的系统,其特征在于,所述控制器 还包括与所述连接模块相连的角色变更模块,用于将角色变更消息发送给所述交换机进行 角色的变更。
34. 根据权利要求29至33任意一项所述的交换机连接控制器集群的系统,其特征在 于,所述新的控制器的信息包含IP地址、端口、协议;所述新的控制器通过集群协同和负载 均衡处理确定。
【文档编号】H04L12/24GK104092560SQ201410256569
【公开日】2014年10月8日 申请日期:2014年6月10日 优先权日:2014年6月10日
【发明者】陈车前, 钱波, 何权, 朱孔洋, 刘晶, 邵华, 易明华, 林少鹏 申请人:深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1