基于OpenFlow的虚拟网络架构的设计与实现
2014-12-12孙英英李战怀
孙英英,李战怀,李 宁,石 琳
(西北工业大学计算机学院,陕西 西安 710129)
0 引言
网络协议给互联网带来了巨大的灵活性,但网络协议的核心技术也是造成网络局限性的主要原因。为了打破这种局限性,未来网络[1-2]技术开始越来越多地得到研究者的关注。其中,OpenFlow技术[3]因为其良好的可扩展性和可编程性,被广泛地应用到了这些网络研究的实验中。OpenFlow技术已经被应用于GENI[4]核心网的构建;同时,NEC、思科、Juniper等公司也纷纷推出了支持OpenFlow技术的网络设备。
然而,想要利用OpenFlow网络完全替代现有应用中的网络结构是不现实的。因此,如何在不牺牲现有网络结构的前提下整合所有网络资源,已经成为网络研究所面临的一个巨大的挑战。加强对混合型OpenFlow网络的研究,可以为解决这一问题提供一个有效的方案。本文使用OpenFlow技术构建的虚拟网络架构,就是一种混合型OpenFlow网络,它实现对OpenFlow设备以及非OpenFlow设备的统一化管理,提高了网络兼容性,并将OpenFlow技术可扩展、可编程的特性延展到整个网络中,对创新网络的研究与发展和网络服务质量[5-6]的提高具有重要意义。
1 OpenFlow技术简介
OpenFlow 是软件定义网络[7](Software Define Network,SDN)中的重要概念,其核心思想是将控制数据流的规则和逻辑与数据流处理过程相分离,通过软件定义控制的方式,实现对网络流量和数据传输的独立控制。
OpenFlow作为一种新型网络协议具有较高的可扩展性和隔离性。在OpenFlow网络中,数据层是用于数据转发的交换机和路由器,而控制层是可以由用户掌控的控制器。利用控制器与数据流的分离和虚拟化软件FlowVisor,OpenFlow支持不同的网络研究实验,在互不影响的情况下并行,更重要的是不会对现有应用中的网络服务产生影响。另一方面,Open-Flow具有更强的可编程性。它可以定义数据传输过程中的每个原子动作,并可以定义由控制器使用的接口,来保证控制器对这些原子动作的控制权。同时,OpenFlow在控制方式、网络协议和算法等方面支持广泛的创新,用户可以根据需要对控制方式、传输协议等进行编程和实验。
图1 OpenFlow网络结构图
如图1所示,OpenFlow网络由控制服务器(Controller)、FlowVisor[8]和 OpenFlow 交换机[9](OpenFlow Switch)三部分组成。控制服务器实现对交换机中流表的控制,进而实现对整个网络中数据转发的控制;FlowVisor是 OpenFlow用来支持虚拟化技术[10-11]的专用软件,利用它可以虚拟化出不同的实验网络,让它们以相互独立的方式运行各自的网络协议和算法,同时保证实验网络与商务网络相分离;OpenFlow交换机主要负责数据的转发,它在本地维护与路由表不同的数据流表,作为数据转发的依据。
OpenFlow作为实现SDN网络创新架构的核心技术,已经不仅仅局限于在校园网络实验平台[12]中的应用,而是被广泛地应用于网络技术的研究和实践中。目前,研究者所进行的研究主要集中在利用虚拟技术实现OpenFlow网络,以及利用OpenFlow控制器同时控制OpenFlow网络和一种非OpenFlow网络[13-14],但并不能实现对现有应用中的所有网络结构进行管理。
目前,利用OpenFlow实现网络统一管理面临二方面的问题:(1)OpenFlow网络不具备管理非Open-Flow设备的能力;(2)非OpenFlow设备因为不支持OpenFlow协议,不能直接与OpenFlow网络控制器通信。为了整合所有网络资源,需要进一步加强对混合型OpenFlow网络的研究。因此,本文构建一种基于OpenFlow技术的虚拟网络架构,实现非OpenFlow网络与OpenFlow技术的结合,统一管理网络资源,使非OpenFlow网络也能够具有优秀的可扩展性和可编程性。
2 基于OpenFlow的虚拟网络架构设计
2.1 架构层次设计
本文所设计的基于OpenFlow的虚拟网络架构,实现对异构网络的统一管理,增强了网络的兼容性、可扩展性和可编程性。基于OpenFlow的虚拟网络架构主要分为4个层次,分别为应用层、VTN虚拟平台、控制层和物理层,如图2所示。
图2 虚拟网络架构层次图
(1)应用层可以访问和监测网络架构运行情况,查看和设置数据流处理的规则和逻辑。应用层中的应用程序分为GUI和CLI两种形式。GUI即图形界面,方便用户了解网络流量控制和数据转发的情况,并允许用户根据需要向网络中添加或删除实体和数据流处理规则;CLI命令行程序,可以使专业用户通过简单的命令完成更多的功能,并具有更高的效率。
(2)VTN虚拟平台是基于OpenFlow虚拟网络架构的核心部分,它涵盖了虚拟网络架构中的主要业务逻辑,可以被看作是网络硬件层与用户应用层之间的连接桥梁。在VTN虚拟平台中,服务器位于最上层,负责向外部应用程序提供操作内部数据所需要的服务接口;逻辑层的作用是建立一个逻辑网络,用于定义各种网络请求的处理逻辑,指定完成不同网络任务所需要的设备及控制器,实现虚拟网络中的流控制、流过滤器和网络监控等功能;物理层主要负责物理实体的配置与维护,如查看或修改通信状态,改变或查看网络中物理设备的配置信息,修改控制器、域或边界的配置信息等;驱动器为VTN虚拟平台提供操作单独物理设备的接口。
(3)控制层由各种不同网络设备的控制器组成,其中包括OpenFlow交换机控制器、Overlay交换机控制器和Legacy交换机控制器等,用于控制对应的物理设备的数据转发。
(4)物理层是这个网络架构中的底层基础,包含了网络通信过程中所需要的所有硬件。主要包括OpenFlow设备和非OpenFlow设备2大类,如Open-Flow交换机、Legacy交换机和Overlay交换机等。
2.2 数据流表设计
控制器能够通过OpenFlow协议标准接口对混合型OpenFlow网络中的交换机数据流表进行控制,完成向数据流表中添加、修改和删除流实例的功能。基于OpenFlow虚拟网络架构的数据流表中的流实例分为3个部分,如图3所示。
图3 流实例组成
规则定义了数据包的特征,其中包括交换端口、VLAN ID、MAC源地址和目的地址、IP源地址和目的地址等,用于说明数据包转发的源地址和目的地址等相关信息;操作定义了能够对数据包进行的处理,如输出包到端口、封装后送往控制器、发送到正常处理路径、丢弃包和修改域等;状态定义了一些计数器,可以对数据包和字节数进行统计,完成监测网络运行情况的任务。
3 VTN虚拟平台的实现
VTN虚拟平台是基于OpenFlow的虚拟网络架构中的核心部分,提供与物理网络和逻辑网络相关的各种服务以及调用接口。外部应用程序可以通过该平台提供的接口来获取这些服务。
VTN虚拟平台的最终目标是控制和管理整个网络,包括OpenFlow网络、Overlay网络和Legacy网络等。通过将非OpenFlow设备转换成类似于OpenFlow设备的工作方式,达到将OpenFlow网络可扩展、可编程、支持广泛创新的特性扩展到整个网络的目的。
要实现VTN虚拟平台的最终目标,需要在非OpenFlow网络与OpenFlow控制器之间建立起一个虚拟的数据通路,称为非OpenFlow虚拟数据通路。它可以同时与OpenFlow控制器和非OpenFlow设备之间进行通信。这个非OpenFlow虚拟数据通路对于实现OpenFlow控制器控制非OpenFlow设备至关重要,所以需要详细了解它的工作方式以及时序处理逻辑。
3.1 非OpenFlow虚拟数据通路
在OpenFlow网络中,如果数据流转发的要求与某个特定的数据流相匹配,数据包会被发送到对应的输入输出端口上;如果是不匹配的,数据流转发的信息将会发送到控制器,由控制器决定数据包发送的目的地址。
而非OpenFlow设备并不能向控制器直接转发数据流信息,应用OpenFlow协议的数据流到来时,因为非OpenFlow设备无法识别传输协议,数据包将会被丢弃。为了避免数据包的丢失,构建非OpenFlow虚拟数据通路,在非OpenFlow设备与OpenFlow设备之间建立通信,进而实现非OpenFlow设备与控制器的通信。因为通信的建立需要经过OpenFlow设备,所以非OpenFlow设备被放置在2个OpenFlow设备之间,作为数据流的输入输出设备使用。
图4为网络中数据流处理的流程图,当新的数据流被发送到网络中时,第一个数据包被转发到控制器,由控制器向数据通路上添加控制数据流的规则,判断数据传输的最佳路径,如果需要流经非Open-Flow设备,则会根据VLAN ID在非OpenFlow设备之间建立一个链路,构成非OpenFlow虚拟数据通路。这个链路可以通过MPLS/GMPLSLSP技术实现。
OpenFlow控制器使用OpenFlow协议与非Open-Flow虚拟数据通路进行通信,非OpenFlow虚拟数据通路又通过SNMP与实际的物理设备通信。也就是说,非OpenFlow虚拟数据通路,在OpenFlow控制器和实际的物理设备之间起到了桥梁的作用。这个非OpenFlow虚拟数据通路,模拟了OpenFlow数据通路的工作方式,并包含了非OpenFlow设备的配置信息。OpenFlow控制器完成到数据流分析请求之后,首先将控制信息返回到非OpenFlow虚拟数据通路上,这个虚拟数据通路负责解析命令,并将命令应用到物理设备上。
图4 数据流处理流程
另一方面,非OpenFlow设备还能直接与对应的控制器驱动相连接,这样能在不影响非OpenFlow设备原有数据转发服务的基础上,构建具有可扩展性和可编程性的混合型OpenFlow网络。一个需要注意的问题是,非OpenFlow虚拟数据通路与交换机驱动器是点对点连接,即一个非OpenFlow虚拟数据通路只能与一种驱动器相连接,只能专门地为这种网络设备制定数据转发规则和逻辑。
3.2 虚拟通路时序处理逻辑
当程序启动时,首先访问启动数据库,获取程序启动所必须的配置信息,并注册非OpenFlow设备。
图5 虚拟通路时序图
如图5所示,程序启动阶段,虚拟数据通路会利用不同网络设备的控制器获取网络的配置信息,决定正确的通信协议,同时在虚拟设备与控制器之间建立SNMP连接,在对应的物理设备上获取到交换机接口信息之后会通过SNMP连接,将其应用到虚拟设备的接口上。当交换机在虚拟数据通路上注册成功之后,OpenFlow控制器就能够通过内部通道来管理实际应用中的这些非OpenFlow设备。
启动完成后,物理设备与虚拟设备之间就建立起来一个数据通路,这样OpenFlow控制器就能够对流经物理设备的数据流进行控制了。
4 测试实验结果及分析
本实验对基于OpenFlow的虚拟网络架构进行实验验证,主要验证其可用性和网络数据处理能力。
测试用的实验网络是某公司开发OpenFlow交换机所使用的测试网络。测试软件运行在Linux操作系统上,包括整个网络运行所需的虚拟化环境;数据转发交换机包括不同网络服务供应商的不同交换机设备:Extreme Network、ProgrammableFlow、RackSwitch G8264等。
首先,利用虚拟网络架构的CLI在VTN虚拟平台中构建实验网络所对应的虚拟网络,将物理设备的配置信息添加到启动数据库中,方便程序启动时,注册物理设备。然后,利用GUI图形界面对网络内部数据流转发情况进行监测,通过观察界面显示的源IP与目的IP以及VLAN ID等信息,说明数据流能够根据实验预想由OpenFlow交换机经过非OpenFlow设备转发到目标设备。由此,可以证明这个虚拟网络架构可以根据VLAN ID建立虚拟数据通路,实现OpenFlow控制器与非OpenFlow设备的通信。
程序正常运行之后,在负载流量为100~1100Mbit/s的情况下,分别监测网络吞吐量以及丢包情况,得到对比结果如图6所示。
图6 负载与吞吐量和丢包率对比图
当网络中的负载流量达到700Mbit/s之后,随着网络负载的增加,网络吞吐量没有明显增加,而丢包率却随之显著增加,所以网络架构处理负载在700Mbit/s的情况下工作效率比较理想。
当网络负载较轻时,网络吞吐量会随着负载的增加而增加,呈线性增长,当达到网络的临界值时,网络吞吐量不会在增加,甚至可能会降低。不同的实验网络中,网络吞吐量也不同,本实验中网络吞吐量在500Mbit/s的水平,已经达到了网络承载能力的平均水平。
5 结束语
基于OpenFlow的虚拟网络架构具有以下3个方面的优势:
(1)数据转发控制透明化:通过应用程序为用户提供了对网络内部数据流处理逻辑以及数据转发情况的监视功能。用户能定制控制逻辑和规则,查看数据流统计结果。
(2)控制器与数据流相分离:OpenFlow控制器被综合到VTN虚拟平台中,提供可编程的控制功能,而数据流的转发则是由控制层和物理层来完成的,根据控制器指令在物理设备间直接进行数据转发。
(3)不同网络结构统一化:在VTN虚拟平台中将不同的网络设备转化为OpenFlow网络设备,由Open-Flow控制器提供统一的管理控制功能。
基于OpenFlow虚拟网络架构的测试实验表明该网络架构可以正常转发网络中的各种数据流,并且该网络架构处理负载在700Mbit/s的情况下工作效率比较理想,并达到了网络承载能力的平均水平。对未来混合型OpenFlow网络的研究具有重要意义。
本文是对混合型OpenFlow网络进行了初步探究,目前仍存在许多不足。今后将会在性能方面对基于OpenFlow的虚拟网络架构进一步的优化,同时尝试应用实际网络数据来进行测试,已达到其可以应用于大规模实际网络中的目的。
[1] 王丽君,刘永强,张健.基于OpenFlow的未来互联网实验技术研究[J].电信网技术,2011,6(6):1-4.
[2] 贺鹏,关洪涛,谢高岗,等.支持未来网络创新的可编程虚拟化路由器技术[J].中兴通讯技术,2011,17(2):20-24.
[3] 周烨,李勇,王芳,等.基于OpenFlow的网络实验平台技术[J].清华大学学报:自然科学版,2012,52(11):1540-1544.
[4] GENI.GENI:Global Environment for Network Innovations[DB/OL].http://www.geni.net/wp-content/uploads/2009/04/geni-at-a-glance-final.pdf,2013-08-05.
[5] 李英壮,孙梦,李先毅,等.基于OpenFlow技术的QoS管理系统的设计与实现[J].广西大学学报,2011,36(1):42-46.
[6] 林闯,王元卓,任丰原.新一代网络QoS研究[J].计算机学报,2008,31(9):1525-1535.
[7] 郭春梅,张如辉,毕学尧.SDN网络技术及其安全性研究[J].信息网络安全,2012(8):112-114.
[8] Sherwood Rob,Gibby Glen,Yapy Kok-Kiong,et al.FlowVisor:A Network Virtualization Layer[DB/OL].http://sb.tmit.bme.hu/mediawiki/images/c/c0/FlowVisor.pdf,2013-08-05.
[9] OpenFlow Consortium.OpenFlow Switch Specification V1.0[DB/OL]. http://archive.openflow.org/documents/openflow-spec-v1.0.0.pdf,2013-08-05.
[10] YANG Chen,Gong Xiangyang,Wang Wendong,et al.VNMC for network virtualization in OpenFlow network[C]//2012 IEEE,International Conference on Cloud Computing and Intelligence Systems.2012:797-801.
[11] Shimonishi Hideyuki,Ishii Shuji.Virtualized network infrastructure using OpenFlow[C]//2010 IEEE,Network Operations and Management Symposium Workshops.2010:74-79.
[12] Mckeown N,et al.OpenFlow:Enabling innovations in campus networks[J].ACM SIGCOMM Computer Communication Review,2008,38(2):69-74,.
[13] Feroando N N Farias,Joao J Salvatti,Eduardo C Cerqueira,et al.A proposal management of the legacy network environment using OpenFlow control plane[C]//2012 IEEE,Network Operations and Management Symposium(NOMS).2012:1143-1150.
[14] Siamak Azodolmolky,Reza Nejabati,Eduard Escalona,et al.Integrated OpenFlow-GMPLScontrol plane:An overlay model for software defined packet over optical networks[J].Optics Express,2011,19(26):B421-B428.