一种SDN网络隔离性检测方法与流程

文档序号:14914484发布日期:2018-07-11 00:20阅读:369来源:国知局

本发明涉及一种SDN网络隔离性检测方法。



背景技术:

软件定义网络(Software-Defined Networking,SDN)技术是目前新兴的一种网络技术,基于SDN技术架构所建设的网络称为SDN网络。SDN网络中,最下层为基础设施层,由SDN交换机组成,该层主要负责数据包的处理、转发,以及网络状态的收集。中间的控制层由SDN控制器软件组成,主要负责处理基础设施层中各种资源的编排,维护网络拓扑、网络状态数据等。最上层为应用层,在该层部署各种控制SDN网络的应用软件,这些应用软件通过SDN控制器的北向接口获取控制器收集到的基础设施层的信息,并向控制器下达控制指令,控制器负责将这些控制指令解析为可由网络设备理解并执行的命令,向指定的网络设备下达。

当前,SDN技术主要应用于多租户云计算数据中心内部网络的构建上。多租户云计算环境必须保障不同租户的子网之间具有隔离性,使得不同租户之间不能够发生不被允许的数据传输行为。由于SDN技术具备“集中控制、网络可编程”等特征,使得SDN网络对在其上传输的数据流具有极强的管控能力,可以较方便地实现多租户云计算数据中心内部网络中不同子网之间的安全隔离,从而满足不同租户对网络安全防护能力的不同需求。但是,由于网络配置错误等原因,多租户子网之间的隔离性有可能被破坏。需要提出一种SDN网络隔离性检测方法,用于检测SDN网络的不同子网之间是否具备所要求的隔离性。

由于SDN技术仍处于发展之中,基于SDN的多租户云计算数据中心内部网络属于新生事物。当前未见能够应用于SDN网络的隔离性检测方法。

由于不同租户共享云计算基础设施资源,出于安全方面的考虑,要求基于SDN的云计算数据中心内部网络必须保证不同租户之间的严格隔离性,不允许不同租户之间发生未被准许的网络流量传输行为。但是,由于云计算数据中心网络结构复杂、流量变化频繁等原因,SDN应用软件在计算租户之间隔离控制指令时可能出现错误,导致多租户子网之间的隔离性不能满足要求,因此,提出一种SDN网络隔离性检测方法,用于检测错误指令导致的网络隔离性失效。

基于SDN技术在网络中进行子网之间的隔离是通过在SDN控制器的路由计算模块中针对具有特定特征的数据进行计算实现的。需要隔离的两个子网(分别为源子网和目的子网)之间并非完全不允许进行数据传输操作,只是不允许具备特定特征的数据在子网之间传输。由于SDN“集中控制”的技术特点,在SDN网络中没有传统的路由协议,任何网络数据流的传输必须预先建立一条“传输路径”才能够实现,基本步骤是:SDN交换机将接收到的网络数据流的第一个数据包(此时在SDN交换机中没有与该数据包相匹配的流表项)通过“Packet-in”消息上报给SDN控制器。SDN控制器根据该数据包的包头信息以及收集得到的网络拓扑信息,计算出一条数据流传输路径,在与该路径相关的所有SDN交换机上配置相应的流表项。因此,只要指定需要在子网之间阻止传输的数据特征,在SDN控制器的路由计算模块中预先设置数据特征的判定规则,一旦控制器接收到的“Packet-in”消息中包含这些指定特征的数据包,则不予建立数据包传输路径(或者在SDN交换机配置流表项进行数据包丢弃操作),就可以达到阻断特定数据传输,使得子网之间对于此种特定特征的数据而言是隔离的。

但是,由于一些原因,控制器路由计算模块可能出现计算错误。要求源子网与目的子网之间不能传输具备某些特征的数据,SDN控制器通过“Packet-in”消息获知数据特征与网络拓扑等信息后,在进行路由计算时将加入数据特征的考虑,由于云计算数据中心网络拓扑与流量变化较频繁,使得SDN控制器计算所得的流表出现错误,在不应该建立网络传输路径的时候建立传输路径。SDN控制器将此错误的网络配置指令下发给相关SDN交换机之后,造成相关交换机在接收到有需要阻止的数据本应执行丢弃操作时执行了转发操作,从而使源子网与目的子网之间的隔离性失效。



