基于Mininet的SDN架构仿真实验综述报告

2017-11-20 22:52张华
电脑知识与技术 2017年26期
关键词:虚拟化

张华

摘要:设计一个使用Mininet网络模拟器仿真软件定义网络SDN的架构及行为的实验,在其环境下比较了不同的拓扑结构,最后锁定了一种结构以找到主机的通信方式。该文介绍了实验的目的、环境、准备、步骤和实验结论,可帮助实验人员理解相关虚拟化技术并能将其应用到实践中去。

关键词:Mininet;虚拟化;SDN;Openflow;Openvswitch

中图分类号:TP309 文献标识码:A 文章编号:1009-3044(2017)26-0204-03

Abstract: The design of a Mininet network simulator software defined network SDN architecture and behavioral experiments, the different topologies in its environment, and finally locked a structure to find the communication host. This paper introduces the purpose, environment, preparation, steps and experimental results of the experiment, which can help the experimental personnel understand the related virtualization technology and apply it to practice.

Key words: Mininet; virtualization; SDN; Openflow; Openvswitch

1 概述

软件定义网络SDN(Software Defined Network)[1]正在迅速发展,它通过启用编程控制展现出更高的灵活性、可用性和可控性,改变了传统的网络。Mininet[2]可創建出虚拟主机、交换机、控制器和网络链接,并支持研究性学习和测试,有助于在个人电脑上进行网络的虚拟架构。为了解SDN网络的工作模式,实验设计采用Mininet模拟器,在其环境下比较了不同的拓扑结构,最后锁定了一种结构以找到主机的通信方式。

2 实验目的

了解主机在SDN下的通信模式。

3 实验环境

拥有至少2 GB 内存和至少6-8 GB空闲硬盘空间的pc机;

Linux(Ubuntu 13.10)。为保证全局最优的实现, Ubuntu服务器也预装了GNOME终端和SSH客户端;

网络控制器(pox、nox、beacon等[3]);

Mininet网络模拟器;

其他操作系统的实验环境参考表1。

4 实验准备

4.1 Mininet的安装

在Ubuntu 13.10上安装Mininet,最简单的是使用命令:sudo apt-get install Mininet。若此命令无效,则先执行更新工作平台的命令:sudo apt-get update,当系统更新后可以再次使用sudo apt-get install Mininet命令即可安装Mininet。

4.2 安装控制器

目前有很多控制器可供选择,比如pox、nox、beacon和Floodlight等。它们适用于不同平台如pox/nox支持Python而Floodlight支持java平台,故SDN的实现与平台无关。安装命令为:Sudo apt-get install [控制器]。Mininet默认情况下包括OVCS控制器和openvswitch[4],也可选择其他控制器或使用其他的方法来安装控制器。

4.3 Mininet下的基本命令语法

$:普通用户。

Mininet >:CLI(Command Line Interface命令行界面)提示符,提示输入Mininet命令。

#:root用户。

Mininet >help:此命令输入后屏幕显示Mininet中各类CLI命令。

Mininet >nodes:这个命令显示Mininet当前的网络下的所有节点。默认情况即minimal拓扑结构下使用此命令则显示当前可用节点是C0、H1、H2、S1。

Mininet >dump:此命令显示当前Mininet网络下所有可用节点的转储信息。

Mininet >h1 ping h2:持续检查主机h1和h2之间的连通性,直到停止命令为止。

Mininet >h1 ping -c1 h2:此命令检查主机h1和h2之间的连通性,发送一个包即停止。

Mininet >h1 ifconfig -a:此命令显示h1的以太网接口eth0和环回接口loopback (lo)。

Mininet >s1 ifconfig -a:交换机上的运行命令与正常终端上的运行命令相同。

Mininet >pingall:此命令检查网络中的所有主机之间的连通性/可达性。

$ Sudo mn —x:基本的xterm命令,启动主机h1,h2,交换机s1,和控制器c0的xterm终端窗口。

Mininet >xterm h1 h2:命令xterm h1 h2为主机h1和h2打开xterm终端。进入h1执行ping10.0.0.2命令将开始检查主机h1和h2之间的连通性,同样可以进入h2的 xterm终端使用命令ping 10.0.0.1来ping h1。endprint

4.4 Mininet下的各種拓扑结构

Mininet下可以有各种拓扑结构比如minimal、single、reversed、linear和tree等,要运行某种结构,则需在终端窗口输入命令:Sudo mn —topo [拓扑名]。

