基于软件定义网络SDN的网络拓扑获取方法及装置与流程

文档序号:11523947阅读:292来源:国知局
基于软件定义网络SDN的网络拓扑获取方法及装置与流程

本发明涉及信息通信技术领域,具体涉及一种基于软件定义网络sdn的网络拓扑获取方法及装置。



背景技术:

目前,三层网络结构的应用已经非常广泛且技术成熟,但是,随着技术的发展,它的瓶颈也不断涌现,导致组网设计中网络工程师逐渐选择放弃这种结构的网络。随着越来越多的企业寻求效用的最大化和数据中心的利用率,主流的三层网络拓扑结构越来越不能满足需求,流量的激增,使得传统三层网络结构存在非常明显的性能衰减。而叶脊网络拓扑结构可以有效解决这一问题,通过增加一层平行于主干纵向网络结构的横向网络结构,在这层横向接口上增加相应的交换网络,这种生成树模式是三层网络结构无法做到的。叶脊网络拓扑结构提供了解决横向网络连接的传输瓶颈,而且提供了高度的扩展性,它几乎能适应所有大中小型数据中心。可以预见,所有企业的it建设都是走向收敛型和高层次的虚拟化型叶脊网络结构。

但是,叶脊网络拓扑同样存在缺点,即当交换节点较多,网络规模较大时,叶脊网络拓扑结构将变得非常复杂。在sdn开源控制器opendaylight现有拓扑发现时间测试中,在同样数量交换节点的条件下,叶脊网络拓扑发现所用的时间,是线性拓扑结构和环形拓扑结构的4倍以上。随着sdn所控网络规模的不断增大,需要一种新的方法来有效提高sdn控制器针对叶脊网络拓扑发现的实时性。



技术实现要素:

有鉴于此,本发明实施例提供了一种基于软件定义网络sdn的网络拓扑获取方法及装置,以解决现有技术中在网络规模较大时不易获取网络拓扑的问题。

为此,本发明实施例提供了如下技术方案:

本发明实施例提供了一种基于软件定义网络sdn的网络拓扑获取方法,应用于sdn控制器,包括:获取sdn网络中sdn交换机之间的线性拓扑和/或环形拓扑;将所述线性拓扑和/或环形拓扑进行叠加得到所述sdn网络的整网拓扑。

可选地,获取sdn网络中sdn交换机之间的线性拓扑和/或环形拓扑包括:将所述sdn网络中的所有sdn交换机进行编号;根据编号后的各个sdn交换机获取所述sdn网络中任意至少两个sdn交换机之间的线性拓扑和/或环形拓扑。

可选地,所述任意至少两个sdn交换机包括两个sdn交换机或者三个sdn交换机。

可选地,获取sdn网络中sdn交换机之间的线性拓扑和/或环形拓扑包括:根据编号后的各个sdn交换机向所述sdn网络中的任意三个sdn交换机发送封装有第一lldp报文的packet_out报文;其中,所述sdn网络中除所述三个sdn交换机之外的sdn交换机视为断开连接;分别从所述三个sdn交换机接收封装有第二lldp报文的packet_in报文;其中,所述第二lldp报文用于指示所述三个sdn交换机中的任一sdn交换机与所述三个sdn交换机中其他sdn交换机之间的拓扑信息;根据所述封装有第二lldp报文的packet_in报文获取所述三个sdn交换机之间的线性拓扑和/或环形拓扑。

可选地,所述第二lldp报文是通过所述三个sdn交换机中的任一sdn交换机接收所述三个sdn交换机中其他sdn交换机广播的第一lldp报文得到的。

可选地,获取sdn网络中sdn交换机之间的线性拓扑和/或环形拓扑之后,将所述线性拓扑和/或环形拓扑进行叠加得到所述sdn网络的整网拓扑之前,还包括:存储所述线性拓扑和/或环形拓扑。

本发明实施例还提供了一种基于软件定义网络sdn的网络拓扑获取装置,应用于sdn控制器,包括:第一获取模块,用于获取sdn网络中sdn交换机之间的线性拓扑和/或环形拓扑;第二获取模块,用于将所述线性拓扑和/或环形拓扑进行叠加得到所述sdn网络的整网拓扑。

可选地,所述第一获取模块包括:编号单元,用于将所述sdn网络中的所有sdn交换机进行编号;第一获取单元,用于根据编号后的各个sdn交换机获取所述sdn网络中任意至少两个sdn交换机之间的线性拓扑和/或环形拓扑。

可选地,所述任意至少两个sdn交换机包括两个sdn交换机或者三个sdn交换机。

