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


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

1 准备工作

本文基于Ubuntu13.10实现,在正式安装Mininet之前我们需要安装一些所需的环境依赖:包括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。
首先获取源代码到本机:

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

cat install

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

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

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

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

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

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

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

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

我们这里选择完整安装:

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

test pingall

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

3 OF1.3通信验证

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

mn 连接控制器

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

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

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

流openflow1.3

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

wireshark抓包

4 总结

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


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/5172.html
分享到:
相关文章
条评论

登录后才可以评论

偶然左岸 发表于14-12-16
19