[0038] 为解决现有技术中存在的上述问题,本发明实施例采用的技术方案通过配置具有多个成员设备的虚拟逻辑设备,从所述虚拟逻辑设备的成员设备中选取主连接设备,对所述虚拟逻辑设备中的其他成员设备进行统一配置和管理,可以减少网络中报文的交互次数,简化网络的配置和管理。
[0039] 为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
[0040] 图1示出了本发明实施例中的一种软件定义网络中网络设备的控制方法的流程图。如图1所示的软件定义网络中网络设备的控制方法,可以包括:
[0041] 步骤S101:配置虚拟逻辑设备。
[0042] 在具体实施中,所述虚拟逻辑设备可以包括多个成员设备,且为了便于虚拟逻辑设备中成员设备之间的交互,虚拟逻辑设备的多个成员设备的物理端口具有相同的属性。在配置虚拟逻辑设备时,将各个成员设备通过物理端口与所述虚拟逻辑设备的逻辑端口绑定。
[0043] 在具体实施中,虚拟逻辑设备中的成员设备的数量可以根据实际的需要进行设备,例如,设置为8个等。
[0044] 步骤S102:根据所获取的各个成员设备的信息,从所述成员设备中选取主连接设备。
[0045] 在具体实施中,为了便于虚拟逻辑设备的管理,网络中的控制器通过选取的主连接设备对各个虚拟逻辑设备中的成员设备进行配置和管理。当虚拟逻辑设备配置完毕时,可以采用预设的规则从虚拟逻辑设备的成员设备中选取所述主连接设备。
[0046] 在具体实施中,为了进一步提高网络运行的可靠性,本发明实施例中的软件定义网络中网络设备的控制方法,还可以包括:
[0047] 步骤S103:在选取所述主连接设备之后,从所述虚拟逻辑设备的其他成员设备中选取所述主连接设备的备份设备。
[0048] 在具体实施中,所述备份设备对所述主连接设备进行备份,当所述主连接设备发生故障无法正常工作时,所述备份设备将自动接替所述主连接设备进行工作,从而可以提高网络设备控制的可靠性。
[0049] 步骤S104:采用所述主连接设备向所述软件定义网络的控制器上报所述虚拟逻辑设备中成员设备之间的拓扑结构的信息和未匹配流表的报文信息,接收所述控制器向所述虚拟逻辑设备下发的流表信息并发送至所述虚拟逻辑设备中的所述备份设备和所述辅连接设备。
[0050] 在具体实施中,当从虚拟逻辑设备中的成员设备中选取出主连接设备之后,所述控制器可以通过所述主连接设备对虚拟逻辑设备内的各个成员设备进行配置和管理。
[0051] 具体而言,主连接设备与控制器之间保持活跃的物理连接,其获取虚拟逻辑设备中其他成员设备的信息,以及虚拟逻辑设备中成员设备之间的连接关系,即虚拟逻辑设备的内部拓扑结构,并上报至所述控制器。所述控制器根据所述主连接设备发送的虚拟逻辑设备的内部拓扑结构的信息,计算转发路径,根据计算得出的转发路径生成对应的流表,并将生成的流表发送至虚拟逻辑设备的主连接设备。虚拟逻辑设备的主连接设备将所述控制器下发的流表转发至其他成员设备。
[0052] 同时,当虚拟逻辑设备中的成员设备接收到的报文与自身存储的流表中的流表项不匹配,即未匹配流表的报文时,所述主连接设备将所述未匹配流表的报文重新发送至所述控制器,所述控制器在接收到主连接设备发送的未匹配流表的报文时,根据虚拟逻辑设备的内部拓扑结构,计算出所述未匹配流表的报文的转发路径,并生成对应的流表项发送至所述主连接设备。所述主连接设备将所述控制器发送的与所述未匹配流表的报文的转发路径发送至各个成员设备。
[0053] 在本发明一实施例中,虚拟逻辑设备中各个成员设备之间可以采用如下所示的预设格式的报文进行信息交互:
[0054]
[0055] 其中,DA表示目的地址地段,SA表示源地址字段,ETYPE表示以太网类型字段,物理连接字段的数值为1或0,其中,1表示所述成员设备与控制器之间具有物理连接,0表示所述成员设备与控制器之间不具有物理连接,优先级字段用于标识所述成员设备的优先级,设备编号字段由于记录所述设备成员的设备编号,CPU MAC字段用于记录所述成员设备的CPU的MAC地址,FCS表示帧校验字段。
[0056] 采用上述的报文格式,使得成员设备之间的交互变得更加简单。
[0057] 在具体实施中,虚拟逻辑设备的内部拓扑结构可以采用链形连接拓扑结构或者环形连接拓扑结构。本领域技术人员可以根据实际的需要进行选择,在此不做赘述。
[0058] 在具体实施中,为了进一步提高网络运行的可靠性,本发明实施例中的软件定义网络中网络设备的控制方法,可以包括:
[0059] 步骤S105:判断所述虚拟逻辑设备中成员设备之间的连接关系是否变更,当判断结果为是时,可以执行步骤S102,反之,则不执行任何的操作。
[0060] 在具体实施中,当有新的成员设备加入,或者成员设备发生故障等时,虚拟逻辑设备的内部拓扑结构会产生变化。当虚拟逻辑设备的内部拓扑结构发生变化时,重新执行从所述虚拟逻辑设备的成员设备中选取主连接设备的操作,以确保网络设备控制的可靠性。
[0061] 下面将结合图2和具体实施例对如何从虚拟逻辑设备的成员设备中选取主连接设备和所述主连接设备的备份设备作进一步详细的介绍。
[0062] 图2示出了本发明实施例中的一种选取虚拟逻辑设备中的主连接设备、辅连接设备和所述主连接设备的备份设备的流程图。如图2所示的选取虚拟逻辑设备中的主连接设备和所述主连接设备的备份设备,可以包括:
[0063] 步骤S201:判断所述虚拟逻辑设备的成员设备与所述软件定义网络的控制器是否具有物理连接,当判断结果为是时,可以执行步骤S203,反之,则可以执行步骤S209。
[0064] 在具体实施中,当所选取的主连接设备和控制器之间需要保持活跃的物理连接时,所述控制器才可以通过所述虚拟逻辑设备中的主连接设备对虚拟逻辑设备中的成员设备进行配置和管理。因此,在选取主连接设备时,首先可以通过判断所述虚拟逻辑设备中的成员设备是否与所述控制器之间具有物理连接,判断所述成员设备是否具有成为主连接设备的资格。
[0065] 步骤S202:从与所述控制器具有物理连接的成员设备中选取具有最高优先级的成员设备。
[0066] 在本发明一实施例中,虚拟设备中成员设备的优先级与所述成员设备的设备编号相关联,具体地,可以采用如下的公式计算得出:
[0067] Pri=(32-ID)*8-1 (1)
[0068] 其中,Pri表示成员设备的优先级,ID表示所述成员设备的设备编号。
[0069] 采用上述的公式(1)便可以得到每个成员设备的优先级,从所述与控制器具有物理连接的成员设备中选取具有最高优先级的成员设备作为所述主连接设备。
[0070] 步骤S203:判断所述具有最高优先级的成员设备是否为两个以上,当判断结果为是时,可以执行步骤S204,反之,则可以执行步骤S209。
[0071] 在具体实施中,当具有最高优先级的成员设备仅有一个时,可以将所述具有最高优先级的成员设备作为所述主连接设备。但是,还可能具有最高优先级的成员设备为两个或者以上的情形,因此,此时,可以首先判断所述具有最高优先级的成员设备是否为两个以上。
[0072] 步骤S204:获取具有最高优先级的成员设备的设备编号,并将具有最高优先级的成员设备的设备编号按照从小到大的顺序进行排序。
[0073] 在具体实施中,具有最高优先级的成员设备为两个或者以上时,可以获取首先具有最高优先级的成员设备的设备编号,并进行排序。
[0074] 步骤S205:判断设备编号位于第一位序的成员设备是否为两个以上,当判断结果为是时,可以执行步骤S207,反之,则可以执行步骤S209。
[0075] 在具体实施中,当按照设备编号从小至大的顺序对具有最高优先级的成员设备进行排序,且排在第一位序的成员设备,也即设备编号最小的成员设备只有一个时,可以将具有最小设备编号的成员设备作为所述主连接设备。
[0076] 在具体实施中,还可能出现排在第一位序的成员设备,也即设备编号最小的成员设备有两个或两个以上的情形,因此,可以首先判断设备编号位于第一位序的成员设备是否为两个以上。
[0077] 步骤S206:获取设备编号位于第一位序的成员设备的中央处理器的物理地址,并将设备编号位于第一位序的成员设备的中央处理器的物理地址按照从小到大的顺序进行排序。
[0078] 在具体实施中,设备编号位于第一位序的成员设备是否为两个以上时,可以继续获取设备编号位于第一位序的成员设备的中央处理器(CPU)的物理地址(MAC),并按照从小到大的顺序进行排序。
[0079] 步骤S207:获取中央处理器的物理地址位于第一位序的成员设备。
[0080] 在具体实施中,当设备编号位于第一位序的成员设备是否为两个以上时,可以获取排在第一位序,也即是中央处理器的物理地址最小的成员设备。
[0081] 步骤S208:将所述成员设备作为所述主连接设备。
[0082] 在具体实施中,设备编号位于第一位序的成员设备中具有最小的中央处理器的物理地址最小的成员设备作为所述主连接设备。
[0083] 步骤S209:将所述主连接设备后一位序的成员设备作为所述主连接设备的备份设备。
[0084] 在具体实施中,在选取所述主连接设备之后,将排列在所述主连接设备后一位序的成员设备作为所述主连接设备的备份设备。
[0085] 下面将结合图3对本发明实施例中的软件定义网络中网络设备的控制方法对应的系统作进一步详细的介绍。
[0086] 图3示出了本发明实施例中的一种软件定义网络中控制网络设备的控制系统的结构示意图。如图3所示的软件定义网络中网络设备的控制系统300,可以包括配置单元301、第一选取单元302、控制单元303,其中:
[0087] 所述配置单元301,适于配置虚拟逻辑设备,所述虚拟逻辑设备包括多个成员设备。
[0088] 所述第一选取单元302,适于根据所获取的各个成员设备的信息,从所述成员设备中选取主连接设备。
[0089] 在具体实施中,所述第一选取单元302适于从所述虚拟逻辑设备的成员设备中选取与所述控制器具有物理连接的成员设备;获取与所述控制器具有物理连接的成员设备的优先级信息;将具有最高优先级的成员设备作为所述主连接设备。
[0090] 在具体实施中,所述第一选取单元302还适于当所述具有最高优先级的成员设备为两个以上时,获取所述具有最高优先级的成员设备的设备编号;将所述具有最高优先级的成员设备的设备编号按照从小到大的顺序进行排列;将设备编号位于第一位序的成员设备作为所述主连接设备。
[0091] 在具体实施中,所述第一选取单元302还适于当设备编号位于所述第一位序的成员设备为两个以上时,获取所述设备编号位于第一位序的成员设备的中央处理器的物理地址;将所述第一位序的成员设备的中央处理器的物理地址按照从小到大的顺序进行排序;将中央处理器的物理地址位于第一位序的成员设备作为所述主连接设备。
[0092] 在具体实施中,所述第一选取单元302还适于当所述虚拟逻辑设备中各个成员设备之间的连接关系变更时,重新执行根据所获取的各个成员设备的信息,从所述成员设备中选取主连接设备的操作。
[0093] 所述控制单元303,适于采用所述主连接设备向控制器上报所述虚拟逻辑设备中各个成员设备之间连接关系的信息和未匹配流表的报文信息,接收所述控制器向所述虚拟逻辑设备下发的流表信息,并发送至所述虚拟逻辑设备中的其他成员设备。
[0094] 在具体实施中,本发明实施例中的软件定义网络中网络设备的控制系统还可以包括第二选取单元304,其中:
[0095] 所述第二选取单304,适于从所述成员设备中选取所述主连接设备的备份设备,所述备份设备适于在所述主连接设备出现故障时,作为所述主连接设备工作。
[0096] 本发明以上实施例包含了一种软件定义网络的网络结构,所述软件定义网络,可以包括软件定义网络中控制网络设备的控制系统300、控制器400和一个以上的虚拟逻辑设备500,所述虚拟逻辑设备包括两个以上的成员设备501。其中,所述虚拟逻辑设备500分别与软件定义网络中网络设备的控制系统300和控制器400连接。其中,所述软件定义网络中控制网络设备的控制系统300、控制器400和一个以上的虚拟逻辑设备500的工作原理请参见上述相应部分的介绍,在此不作赘述。
[0097] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
[0098] 以上对本发明实施例的方法及系统做了详细的介绍,本发明并不限于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。