OpenDaylight与Mininet应用实战之 基本环境搭建

时间:2021-12-11 09:09:56

基本环境搭建

简要介绍在没有OpenFlow硬件设备下如何搭建一个OpenFlow环境。控制器使用OpenDaylight,是现在主流的控制器项目,功能比较完善。模拟OpenFlow设备使用Mininet,远比基于KVM的虚拟机应用更高效、更简洁,且更容易理解。

1.环境准备

主要的最简单的环境准备是:一台PC电脑及安装VMware station(或VirtualBox)工作站用来承载VM。

2.OpenDaylight获取安装

可直接通过地址链接下载OpenDaylight(以下简称ODL)的VM镜像:

http://archive.openflow.org/wk/index.php?title=OpenDayLight_Tutorial,下载此镜像后,可用VMware station直接打开此VM,使用并启动ODL。如想具体了解ODL的安装详情,可搜索有关ODL的文档,会在技术文当中更新ODL的具体安装。

打开VM后,先进入OpenDaylight目录:cd opendaylight/opendaylight/distribution/opendaylight/

再进入OpenDaylight启动目录:

cd target/distribution.opendaylight-package/opendaylight

执行:run.sh;

访问控制器的IP地址:http://[VM_IP]:8080,可在VM的浏览器中访问,也可以在PC中访问。

可看到具体界面如下图所示:
OpenDaylight与Mininet应用实战之 基本环境搭建
登录用户名:admin,密码:admin,登录进入ODL的Web界面查看并可对ODL操作。

3.Mininet获取安装

Mininet主要是虚拟出OpenFlow交换机以及host主机节点,并且能通过自定义来构造用户想要的拓扑。虚拟OpenFlow交换机主要是使用基于OpenvSwitch的应用。

http://mininet.org/download/ 下载Mininet的VM镜像,打开此镜像后,用户名为mininet,密码为mininet登录进入mininet虚拟机,之后即可通过 mn命令来创建拓扑。后续也会提供mininet的源码编译安装方法。

4.支持openflow的Wireshark插件安装

建议Wireshark安装在ODL的VM上,因为ODL的VM是桌面版,可直接显示wireshark的抓包数据。1.6版本的wireshark要支持OpenFlow,需要做如下(注:此文档配置只支持1.6版本)
4.1下载安装OpenFlow

$ sudo apt-get install git-core automake m4 pkg-config libtool

$ git clone git://openflow.org/openflow.git

或git clone git://gitosis.stanford.edu/openflow.git

$ cd openflow

$ ./boot.sh
OpenDaylight与Mininet应用实战之 基本环境搭建
4.2 安装编译命令

在openflow目录下

$ sudo apt-get install gcc

配置

$ ./configure

$ make

$ sudo make install
OpenDaylight与Mininet应用实战之 基本环境搭建
4.3 安装Wireshark Dissector(扫描器)

在openflow目录下,获取wireshark

$ sudo apt-get install wireshark libgtk2.0-dev

安装并编译:

$ cd utilities/wireshark_dissectors/openflow

修改utilities/wireshark_dissectors/openflow/packet-openflow.c文件的769行(注:“:set nu” 命令可显示行数)

dissector_add(TCP_PORT_FILTER, global_openflow_proto, openflow_handle)

改为:

dissector_add_uint(TCP_PORT_FILTER,global_openflow_proto,openflow_handle)

make
OpenDaylight与Mininet应用实战之 基本环境搭建
修改保存后编译:

$ make
OpenDaylight与Mininet应用实战之 基本环境搭建
$ sudo make install
OpenDaylight与Mininet应用实战之 基本环境搭建
将编译好的库,packet-openflow.so放入wireshark插件目录,如图所示:

$ scp packet-openflow.so /usr/lib/wireshark/libwireshark1/plugins/
OpenDaylight与Mininet应用实战之 基本环境搭建
查看目录/usr/lib/wireshark/libwireshark1/plugins/的文件,含有packet-openflow.so文件:
OpenDaylight与Mininet应用实战之 基本环境搭建
在root用户权限下执行命令,打开wireshark:

root $ wireshark &

进入wireshark界面,查看插件里是否有packet-openflow,如图:
OpenDaylight与Mininet应用实战之 基本环境搭建
OpenDaylight与Mininet应用实战之 基本环境搭建
packet-openflow插件添加成功!

Of协议可被识别(注:绿色表示输入正确),即可支持OpenFlow协议!
OpenDaylight与Mininet应用实战之 基本环境搭建
由于SDN的快速发展,wireshark官网更新的wireshark已有专门的版本(Stable Release (1.12.1)版本)支持openflow协议,且支持of协议的多个版本,包括of1.0、1.1、1.2、1.3,有助于后续的多版本协议研究,所以可直接下载,进行安装使用,链接地址为:https://www.wireshark.org/download.html

注:(1)其实ODL的VM中有支持openflow协议的wireshark,但是,经测试,VM中自带的wireshark解析器抓包有问题,所以重新安装支持openflow协议的wireshark。

(2)也可在Mininet所在的VM中安装wireshark,因Mininet虚拟机是server版,所以使用wireshark时,可使用Xming与Putty相结合,将X11中的转发功能勾选,远程登录此VM,通过执行wireshark抓包获取数据,使用putty如下图所示:
OpenDaylight与Mininet应用实战之 基本环境搭建

5.总结

本章节主要是为了解ODL及Mininet做准备,通过ODL和Mininet的安装获取熟悉他们的基本概念。具体的关于SDN OpenFlow协议的了解可以阅读后续发出的专题2 OpenFlow协议分析,专题2将对搭建OpenFlow环境的基础操作及协议分析进行详细输出。