技术实现要素:

为了克服现有技术的上述缺点,本发明提供了一种SDN网络隔离性检测方法,首次解决了SDN网络隔离性检测问题。

本发明解决其技术问题所采用的技术方案是:一种SDN网络隔离性检测方法,包括如下步骤:

步骤一、配置输入参数:包括需要隔离的子网的范围和具体位置、需要隔离的数据流的特征;

步骤二、获取网络状态:包括SDN网络全网网络拓扑结构、SDN交换机中所配置的流表信息、全网的路由计算策略;

步骤三、将SDN网络整体抽象成有向图,并将有向图中的每条边的权重初始化设置为一个数值较大的正数K;

步骤四、网络链路开销计算:根据获取的网络状态信息,计算有向图中每一条边在传输需要隔离的数据流时的开销;

步骤五、最小开销路径值计算:根据步骤四计算出的每一条边的开销,计算从源子网到目的子网之间的最小开销路径值;

步骤六、根据最小开销路径值判断子网之间的隔离性是否有效。

与现有技术相比,本发明的积极效果是:

本发明提出一种用于在基于新兴SDN技术构建的网络中进行网络隔离性检测的方法,首次解决了SDN网络隔离性检测问题,弥补了SDN网络隔离性检测空白。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1为SDN网络隔离性检测核心算法示例。

具体实施方式

一种SDN网络隔离性检测方法,包括如下内容:

由于在SDN网络中进行网络隔离的基本技术原理是“配置流表阻断数据流”,因此,要判断SDN网络中的子网之间是否实现了隔离,需要获取网络中各个SDN交换机内所配置的流表信息,进而分析当前网络中所配置的流表能否在需要被隔离的子网之间达到阻止指定数据流传输的目标。

由于在SDN网络中,应用层软件会不断地发出变更网络交换机内流表项的控制指令,并且交换机中的一些流表项也会随着时间的流逝自动失效,因此SDN交换机内配置的流表项通常会随着时间变化。为了准确判断子网之间是否实现了隔离,必须在网络状态不变(即网络中的流表保持固定的时间段内)的情况下进行判断。

本发明所提出的SDN网络隔离性检测方法基于一些必要的信息输入,通过所提出的核心算法进行检测。SDN网络隔离性检测方法如下,包括必要的信息输入、核心算法描述以及软件实现方案描述:

1、必要的信息输入:为了判断SDN网络中的两个子网之间是否实现了安全隔离,必须获取以下5方面信息。

1.1)SDN网络全网网络拓扑:包括SDN网络中各个SDN交换机之间的互联关系,每个SDN交换机的端口编号。

1.2)全网所有SDN交换机内当前已经配置的所有流表项。

1.3)SDN控制器内部路由计算模块的路由策略数据:包括SDN控制器已计算得到的网络路由。

1.4)需要隔离的多个子网的范围和具体位置:子网的范围指的是组成子网的所有SDN交换机,其具体位置指的是这些SDN交换机的DPID(Data Path IDentification,数据通路标识)。

1.5)不允许在隔离子网间传输的数据流的特征:不允许在子网之间传输的数据流的5元组信息。

2、核心算法描述:以两个子网(源子网、目的子网)之间的隔离为例,描述本发明所提出的SDN网络隔离性检测方法的核心算法,包括以下7个步骤。

2.1)将SDN网络整体进行抽象,抽象成一个只包含顶点和边的有向图G(V,E)。在该有向图中,顶点表示网络中的SDN交换机,边表示网络中交换机之间的链路。根据子网范围,将子网抽象为单独的顶点。

2.2)在有向图G(V,E)中,将每条边的权重初始化设置为一个数值较大的正数K(默认设置K=1000)。