可选地,所述第一获取模块还包括:发送单元,用于根据编号后的各个sdn交换机向所述sdn网络中的任意三个sdn交换机发送封装有第一lldp报文的packet_out报文;其中,所述sdn网络中除所述三个sdn交换机之外的sdn交换机视为断开连接;接收单元,用于分别从所述三个sdn交换机接收封装有第二lldp报文的packet_in报文;其中,所述第二lldp报文用于指示所述三个sdn交换机中的任一sdn交换机与所述三个sdn交换机中其他sdn交换机之间的拓扑信息;第二获取单元,用于根据所述封装有第二lldp报文的packet_in报文获取所述三个sdn交换机之间的线性拓扑和/或环形拓扑。

可选地,所述第二lldp报文是通过所述三个sdn交换机中的任一sdn交换机接收所述三个sdn交换机中其他sdn交换机广播的第一lldp报文得到的。

可选地,所述装置还包括:存储模块,用于在所述第一获取模块获取sdn网络中sdn交换机之间的线性拓扑和/或环形拓扑之后,所述第二获取模块将所述线性拓扑和/或环形拓扑进行叠加得到所述sdn网络的整网拓扑之前,存储所述线性拓扑和/或环形拓扑。

本发明实施例技术方案,具有如下优点:

本发明实施例提供了一种基于软件定义网络sdn的网络拓扑获取方法及装置,应用于sdn控制器,获取sdn网络中sdn交换机之间的线性拓扑和/或环形拓扑,例如sdn控制器可以快速地获取两个sdn交换机之间的线性拓扑,也可以快速地获取三个sdn交换机之间的线性拓扑或者环形拓扑,将获取到的sdn控制器下的所有sdn交换机之间的线性拓扑和/或环形拓扑进行叠加得到sdn网络的整网拓扑,例如通过sdn交换机之间的线性拓扑和/或环形拓扑叠加出复杂的叶脊网络,解决了现有技术中,直接获取复杂网络的拓扑结构效率较低的问题,提高了复杂网络拓扑的发现速度和复杂网络结构的整网视图获取实时性,同时,增加网络拓扑获取的灵活性。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的基于sdn的网络拓扑获取方法的流程图;

图2是根据本发明实施例的获取网络拓扑的示意图;

图3是根据本发明实施例的基于sdn的网络拓扑获取装置的一个结构框图;

图4是根据本发明实施例的第一获取模块的一个结构框图;

图5是根据本发明实施例的第一获取模块的另一个结构框图;

图6是根据本发明实施例的基于sdn的网络拓扑获取装置的另一个结构框图。

具体实施方式

下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

实施例1

在本实施例中提供了一种基于软件定义网络sdn的网络拓扑获取方法,例如可以适用于sdn构架下sdn交换机发现叶脊网络拓扑,图1是根据本发明实施例的基于sdn的网络拓扑获取方法的流程图,如图1所示,该流程包括如下步骤:

步骤s11,获取sdn网络中sdn交换机之间的线性拓扑和/或环形拓扑;例如sdn控制器可以快速地获取两个sdn交换机之间的线性拓扑,也可以快速地获取三个sdn交换机之间的线性拓扑或者环形拓扑;

步骤s12,将上述线性拓扑和/或环形拓扑进行叠加得到sdn网络的整网拓扑;例如通过sdn交换机之间的线性拓扑和/或环形拓扑叠加出复杂的叶脊网络。

通过上述步骤,sdn控制器首先获取其下的所有sdn交换机之间的线性拓扑和/或环形拓扑,将获取到sdn交换机之间的线性拓扑和/或环形拓进行叠加即可发现sdn网络的整网拓扑。由于对于sdn控制器的拓扑发现机制而言,可以快速的获取到线性拓扑和环形拓扑,因此通过本发明可选实施例提高了网络拓扑获取的效率。相比于现有技术中,在sdn控制器节点较多,网络规模较大时,网络拓扑结构将非常复杂,在这种情况下,如果直接获取网络拓扑将耗费较多的时间。通过本发明实施例解决了现有技术中,直接获取复杂网络的拓扑结构效率较低的问题,提高了复杂网络拓扑的发现速度和复杂网络结构的整网视图获取实时性,同时,增加网络拓扑获取的灵活性。

