软件定义网络拓扑发现方法及系统与流程

专利2022-05-10  37



1.本发明涉及计算机网络技术领域,尤其涉及一种软件定义网络拓扑发现方法及系统领域。


背景技术:

2.网络拓扑是指网络中交换互联设备、各类设备之间的物理和逻辑连接关系。软件定义网络的控制器需要拥有全局的网络拓扑,才可以根据全局的网络拓扑下发流规则给交换机,实现对网络的细粒度控制。同时网络拓扑信息还是各种网络管理任务的先决条件。例如路由应用程序依靠控制器的拓扑抽象视图提供整个网络的可见性,以便在最短路径上将网络流量路由到其目的地;移动管理功能负责监控节点的移动,移动跟踪依赖于网络拓扑来获取关于网络节点当前和未来位置的信息;负载均衡应用程序使用软件定义网络逻辑集中控制来执行流量负载均衡,需要通过交换机之间链路拓扑来计算选择最优路径。软件定义网络拓扑发现研究对于提高网络的服务能力有着至关重要的作用。
3.现有网络拓扑发现采用链路发现协议,控制器向每个交换机发送链路发现报文,交换机再向每个活跃端口广播转发链路发现报文,收到广播的链路发现报文的交换机将其上报给控制器。这种广播式的链路发现方式,将会产生大量的链路发现报文,占用大量的控制器处理开销和网络带宽。降低软件定义网络拓扑发现的处理开销和网络带宽消耗具有重要意义。


技术实现要素:

4.为了解决上述问题,本发明实施例提供一种软件定义网络拓扑发现方法。
5.第一方面,本发明实施例提供一种软件定义网络拓扑发现方法,包括:控制器计算软件定义网络的交换机最小覆盖集合,使软件定义网络的每条链路两端交换机至少有一个在所述交换机最小覆盖集合中,并使所述交换机最小覆盖集合的数量最小;所述最小覆盖集合中的交换机探测每一条未被探测的相连链路的对端交换机信息和端口信息,并上报被探测链路的两端交换机信息和端口信息给控制器;控制器根据链路两端交换机信息和端口信息生成网络拓扑信息。
6.进一步地,所述最小覆盖集合中的交换机探测每一条未被探测的相连链路的对端交换机信息和端口信息包括:
7.所述最小覆盖集合中的交换机发现相连链路的对端交换机探测了所述相连链路,则不对所述相连链路进行探测;
8.所述最小覆盖集合中的交换机发送链路发现报文给每一条未被探测的相连链路的对端交换机,所述对端交换机将交换机信息和端口信息填入所述链路发现报文中,并将所述链路发现报文回传给所述最小覆盖集合中的交换机。
9.进一步地,上报被探测链路的两端交换机信息和端口信息给控制器包括:
10.所述最小覆盖集合中的交换机从链路上收到回传的链路发现报文后,将本交换机
信息和与所述链路相连的端口信息填入链路发现报文,并将所述链路发现报文上报给控制器。
11.进一步地,该方法包括如下一种或多种:
12.控制器通知最小覆盖集合中的交换机发起网络拓扑发现;
13.最小覆盖集合中的交换机周期性地向控制器上报网络拓扑;
14.最小覆盖集合中的交换机在发生网络拓扑变化时上报网络拓扑变更给控制器。
15.第二方面,本发明实施例提供一种软件定义网络拓扑发现系统,包括:网络拓扑模块,用于接收最小覆盖集合中的交换机上报的链路两端交换机信息和端口信息,生成网络拓扑信息;链路探测模块,用于探测每一条未被探测的链路的两端交换机信息和端口信息;信息传输模块,用于传输被探测的链路两端交换机信息和端口信息。
16.第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现本发明第一方面软件定义网络拓扑发现方法的步骤。
17.第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明第一方面软件定义网络拓扑发现方法的步骤。
18.本发明实施例提供的软件定义网络拓扑发现方法及系统,控制器计算软件定义网络的交换机最小覆盖集合,使软件定义网络的每条链路两端交换机至少有一个在所述交换机最小覆盖集合中,并使所述交换机最小覆盖集合的数量最小。由于软件定义网络的每条链路两端交换机至少有一个在交换机最小覆盖集合中,因此最小覆盖集合中的交换机能够探测到软件定义网络的每一条链路。并且所述最小覆盖集合中的交换机探测每一条未被探测的相连链路的对端交换机信息和端口信息,使同一条链路只被探测一次,减少了探测次数,也减少了探测报文数量,降低了对网络资源的占用消耗。当控制器需要发起网络拓扑发现时,只需要向最小覆盖集合中的交换机发送发起网络拓扑的报文,降低了发送的报文数量,降低了处理开销和网络带宽消耗。
附图说明
19.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.附图1为本发明实施例提供的软件定义网络拓扑发现方法流程图;
21.附图2为本发明实施例提供的软件定义网络拓扑发现系统结构图;
22.附图3本发明实施例提供的一种电子设备的实体结构示意图。
具体实施方式
23.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员
在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.由于现有网络拓扑发现采用链路发现协议,控制器向每个交换机发送链路发现报文,交换机再向每个活跃端口广播转发链路发现报文,收到广播的链路发现报文的交换机将其上报给控制器。这种广播式的链路发现方式,将会产生大量的链路发现报文,占用大量的控制器处理开销和网络带宽。
25.本发明提供了一种软件定义网络拓扑发现方法,控制器计算软件定义网络的交换机最小覆盖集合,最小覆盖集合中的交换机探测软件定义网络每条链路两端交换机信息和端口信息,并且同一条链路只被探测一次。控制器根据链路两端交换机信息和端口信息生成网络拓扑信息。能够有效避免广播式网络拓扑发现所产生的大量的链路发现报文,能够有效降低软件定义网络拓扑发现的处理开销和网络带宽消耗。
26.图1为本发明实施例提供的软件定义网络拓扑发现方法流程图,如图1所示,本发明实施例提供一种软件定义网络拓扑发现方法,包括:
27.101、控制器计算软件定义网络的交换机最小覆盖集合,使软件定义网络的每条链路两端交换机至少有一个在所述交换机最小覆盖集合中,并使所述交换机最小覆盖集合的数量最小。
28.每个交换机在加入软件定义网络时,都会向控制器发送交换机信息和端口信息,控制器接收信息并进行解析,提取和纪录交换机之间链路连接关系。控制器从所有交换机中选出部分交换机的集合,使每条链路两端至少有一端的交换机在所述选出的部分交换机集合中,同时所述选出的部分交换机集合数量最小。
29.102、所述最小覆盖集合中的交换机探测每一条未被探测的相连链路的对端交换机信息和端口信息,并上报被探测链路的两端交换机信息和端口信息给控制器。
30.为了减少软件定义网络拓扑发现时的探测开销,最小覆盖交换机集合中的每一个交换机对每一条链路开始探测前,会判断该条链路是否被该条链路的对端交换机探测过,如果没有探测过,则探测相连的对端交换机信息和端口信息,并且将本交换机信息和与链路相连的端口信息一起上报给控制器。
31.103、控制器根据链路两端交换机信息和端口信息生成网络拓扑信息。
32.控制器将会收到最小覆盖交换机上报的相连链路的两端交换机信息和端口信息,由于软件定义网络的每条链路两端交换机至少有一个在交换机最小覆盖集合中,因此控制器能够获得每条链路的两端交换机信息和端口信息,根据交换机信息和端口信息生成软件定义网络的拓扑信息。
33.基于上述实施例的内容,作为一种可选实施例,所述最小覆盖集合中的交换机探测每一条未被探测的相连链路的对端交换机信息和端口信息,包括:所述最小覆盖集合中的交换机发现相连链路的对端交换机探测了所述相连链路,则不对所述相连链路进行探测;所述最小覆盖集合中的交换机发送链路发现报文给每一条未被探测的相连链路的对端交换机,所述对端交换机将交换机信息和端口信息填入所述链路发现报文中,并将所述链路发现报文回传给所述最小覆盖集合中的交换机。
34.为了降低软件定义网络拓扑发现的处理开销和网络带宽消耗,在网络拓扑发现时,每条链路只被探测一次,因此最小覆盖集合中的交换机对已被探测的相连链路就不再进行探测,例如,交换机已探测了某链路,与所述链路相连的对端交换机如果是最小覆盖集
合中的交换机,则所述对端交换机在网络拓扑发现时则不会对该链路进行探测。在探测链路时,发起探测的交换机将会向对端交换机发送链路发现报文,对端交换机将会把交换机信息和与所述链路相连的端口信息填入到链路发现报文中,并将所述链路发现报文沿着所述链路回传给发起探测的交换机。
35.基于上述实施例的内容,作为一种可选实施例,上报被探测链路的两端交换机信息和端口信息给控制器,包括所述最小覆盖集合中的交换机从链路上收到回传的链路发现报文后,将本交换机信息和与所述链路相连的端口信息填入链路发现报文,并将所述链路发现报文上报给控制器。
36.发起链路探测的所述最小覆盖集合中的交换机收到回传的链路发现报文后,将本交换机信息和所述相连链路的端口信息也填入到所述链路发现报文中,则所述链路发现报文中包含链路两端的交换机信息和端口信息。控制器收到所有所述最小覆盖集合中的交换机上报的所述链路发现报文后,则能够收到所有链路以及链路两端的交换机信息和端口,据此计算网络拓扑。
37.基于上述实施例的内容,作为一种可选实施例,所述方法还包括:控制器通知最小覆盖集合中的交换机发起网络拓扑发现;最小覆盖集合中的交换机周期性地向控制器上报网络拓扑;最小覆盖集合中的交换机在网络拓扑发生变化时上报网络拓扑变更给控制器。
38.在软件定义网络中根据不同情况可以采取不同方式发起网络拓扑发现,可以由控制器周期性地主动发起网络拓扑发现,也可以控制器被动式地、最小覆盖集合中的交换机主动式地完成网络拓扑发现,也可以由最小覆盖集合中的交换机在网络拓扑发生变化时上报网络拓扑变更。例如,一条链路出现故障断掉时,最小覆盖集合中的交换机检测到该链路服务无法正常连通,则会主动上报控制器该条链路的无法连通,使控制器能够及时而不需要等到探测时更新软件定义网络拓扑。
39.图2为本发明实施例提供的软件定义网络拓扑发现系统结构图,如图2所示,该软件定义网络拓扑发现系统包括:网络拓扑模块201、链路探测模块202和信息传输模块203。其中,网络拓扑模块201用于接收最小覆盖集合中的交换机上报的链路两端交换机信息和端口信息,生成网络拓扑信息;链路探测模块202用于探测每一条未被探测的链路的两端交换机信息和端口信息;信息传输模块203用于上报被探测的链路两端交换机信息和端口信息。
40.本发明实施例提供的系统实施例是为了实现上述各方法实施例的,具体流程和详细内容请参照上述方法实施例,此处不再赘述。
41.本发明实施例提供的软件定义网络拓扑发现系统,软件定义网络的每条链路两端交换机至少有一个在所述交换机最小覆盖集合中,最小覆盖集合中的交换机探测每一条未被探测的相连链路的对端交换机信息和端口信息,从而能够实现对软件定义网络的每条链路进行探测,同时能够确保对每条链路只进行一次探测。控制器收到每条链路两端交换机信息和端口信息后能够生成完整的软件定义网络拓扑信息。由于每条链路的两端交换机信息和端口信息只被探测一次和上报一次,能够有效避免广播式网络拓扑发现所产生的大量的链路发现报文,能够有效降低软件定义网络拓扑发现的处理开销和网络带宽消耗。
42.图3为本发明实施例提供的一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)301、通信接口(communications interface)302、存储
器(memory)303和总线304,其中,处理器301,通信接口302,存储器303通过总线304完成相互间的通信。通信接口302可以用于电子设备的信息传输。处理器301可以调用存储器303中的逻辑指令,以执行包括如下的方法:控制器计算软件定义网络的交换机最小覆盖集合,使软件定义网络的每条链路两端交换机至少有一个在所述交换机最小覆盖集合中,并使所述交换机最小覆盖集合的数量最小;所述最小覆盖集合中的交换机探测每一条未被探测的相连链路的对端交换机信息和端口信息,并上报被探测链路的两端交换机信息和端口信息给控制器;控制器根据链路两端交换机信息和端口信息生成网络拓扑信息。
43.此外,上述的存储器303中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明上述各方法实施例的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
44.另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:控制器计算软件定义网络的交换机最小覆盖集合,使软件定义网络的每条链路两端交换机至少有一个在所述交换机最小覆盖集合中,并使所述交换机最小覆盖集合的数量最小;所述最小覆盖集合中的交换机探测每一条未被探测的相连链路的对端交换机信息和端口信息,并上报被探测链路的两端交换机信息和端口信息给控制器;控制器根据链路两端交换机信息和端口信息生成网络拓扑信息。
45.以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
46.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
47.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
转载请注明原文地址:https://doc.8miu.com/read-1719353.html

最新回复(0)