DockerNet:容器技术驱动的SDN/NFV仿真平台研究

2019-05-14 08:52梁永珍彭习羽覃丽霏何渝川覃胤嘉
锋绘 2019年2期
关键词:虚拟化

梁永珍 彭习羽 覃丽霏 何渝川 覃胤嘉

摘要:虚拟化与云化是未来网络的演进方向。SDN/NFV是未来网络的核心技术,仿真研究是SDN/NFV的常用手段,Mininet是常用的SDN仿真工具,但不支持NFV。为解决上述问题,本设计拟采用Docker轻量级、容器化的优势,搭建具备SDN/NFV能力的仿真平台-DockerNet。利用Docker容器技术封装虚拟网络功能(Virtual NetworkFunction,VNF),通过ovs-docker工具实现容器化的VNF与OVS交换机连接,形成基本的SDN/NFV仿真环境。同时,为实现SDN/NFV仿真的便利性,DockerNet提供了典型网络拓扑一健部署、异型拓扑拖拽创建、QOS信息自动采集并可视化等功能。为SDN/NFV的理论研究、实验仿真、原型系统设计提供了基础实验平台。

关键词:SDN;容器技术;虚拟化

背景及现状分析

软件定义网络[1](Software Defined Network,SDN)是一种革新的网络体系架构设计技术。由于其支持控制与转发分离、开放的编程接口,以及软件可定义的转发控制,极大地提高了实现网络与业务的管理控制的灵活性。

网络功能虚拟化[2,3](Network Function Virtualiza-tion,NFV)是软件定义基础设施的一种新型网络模式,使得网络功能不需要利用中间件(MiddleWare)等硬件形式实现而利用软件实现。

SDN/NFV作为未来网络的核心技术。研究SDN/NFV常用手段是仿真。在学术界Mininet是常用的仿真工具,但不适于NFV的研究,同时只是利用名字空间划分不同的主机,在使用上不方便。在工业界,OpenS-tack是公认的云计算平台,业界有使用其作为SDN/NFV的研究平台,但对于计算资源要求较高,同时组件繁多、学习曲线相当陡峭。对SDN拓展研究较为不利,并且其为生产力部署平台而不是一个仿真平台。因此,迫切需要一个便捷的SDN/N]V仿真平台。

Docker是一门可封装應用程序、可快速迁移的容器技术,且相较于虚拟机更为轻量级,在学术界及工业界均有广泛研究,也被用于生产网络(Production Net-work)。

综上所述,本设计利用Docker容器的轻量级优势去实现SDN/NFV仿真平台的搭建,同时对生产网络也有兼顾作用。进一步地,再将搭建出DockerNet扩展为图形化界面下的仿真平台。为SDN/NFV的理论研究、原型系统设计提供基础实验平台。

拟解决问题

在搭建这样一个便捷的仿真平台将遇到以下几个需解决的问题:第一点,如何利用轻量级的Docker封装虚拟网络功能VNF并和OVS结合,实现容器间的相互通信、OVS受控于Floodlight控制器,搭建出SDN/NFV仿真平台的基础;第二点,如何提供此仿真平台的API,使得调用API实现带参数化、一键快速部署网络拓扑的功能;第三点,如何通过调用Docker后台API与Java-Script等前端技术相结合,设计出一个清晰、易于网络管理员使用的图形化用户界面,实现拖拽式自定义网络拓扑的功能;第四点,如何采集OVS交换机的服务质量信息,提供将QOS信息呈现在前端页面的功能,以支持上层应用的开发。

解决方案及实现

为解决上述问题,利用Docker能快速搭建好开发和运行环境、移植性强、快速部署的能力,同SDN进行结合。

具体地,首先,在Docker内运行镜像开启容器封装VNF,再使用OVS创建交换机并使用ovs-docker工具将容器和交换机连接起来,并使OVS交换机受控于Floodlight控制器。其次,调用Docker的API结合编程实现拓扑部署的脚本化以提供快速部署拓扑的API,此API可实现带参数化的一键快速部署网络拓扑。再次,结合Web前端技术提供拖拽式生成网络拓扑,前端拖拽生成JSON格式表示的网络拓扑由后端代码自动解析并部署网络拓扑。最后,使用基于LLDP协议的捎带式服务质量采集机制采集OVS的QOS信息,并把信息呈现在前端页面。

系统设计及实施

1 .搭建SDN/NFV仿真平台

利用ovs-docker工具使Docker容器之间通过OVS交换机进行通信,进一步将OVS交换机和Docker容器以及OVS交换机之间的连接命令封装。并利用python库实现对于Docker脚本化操纵,方便平台直接调用。

1.2 典型数据中心拓扑结构的便捷部署

完成对于SDN/NFV仿真环境搭建出的基础上,无需再使用复杂的命令创建拓扑,减少复杂程度,提高整体的效率。编写参数化的典型拓扑脚本,实现便捷部署。如将编写带参数的典型拓扑结构Fat-Tree,快速部署到SDN/NFV环境中。

1.3 自定义拓扑的拖拽式部署

将在图形化web界面手动拖拽生成的拓扑信息,以键值对的方式,进一步将信息归类保存为JSON格式进行传输并生成文件,便于后端进行解析,并创建拓扑。文件中存放有主机的镜像、IP地址及交换机链路等信息。实现用户自动以复杂的、异型拓扑的拖拽式部署。

1.4 QoS信息的采集

将OVS交换机的相关功能进行改进,实现通过Ll])P捎带OVS的QOS信息,完成对于OVS上QOS信息的收集,使平台能够周期式的采集服务质量信息,呈现在前台页面供用户决策,也可通过API供上层应用实现QOS路由,QOS保障的方面通过Floodlight API获取源目地址之间的基于跳数的路径。通过Allroute API获取全部路径信息。通过Floodlight API获取交换机端口之间的连接关系。通过QoS API获取交换机端口的QOS信息。

参考文献:

[1]黄韬,刘江,魏亮,张娇,杨帆,刘韵洁.软件定义网络核心原理与应用实践.[M].人民邮电出版社.2016.

[2]雷葆华,王峰,王茜,王和宇.SDN核心技术剖析和实战指南[M].北京:电子工业出版社,2013.

[3]蒋铭,于益俊.NIFV与VNF架构演进与网络架构未来[M].上海:华为上海研究所2012.

猜你喜欢
虚拟化
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨
虚拟化技术在CTC/TDCS系统中的应用研究
虚拟化技术在计算机技术创造中的应用
高速公路服务器虚拟化技术应用与探讨
存储虚拟化还有优势吗?