上述步骤s11涉及到获取sdn网络中sdn交换机之间的线性拓扑和/或环形拓扑,为了方便获取到sdn控制器下的所有sdn交换机的线性拓扑和环形拓扑,在一个可选实施例中,将sdn网络中的所有sdn交换机进行编号,根据编号后的各个sdn交换机获取sdn网络中任意至少两个sdn交换机之间的线性拓扑和/或环形拓扑。由于两个或者三个sdn交换机之间的网络拓扑关系比较简单,两个sdn交换机之间的拓扑关系只可能是线性拓扑,三个sdn交换机之间的拓扑关系可以是线性拓扑也可以是环形拓扑,因此,在一个可选实施例中,上述任意至少两个sdn交换机包括两个sdn交换机或者三个sdn交换机。

在上述任意至少两个sdn交换机包括三个sdn交换机的情况下,在一个可选实施例中,根据编号后的各个sdn交换机向该sdn网络中的任意三个sdn交换机发送封装有第一lldp报文的packet_out报文,其中,sdn网络中除该三个sdn交换机之外的sdn交换机视为断开连接,分别从该三个sdn交换机接收封装有第二lldp报文的packet_in报文;其中,该第二lldp报文用于指示该三个sdn交换机中的任一sdn交换机与该三个sdn交换机中其他sdn交换机之间的拓扑信息,根据该封装有第二lldp报文的packet_in报文获取该三个sdn交换机之间的线性拓扑和/或环形拓扑。具体地,该第二lldp报文是通过该三个sdn交换机中的任一sdn交换机接收该三个sdn交换机中其他sdn交换机广播的第一lldp报文得到的。

下面通过一个具体地可选实施例,以“每三个节点”为一个单位进行拓扑结构的获取为例进行详细说明。

(1)sdn控制器在发现sdn交换机(以下称网络节点)接入时,根据发现过程,对网络节点进行顺序编号,如a、b、c……。

(2)sdn控制器按照编号顺序,以“每三个节点”为一个单位进行拓扑结构的获取,即通过packet_out报文,封装lldp报文进入openflow,并分别分发给此三个节点的交换机,此时,除此三节点外的其他节点将被控制器默认为“断开连接”。由于三个节点所产生任何连接或拓扑都是线性拓扑或环形拓扑,对于sdn控制器的拓扑发现机制而言,线性拓扑与环形拓扑的获取速度非常快。

(3)packet_out报文中含有动作:分发lldp从交换机的每个端口转发出去,因此,此时的三个节点将根据实际的拓扑连接,将lldp报文转发至对端交换机。

(4)三节点中收到lldp报文的交换机根据sdn交换机的特性,无法自行处理lldp报文的转发规则,则会将lldp报文封装进packet_in报文,并上送至控制器。

(5)sdn控制器根据三节点上送的packet_in报文,获取三节点的拓扑结构信息。

(6)任意“三节点”拓扑信息的获取可以同时完成,不需要等待上一三节点packet_in信息上送至sdn控制器以后,sdn控制器再下发packet_out报文给下一“三节点”。

(7)sdn控制器按照编号不断重复三节点拓扑获取流程,并将所获取的三节点拓扑信息保存到缓存。

(8)当所有节点拓扑均获取后,sdn控制器将从缓存中提取所有节点的拓扑信息,并进行叠加,获得完整的拓扑信息。

(9)sdn控制器将周期性的对网络中的节点进行编号、拓扑获取和拓扑叠加,用以及时更新网络拓扑的变化。

以一个8个节点的叶脊网络拓扑的获取为例进行说明,如图2所示。

s1:当sdn控制器发现8个sdn交换机时,将首先对8个节点进行编号,即a、b、c、d、e、f、g、h。

s2:sdn控制器以“每三个节点”为单位向编号a、b、c的网络节点发送封装了lldp的packet_out报文,该packet_out报文含有动作:分发lldp从交换机的每个端口转发出去。此时,控制器默认d、e、f、g、h节点为断开。编号a的网络节点将根据实际连接将lldp发送至b或c节点,编号b的网络节点将根据实际连接将lldp发送至a或c节点,编号c的网络节点将根据实际连接将lldp发送至a或b节点。

s3:a、b、c三节点由于sdn交换机的特性,将不能处理lldp的转发规则,则将lldp封装进packet_in报文,并上送sdn控制器。

s4:sdn控制器获取lldp后,则获取了a、b、c三节点的网络拓扑。

s5:同样的操作应用于其他任意三节点排列组合的拓扑,并将所有三节点拓扑信息进行叠加,以获取具有叶脊网络拓扑特征的整网拓扑。

