mininet+opendaylight/floodlight+wireshark搭建SDN测试环境

时间:2021-04-06 20:39:06

环境:vmware中安装的ubuntu-16.04.2,在ubuntu16.04.2中安装mininet+opendaylight/floodlight+wireshark。

安装floodlight说明:ubuntu中java环境要求jdk1.8,在ubuntu-16.04.2中默认的java环境为jdk1.8,所以下述过程中直接通过git获取的安装包都是最新版本的。若ubuntu版本低,则会出现jdk版本达不到要求,即使在低版本ubuntu中手动安装jdk1.8,在安装floodlight过程中还是会出现各种问题,比如web界面访问不了;ant floodlight过程中出现问题;启动floodlight时报错,sudo module init命令执行不了等各种奇葩问题(注:这些问题LZ这几天很不幸都碰上过,所以最终选择安装了ubuntu-16.04.2结果之前的问题都没出现了。)

说明:Opendaylight和floodlight只需要安装一个就行,他们都是控制器。

1、  安装mininet

参考:http://mininet.org/download/

三种方式:

(1)虚拟机映像文件下载

        在windows 7 操作系统中,从mininet官网http://mininet.org下载最新的虚拟机文件,解压、并导入到vmware workstation,启动虚拟机。关于虚拟机的配置不再赘述,请自行解决。(这种方式安装的mininet是server版的,没有桌面图形化界面,不好操作。)

(2)基于源码安装Mininet

        最简单的方式是使用Mininet官网上的最新虚拟机大家Mininet环境。下面则基于源代码安装。

        首先要安装git,代码如下:

        sudo apt-get update

        sudo apt-get install git

        测试是否安装成功:git

        1)获取最新的源码树:

        输入命令:git clone git://github.com/mininet/mininet

        上述命令会在当前目录下创建mininet文件夹。

选择安装版本:

进入mininet目录

git tag (可以查看版本)

git checkout -b 2.2.0 2.2.0

        2)安装:

                进入mininet//util下输入下述命令:

                1. 在当前目录下安装所有Toinstall everything (using your home directory):

                ./install.sh  -a

                2. 在mydir下安装所有To installeverything (using another directory):

                ./install.sh -s mydir -a

                3. 在当前目录下安装Mininet+ user switch + OVS To install Mininet + user switch + OVS (using your homedir):

                ./install.sh -nfv

                4. 在当前mydir下安装Mininet +user switch + OVS To install Mininet + user switch + OVS (using another dir):

                ./install.sh -s mydir –nfv

                这里我选择的第二个:

                install.sh -s  /usr/local  –a

        3)打开mininet

         sudo mn

        4)使用miniedit自定义拓扑/python脚本自定义拓扑

          http://blog.sina.com.cn/s/blog_88125af10102wrdk.html

          运行自定义拓扑命令:
          sudo mn --custom XXX.py --topo classname  --mac --controller=remote, ip=yourcontrollerIp,port=6633/6653

         (pingall之后可以在opendaylight上看见host图形,否则只能看见交换机图形)

        5)mininet常见命令

           https://segmentfault.com/a/1190000000669218

            http://www.sdnlab.com/11495.html

2、  安装opendaylight

(1)下载地址:http://www.opendaylight.org/software/downloads

(2)解压并进入

        unzip distribution-karaf-0.2.0-Helium.zip

        cd distribution-karaf-0.2.0-Helium

        ./bin/karaf

        即可见到以下画面:

mininet+opendaylight/floodlight+wireshark搭建SDN测试环境

(3)安装组件

        要让其显示webUI必须安装相关的DLUX 安装DLUX步骤:

        1)Install L2switch and openflow plugin

                feature:install odl-restconf-all

                feature:install odl-l2switch-switch

                feature:install odl-openflowplugin-all

        2)Installbasic md-sal controller features on the Karaf console

                feature:install odl-mdsal-all

        3)Then,install dlux feature

                feature:install odl-dlux-all

        4)Installad-sal features on the Karaf console.

                feature:install odl-adsal-northbound

        一定要按照上述步骤安装,否则会出错。

        如果安装出现问题和冲突,退出karaf console,执行./karaf clean

(4)web显示

        安装完后等一段时间既可以访问你的OpenDaylightwebUI页面了,输入:http://<IP of your machine>:8181 /index.html

        默认用户名和密码都为:admin

mininet+opendaylight/floodlight+wireshark搭建SDN测试环境

3、  安装floodlight

参考:https://floodlight.atlassian.net/wiki/display/floodlightcontroller/Installation+Guide#InstallationGuide-Floodlightv1.2andBelow

Ctrl+Alt+T打开控制台输入:

        sudo apt-get update

        sudo apt-get install build-essential default-jdk ant python-dev eclipse

        git clone git://github.com/floodlight/floodlight.git

        (如果要选择安装的版本的话,可做如下修改)

        git clone -b v1.2.0 git://github.com/floodlight/floodlight.git

        cd floodlight

        git submodule init(首次执行该命令会有输出,之后执行结果见下图)
        git submodule update(首次执行该命令会有输出,之后执行结果见下图)

        ant

mininet+opendaylight/floodlight+wireshark搭建SDN测试环境

        首次运行floodlight需要执行下述两个命令,以后不需要。
        sudo mkdir /var/lib/floodlight
        sudo chmod 777 /var/lib/floodlight

       sudo java -jar target/floodlight.jar #运行Floodlightmininet+opendaylight/floodlight+wireshark搭建SDN测试环境

        打开浏览器输入:localhost:8080/ui/index.html进入如下界面则说明安装成功:

mininet+opendaylight/floodlight+wireshark搭建SDN测试环境

4、  安装wireshark

        新建终端控制台,输入:

        sudo apt-get install wireshark

        这样全部的准备工作已经做完了

        (注意打开wireshark要用root权限打开,输入命令:su root)

5、  联机调试

  在进行抓包之前将之前运行的floodlight和mininet全部关闭

(1)运行floodlight

        java -jar floodlight/target/floodlight.jar

(2)运行wireshark

        sudo wireshark (一定要用root权限打开,否则无法检测网卡端口)

        点击监测的端口,如果在同一台机器上测试,就选择lo环回端口,如果mininet链接练成控制器则监测eth0端口。

        在开始对网卡端口监测之后在启动mininet,确保能抓到Hello包

 mininet+opendaylight/floodlight+wireshark搭建SDN测试环境

(3)启动mininet

        sudo mn --custom XXX.py --topo classname --mac --controller=remote,ip=yourcontrollerIp,port=6653(注意端口号不是6633,而是6653)

        pingall

        这时你就能从wireshark中看到各种OFP的数据包了!

        That’sall


6、eclipse导入floodlight源码

在打开eclipse之前进入floodlight目录下输入: sudo ant eclipse 一定要输入上述命令,否则无法导入。 sudo eclipse 打开eclipse