2.3)在有向图G(V,E)中,在一条指定的边上,判断该有向边能否使指定特征的网络数据流通过。判断方法是:获取组成该边的两个节点所对应的两个SDN交换机上的流表信息,结合获取到的SDN控制器中的路由策略数据,判断指定特征的数据流是否能够从源节点沿着该有向边传输到目的节点。如果能够传输指定特征的数据流,则改变该条有向边的权重,将其设置为一个很小的正数n(默认设置n=1)。

2.4)重复步骤2.3,对有向图G(V,E)中的每条边都进行一次判定。最终确定该有向图G(V,E)中所有边在传输指定特征的数据流时的权重。

2.5)利用最小路径开销算法(Dijkstra算法),计算一条从源子网到目的子网开销最小的路径,并获取路径开销值(即组成该路径的所有边的权重相加的结果)。

2.6)基于路径开销值进行判断隔离性。如果计算所得的路径开销值小于单条边上所设置的正数K(默认设置K=1000),则说明计算出的路径能够将指定的数据流从源子网传输到目的子网,表示指定的数据流能够在源子网与目的子网之间流通,意味着两个子网对于该特征的数据隔离无效;相反,如果计算所得的路径开销值大于单条边上所设置的正数K,则表示计算出的路径中至少存在有一条边不能传输指定的数据流,说明该路径不能将指定的数据流从源子网传输到目的子网。由于此路径是通过最小路径开销算法计算得到的,它已经是开销最小的路径,网络中其它所有路径的开销必然大于K,因此其它路径也无法传输指定的网络数据流。因此,对于该特征的数据,两个子网之间的隔离性有效。

2.7)针对不允许在源子网与目的子网之间传输的每一种特征的数据流,重复步骤2.3~2.6,分析每一种特征的数据流是否能够从源子网传输到目的子网。如果对于所考察的每一种特征的数据流,计算表明网络中都不存在能够传输此数据流的路径,则表明源子网与目的子网之间的隔离性能够通过检测,满足要求。

在如图1的SDN网络隔离性检测核心算法示例中,有向图G(V,E)中源顶点(源子网)与目的顶点(目的子网)之间存在多条路径。需要在源子网与目的子网之间进行隔离的数据流特征为目的IP地址为192.168.40/24的数据流。通过分析网络中的每条边,发现整个网络中有3条边允许传输具备该特征(目的IP地址为192.168.40/24)的数据流,这3条边的权重设置为1(其余边的权重保持不变,仍然为K)。通过最小路径开销算法得到源顶点与目的顶点之间的最小开销路径,其开销为3K+2。由于此开销大于K,说明在该网络中无法将目的IP地址为192.168.40/24的网络数据流从源子网传输到目的子网。因此,针对此种特征的数据流,源子网与目的子网之间的隔离性有效。

3、软件实现方案描述:“SDN网络隔离性检测”软件以SDN架构中应用层APP的形式实现,该APP包含以下4个基本模块。

3.1)用户访问接口模块:用户访问该APP所使用的接口。用户通过访问该接口,调用APP运行,配置必要的输入参数(例如:子网的位置和范围,需要隔离的数据特征等),并获取最终的检测结果。

3.2)网络状态获取模块:与SDN控制器进行信息交互。通过SDN控制器提供的北向接口,获取整个网络的拓扑结构,SDN交换机中所配置的流表信息,全网的路由计算策略等信息。

3.3)网络链路开销计算模块:根据获取的网络状态信息,计算网络中每一条边在传输需要隔离的具备特定特征的数据流时的开销。如果能够传输需要隔离的网络数据流,则该边的开销设置为n(n=1),如果不能传输需要隔离的网络数据流,则开销仍然保持为K(K=1000)。

3.4)最小开销路径计算模块:根据模块3.3计算得到的网络中各条链路传输需要隔离的数据流的开销,计算从源子网到目的子网之间的最小开销路径。根据路径开销大小,判断针对需要隔离的数据流,源子网与目的子网之间的隔离性是否有效。针对所有需要隔离的数据流特征进行多次计算,最终判断子网之间的隔离性是否满足要求。

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