minimal:最基本的拓扑结构,mininet下为默认属性,有两个主机和一个交换机。

single:一个简单的拓扑结构,有一个交换机和n个主机。

reversed:类似于single,但是主机和交换机之间的连接顺序颠倒了。

linear:体现n个主机和n个交换机之间的连接,每个交换机匹配一台主机。

tree:tree是一个多级树状拓扑,n个级别,基层交换机有两个主机。

4.5 Mininet拓扑结构的比较

Mininet环境中,运行各类拓扑结构的启动、停止和完成时间如表2所示。

5 实验原理

基于上述各类拓扑结构在mininet下的运行情况,不同的拓扑结构会创建主机和交换机的不同配置。例如:当使用linear拓扑结构即Sudo mn —topo linear, 4时。这种拓扑创建四个主机(H1,H2,H3,H4)和4个交换机(S1,S2,S3,S4)。此时运行pingall语句以检查每个主机之间的连接。测试中发现了网络中的主机之间进行通信时的数据包,这意味着主机之间存在可达性,故mininet下可以实现在不同的主机之间发送文件。

要在虚拟主机之间发送文件,一种选择是将一个主机作为服务器而其他主机作为客户端。在这个环境中,首先必须在客户端主机和服务器主机之间建立连接,之后可使用wget工具实现客户端主机将向服务器请求特定的文件。

本实验将使用inear拓扑结构来执行此操作:Sudo mn —topo linear, 4。这种拓扑将创建4个主机和4个交换机。每个主机都分配了唯一的IP地址。例如:1主机分配主机10.0.0.1,H2的分配与10.0.0.2,主机H3分配10.0.0.3主机H4分配10.0.0.4。

6 实验步骤

1) 打开终端。

2) 运行命令:Sudo mn —topo linear, 4,开始添加4台主机和4个交换机,接着使用pingall命令测试主机之间的连接,如图1。

3) 输入Mininet> xterm h1 h2 h3 h4命令为每个主机(即h1、h2、h3、h4)分别打开一个xterm终端窗口,比如h2的窗口如图2所示,其余主机窗口与之类似。

4) 在这个拓扑结构中,我们将h3作为HTTP服务器,其余主机作为客户端。为实现这一点可在h3的xterm终端输入命令:Python -m SimpleHTTPServer 80 &,如图3。

5) 从h2的终端窗口可实现请求从服务器下载文件,启动客户端和服务器之间的连接,键入Linux内置的wget命令:wget 10.0.0.3。图4显示h2已连接到h3并开始下载默认的文件index.html。点击文件index.html即可在浏览器中打开地址:file:///home/deepak/index.html。

6) 假设:若客户端想下载系统中的特定文件呢?比如此例中下载文件夹中有一个名为dpk.py的文件,要下载此文件需使用Wget命令,具体操作是输入命令:wget —output-document=Downloads/dpk.py 10.0.0.3(其中10.0.0.3是h3主机),这样h1即可从服务器下载文件dpk.py。图5显示h1向h3请求下载目录中的dpk.py文件。

7 结束语

Mininet支持在各类型网络上运行未经修改的网络应用程序代码,并可以建立虚拟的SDN架构,实验在此架构上测试了当客户端请求下载特定文件时的请求和服务器响应的方式。Mininet支持多种拓扑结构,我们可以通过修改源代码创建自定义的拓扑结构,并且适用于模拟器的应用程序可以在现实网络中轻松部署,在教学中颇具性价比。这些都可以作为我们或者其他研究人员进行进一步研究的依据。

目前SDN已经成为了网络的一个重要组成部分,故对其行为的模拟也是很多相关人员正在研究的内容。但这是一种新的网络创新架构,尚存一些安全风险,故在以后的工作中我们还需对其进行多方面的改进。

参考文献:

[1] 王鹃,王江,焦虹阳,等. 一种基于OpenFlow的SDN访问控制策略实时冲突检测与解决方法[J]. 计算机学报,2015,38(4):872-883.

[2] 李艳,郝志安,李宁,等. 基于mininet的SDN架构仿真研究[J]. 计算机与网络,2014,40(5):57-59.

[3] 江国龙,付斌章,陈明宇,等. SDN控制器的调研和量化分析[J]. 计算机科学与探索,2014,8(6):653-664.

[4] 汪萌,梁雨锋. 基于虚拟化环境下的网络安全监控技术应用[J]. 计算技术与自动化,2013,32(1):137-140.endprint

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