在上述任意至少两个sdn交换机包括两个sdn交换机的情况下,在一个可选实施例中,根据编号后的各个sdn交换机向sdn网络中的任意两个sdn交换机发送封装有第一lldp报文的packet_out报文;其中,sdn网络中除该两个sdn交换机之外的sdn交换机视为断开连接,分别从该两个sdn交换机接收封装有第二lldp报文的packet_in报文;其中,该第二lldp报文用于指示该两个sdn交换机中的一个sdn交换机与另一个sdn交换机之间的拓扑信息,根据封装有第二lldp报文的packet_in报文获取该两个sdn交换机之间的线性拓扑和/或环形拓扑,进而获取到sdn控制器下所有sdn交换机之间的线性拓扑。具体地,第二lldp报文是通过该两个sdn交换机中的一个sdn交换机接收另一个sdn交换机广播的第一lldp报文得到的。

通过本发明可选实施例,在sdn控制器中将叶脊拓扑的复杂结构拆分为若干个线性拓扑或环形拓扑,并利用封装lldp的packet_out报文与packet_in报文,对这些三节拓扑进行获取和叠加,从而获取整网拓扑结构。该方法可以有效提高叶脊网络拓扑的发现速度,提高复杂网络结构的整网视图获取实时性,同时,增加网络拓扑获取的灵活性。

为了在获取到sdn控制器下所有的线性拓扑和环形拓扑之后再进行叠加,在一个可选实施例中,获取sdn网络中sdn交换机之间的线性拓扑和/或环形拓扑之后,将该线性拓扑和/或环形拓扑进行叠加得到该sdn网络的整网拓扑之前,存储该线性拓扑和/或环形拓扑,从而保证了叠加得到的sdn网络的整网拓扑的正确性。

实施例2

在本实施例中还提供了一种基于软件定义网络sdn的网络拓扑获取装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图3是根据本发明实施例的基于sdn的网络拓扑获取装置的一个结构框图,应用于sdn控制器,如图3所示,该装置包括:第一获取模块31,用于获取sdn网络中sdn交换机之间的线性拓扑和/或环形拓扑;第二获取模块32,用于将该线性拓扑和/或环形拓扑进行叠加得到该sdn网络的整网拓扑。

通过上述步骤,第一获取模块31首先获取其下的所有sdn交换机之间的线性拓扑和/或环形拓扑,第二获取模块32将获取到sdn交换机之间的线性拓扑和/或环形拓进行叠加即可发现sdn网络的整网拓扑。由于对于sdn控制器的拓扑发现机制而言,可以快速的获取到线性拓扑和环形拓扑,因此通过本发明可选实施例提高了网络拓扑获取的效率。相比于现有技术中,在sdn控制器节点较多,网络规模较大时,网络拓扑结构将非常复杂,在这种情况下,如果直接获取网络拓扑将耗费较多的时间。通过本发明实施例解决了现有技术中,直接获取复杂网络的拓扑结构效率较低的问题,提高了复杂网络拓扑的发现速度和复杂网络结构的整网视图获取实时性,同时,增加网络拓扑获取的灵活性。

图4是根据本发明实施例的第一获取模块的一个结构框图,如图4所示,第一获取模块31包括:编号单元311,用于将该sdn网络中的所有sdn交换机进行编号;第一获取单元312,用于根据编号后的各个sdn交换机获取该sdn网络中任意至少两个sdn交换机之间的线性拓扑和/或环形拓扑。

可选地,该任意至少两个sdn交换机包括两个sdn交换机或者三个sdn交换机。

图5是根据本发明实施例的第一获取模块的另一个结构框图,如图5所示,该第一获取模块31还包括:发送单元313,用于根据编号后的各个sdn交换机向该sdn网络中的任意三个sdn交换机发送封装有第一lldp报文的packet_out报文;其中,该sdn网络中除该三个sdn交换机之外的sdn交换机视为断开连接;接收单元314,用于分别从该三个sdn交换机接收封装有第二lldp报文的packet_in报文;其中,该第二lldp报文用于指示该三个sdn交换机中的任一sdn交换机与该三个sdn交换机中其他sdn交换机之间的拓扑信息;第二获取单元315,用于根据该封装有第二lldp报文的packet_in报文获取该三个sdn交换机之间的线性拓扑和/或环形拓扑。

可选地,该第二lldp报文是通过该三个sdn交换机中的任一sdn交换机接收该三个sdn交换机中其他sdn交换机广播的第一lldp报文得到的。

图6是根据本发明实施例的基于sdn的网络拓扑获取装置的另一个结构框图,如图6所示,该装置还包括:存储模块61,用于在该第一获取模块获取sdn网络中sdn交换机之间的线性拓扑和/或环形拓扑之后,该第二获取模块将该线性拓扑和/或环形拓扑进行叠加得到该sdn网络的整网拓扑之前,存储该线性拓扑和/或环形拓扑。

上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1