您的位置:首页 > 运维架构

原生支持OpenFlow1.3协议的Mininet安装与验证

2015-07-08 15:39 337 查看





Mininet可以用一个命令在一台主机上(虚拟机、云或者本地)以秒级创建一个虚拟网络,并在上面运行真正的内核、交换机和应用程序代码。之前已经有很多文章介绍过Mininet的安装使用,但是很可惜之前介绍的Mininet版本并不支持或需要修改相应配置文件才能支持OpenFlow1.3协议,这给我们用户在使用过程中增加了不必要的麻烦。高兴的是Mininet2.1.0p1及以后的版本可以原生支持OpenFlow1.3啦!但是这些新版本暂时还不能通过apt-get(Ubuntu环境下)命令获取到,笔者今天就整理了一份文档教大家如何安装并验证支持OpenFlow1.3协议的Mininet。

1 准备工作

本文基于Ubuntu13.10实现,在正式安装Mininet之前我们需要安装一些所需的环境依赖:包括git等。

Shell

# apt-get update
# apt-get install git

1
2

# apt-get update

# apt-get install git

我们要安装的Mininet版本是2.2.0b0版本,该版本目前还是测试版本,其中加入了一些新特性,当然也会存在一些bug,有经验的用户也可以将测出的bug提交至github。那么截稿前,原生支持OpenFlow1.3协议的Mininet总共就有了三个版本,分别是2.1.0p1、2.1.0p2和2.2.0b0。

Mininet 2.2.0b0版本在修复一些BUG的同时提供了一些新特性,包括了:

(1)提供OpenFlow1.3的支持

“mn --switch ovs,protocols=openflow13”:用OF1.3模式启动OVS
“install.sh –w”:用Loxigen安装兼容OF1.3的Wireshark
“install.sh –y”:安装兼容OF1.3的Ryu控制器

(2)提供一个新的nodelib.py节点库,和新的节点类型,包括LinuxBridge,OVSBridge,LinuxRouter和NAT

(3)提供一个改进的MiniEdit GUI(示例/miniedit.py)

(4)实验集群的支持,可以通过mn --cluster localhost,server1,server2命令实现

注意:示例包含的实验特性在未来可能会被植入Mininet成为它的一部分,但他们不能被认为是稳定的Mininet API的一部分。

2 Mininet 2.2.0b0版本安装

此安装方法适用于本地虚拟机,EC2远程和本地安装,并适合在一个干净的Ubuntu(或者Fedora的)上进行安装。不适用于从旧版本的Mininet或OVS升级。

官方强烈建议安装最新的Ubuntu发行版,因为它们支持新版本的Open vSwitch。Fedora也支持最近发布OVS。

首先获取源代码到本机:

Shell

# git clone git://github.com/mininet/mininet

1

# git clone git://github.com/mininet/mininet

获取到本地后通过查看mininet文件夹下的INSTALL文件可以查看当前获取到的mininet版本。

Shell

# cd mininet
# cat INSTALL

1
2

# cd mininet

# cat INSTALL




从源代码树上获取以后你就可以安装Mininet了。

Shell

# ./util/install.sh [options]

1

# ./util/install.sh [options]

这里典型的[options]主要有下面几种:

“-a”:完整安装包括Mininet VM,还包括如Open vSwitch的依赖关系,以及像的OpenFlow Wireshark分离器和POX。默认情况下,这些工具将被安装在你的home目录中。
“-nfv”:安装Mininet、基于OpenFlow的交换机和Open vSwitch。
“-s mydir” :在其他选项使用前使用此选项可将源代码建立在一个指定的目录中,而不是在你的home目录。

所以,你可能会使用下面的某一个命令:

完整安装(默认安装在home目录下):

Shell

# install.sh -a

1

# install.sh -a

完整安装(安装在其他目录):

Shell

# install.sh -s mydir -a

1

# install.sh -s mydir -a

安装Mininet+用户交换机+OVS(安装在home目录下):

Shell

# install.sh -nfv

1

# install.sh -nfv

安装Mininet+用户交换机+OVS (安装在其它目录下):

Shell

# install.sh -s mydir -nfv

1

# install.sh -s mydir -nfv

我们这里选择完整安装:

Shell

# ./util/install.sh –a

1

# ./util/install.sh –a

安装完成后,我们可以通过一个简单的命令来测试Mininet的基本功能是否正常。

Shell

# mn --test pingall

1

# mn --test pingall




我们可以再来看下安装完之后的版本号:

Shell

# mn --version
2.2.0b0

1
2

# mn --version

2.2.0b0

3 OF1.3通信验证

安装完之后我们来验证一下新版本的Mininet是否原生支持OpenFlow1.3。这里要注意一下,仅是Mininet生成的的交换机南向接口支持了OpenFlow1.3,自带的控制器还暂不支持,所以要验证还需要一个支持OpenFlow1.3的控制器才行,如Ryu和OpenDaylight Helium。这里以之前介绍过的OpenDaylight Helium为例。OpenDaylight Helium安装教程请见《OpenDaylight的Helium(氦)版本安装》

Mininet连接支持OpenFlow1.3的控制器:

Shell

# mn --switch ovs,protocols=OpenFlow13 --controller=remote,ip=[controller ip],port=6633

1

# mn --switch ovs,protocols=OpenFlow13 --controller=remote,ip=[controller ip],port=6633




该版本已不像之前2.1.0修改版本一样能在启动打印日志上看到所用的协议版本,因此后续我们要验证其南向接口是否用了OpenFlow1.3协议。

我们让默认生成的两台主机互ping一下:

Shell

# mininet> pingall
*** Ping: testing ping reachability
h1 -> h2
h2 -> h1
*** Results: 0% dropped (2/2 received)

1
2
3
4
5

# mininet> pingall

***
Ping:
testing ping reachability
h1
-> h2

h2 ->
h1
***
Results:
0%
dropped (2/2
received)

我们查看交换机中的流表看是否为OpenFlow1.3版本的:

Shell

# ovs-ofctl dump-flows -O openflow13 s1

1

# ovs-ofctl dump-flows -O openflow13 s1




通过Wireshark查看抓包也可以看出使用的通信协议及版本号。




4 总结

本文介绍了通过源码安装Mininet 2.2.0b0版本并验证了其原生支持OpenFlow1.3,不像之前的版本要么不支持要么需要修改配置文件,这给我们使用者带来福音。同时,支持OpenFlow1.3也是大势所趋,它带给我们网络的可编程化、可自定义化也更加印证了“软件定义网络”的大名。

本文来自 SDNLAB
本文链接http://www.sdnlab.com/5172.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: