SDN网络隔离性检测技术

2018-03-06 01:45牛长喜马晓旭
网络安全技术与应用 2018年1期
关键词:表项有向图子网

◆牛长喜 刘 坚 张 玲 马晓旭

(中国电子科技网络信息安全有限公司 四川 610000)

0 引言

软件定义网络(SDN, Software Defined Network)技术是目前新兴的一种网络技术。该技术为网络和使用网络的应用之间提供了灵活有效的信息交互接口,使网络具备“集中控制、开放性、网络可编程、网络功能虚拟化”等技术特征,从而赋予网络较强的动态捷变能力。

目前,SDN技术主要应用于多租户云计算数据中心内部网络的构建上,基于SDN技术架构所建设的网络称为SDN网络。由于不同租户共享云计算基础设施资源,出于安全方面的考虑,要求云计算数据中心内部网络必须保证不同租户之间的严格隔离性,不允许不同租户之间发生未被准许的网络流量传输行为。由于SDN技术具备“集中控制、网络可编程”等特征,使得SDN网络对在其上传输的数据流具有极强的管控能力,可以较方便地实现多租户云计算数据中心内部网络中不同子网之间的安全隔离,从而满足不同租户对网络安全防护能力的不同需求。

但是,由于网络配置错误等原因,多租户子网之间的隔离性有可能被破坏。本文提出一种 SDN网络隔离性检测技术,用于检测SDN网络的不同子网之间是否具备所要求的隔离性。

1 SDN网络隔离性检测

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

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

2 输入

为了判断SDN网络中的两个子网之间是否实现了安全隔离,必须获取以下信息:

(1)SDN网络全网网络拓扑:包括SDN网络中各个SDN交换机之间的互联关系,每个 SDN交换机的端口编号,此信息可以通过网管获得。

(2)全网所有SDN交换机内当前已经配置的所有流表项:此信息可以通过网管提供只读接口获取或者网管直接提供流表项记录文件。

(3)SDN控制器内部路由计算模块的路由策略数据:包括SDN控制器已计算得到的网络路由,此信息可以通过网管提供只读接口获取或者网管直接提供控制器路由计算记录文件。

(4)需要隔离的多个子网的具体位置和范围:一个子网的范围指的是组成子网的所有 SDN交换机,其具体位置指的是这些SDN交换机的DPID(Data Path IDentification, 数据通路标识),此信息可以通过网管获得。

(5)不允许在隔离子网间传输的数据流的特征:数据流的特征指的是不允许在子网之间传输的数据流的5元组信息,此信息可以通过网管获得。

3 核心算法

本节以两个子网之间的隔离性检测为例,提出核心算法。两个子网中的一个定为源子网,另一个定为目的子网。要在 SDN网络中判断从源子网产生的指定特征的网络数据流能否到达目的子网,即在源子网与目的子网之间是否针对特定数据流达到了隔离效果,采用如下步骤:

(1)将SDN网络整体进行抽象,抽象成一个只包含顶点和边的有向图 G(V,E)。在该有向图中,顶点表示网络中的 SDN交换机,边表示网络中交换机之间的链路。进一步地,在该有向图中需要根据源子网(发送数据流的子网)和目的子网的范围,将其分别抽象为两个单独的顶点。

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

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

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

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

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

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

4 结论

本文基于SDN技术“集中控制”的特点,提出一种SDN网络隔离性检测技术,能够检测云计算环境中不同租户之间的网络是否具备所要求的隔离性,设计了网络隔离性检测算法。初步实验表明,所设计的算法能够完成既定目标。

[1]NUNES B A A, MENDONCA M, XUAN-NAM N, et al. A survey of software-defined networking: past, present, and future of programmable networks[J].Communications Surveys and Tutorials, IEEE, 2014.

[2]MCKEOWN N, ANDERSON T, BALAKRISHNAN H,et al. OpenFlow: enabling innovation in campus networks[J].ACM SIGCOMM Computer Communication Review, 2008.

[3]FOSTER N, HARRISON R, FREEDMAN M J, et al.Frenetic: a network programming language[J].ACM SIGPLAN Notices, 2011.

猜你喜欢
表项有向图子网
一种简单子网划分方法及教学案例*
考虑荷电状态的交直流微电网多模式协调控制策略
一种改进的TCAM路由表项管理算法及实现
极大限制弧连通有向图的度条件
有向图的Roman k-控制
基于ARMA模型预测的交换机流表更新算法
子网划分问题研究及应用
SDN数据中心网络基于流表项转换的流表调度优化
本原有向图的scrambling指数和m-competition指数
一类含三个圈的本原有向图的m-competition指数