Mininet+Opendaylight+Wireshark搭建SDN环境

折腾了一天,终于把SDN环境搭建完毕,最怕搭建实战环境了,每次都要折腾很久,网上的说明大部分都是一步执行成功,好佩服,基本上我都每个坑都跳,总结分享一下,以后少点弯路。最后感谢伟大的Google以及大神们的分享,期待后续SDN之旅。

本文用到的软件及其版本如下:

FVMware Workstation 12.5.5 build-5234757

F Mininet镜像:mininet-2.2.2-170321-ubuntu-14.04.4-server-amd64

FOpenDayLight(Boron版本0.5.2)karaf-0.5.2-Boron-SR2

F Wireshark软件:wireshark-2.2.5

FXmanager - Passive

FQT5qt-opensource-linux-x64-5.8.0

FSecureCRT:8.1.1

F操作系统:windows10

  • Mininet镜像的安装

Mininet主要是虚拟出OpenFlow交换机以及host主机节点,可以使用Python语言自定义拓扑,实验平台也内置了一些基本的拓扑结构,能够方便地满足测试的需要。Mininet的安装有两种方式,一种是导入虚拟机镜像,一种是源码编译安装,建议新手采用前者。本次也采用最简单的安装方法。

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

进入虚拟机后,用户名和密码都是mininet(密码不会显示出来)。

Mininet+Opendaylight+Wireshark搭建SDN环境

 

  • Opendaylight的安装

1lrzsz软件安装

为了后续windowsubuntu文件传递方便,这里安装了lrzsz软件

[email protected]:~$sudo rz

sudo:rz: command not found

[email protected]:~$sudo apt-get install lrzsz -y

安装完毕之后,在windows10上从Opendaylight官网上(https://www.opendaylight.org/downloads)下载最新版本(distribution-karaf-0.5.2-Boron-SR2.zip),通过以下的操作传递到ubuntu,后续涉及的软件安装有一部分也是通过这种方式先从windows上下载完毕之后再传完ubuntu上,不再累赘。

[email protected]:~$sudo rz

rzwaiting to receive.

Startingzmodem transfer.  Press Ctrl+C to cancel.

Transferringdistribution-karaf-0.5.2-Boron-SR2.zip...

  100% 417012 KB    10692 KB/sec    00:00:39       0 Errors 

2)安装unzip软件解压文件

[email protected]:~$  sudo apt-get install unzip

[email protected]:~$sudo unzip distribution-karaf-0.5.2-Boron-SR2.zip -d /opt/

[email protected]:~$cd /opt/mininet/distribution-karaf-0.5.2-Boron-SR2/bin$

兴高采烈的准备进行安装时,发现噩梦才刚开始,一系列问题接踵而至。

[email protected]:~/distribution-karaf-0.5.2-Boron-SR2/bin$sudo ./karaf

karaf:JAVA_HOME not set; results may vary

./karaf:line 221: type: java: not found

karaf:java command not found

好的,按照网上说法,OpenDayLight(Boron版本0.5.2)需要jdk8以上的版本

3)安装JDK8

[email protected]:/$  sudo apt-get install openjdk-8-jdk   

Readingpackage lists... Done

Buildingdependency tree      

Readingstate information... Done

E: Unableto locate package openjdk-8-jdk

如上按照常规方式进行安装未果,更新下软件发现只有jdk7的版本,好吧,只能够通过源码自行进行编译了。

[email protected]:/$sudo apt-get update

[email protected]:/$sudo apt-cache search jdk

Mininet+Opendaylight+Wireshark搭建SDN环境

从官网上(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)下载最新的java版本(jdk-8u121-linux-x64.tar.gz

[email protected]:~$sudo tar zxvf jdk-8u121-linux-x64.tar.gz -C /opt/

修改环境变量

[email protected]:~$sudo vim /etc/profile在最后面添加以下四行。

export JAVA_HOME=/opt/jdk1.8.0_1219此处为jdk解压存放的位置)

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

验证结果:

[email protected]:~$source /etc/profile

[email protected]:~$echo $JAVA_HOME

/opt/jdk1.8.0_121

[email protected]:~$java -version

javaversion "1.8.0_121"

Java(TM)SE Runtime Environment (build 1.8.0_121-b13)

JavaHotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

[email protected]:~$echo $CLASSPATH

.:/opt/jdk1.8.0_121/lib:/opt/jdk1.8.0_121/jre/lib

[email protected]:~$echo $PATH

/opt/jdk1.8.0_121/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

4)重新开始安装Opendaylight,

进入解压目录

[email protected]:~$cd /opt/distribution-karaf-0.5.2-Boron-SR2/etc/

修改参数配置,保存备份

[email protected]:/opt/distribution-karaf-0.5.2-Boron-SR2/etc$vim org.apache.karaf.management.cfg

rmiRegistryHost= 0.0.0.0    改为      rmiRegistryHost = 127.0.0.1

rmiServerHost= 0.0.0.0        改为      rmiServerHost = 127.0.0.1

[email protected]:/opt/distribution-karaf-0.5.2-Boron-SR2$cd ./bin/

启动opendaylight容器karaf,其结果如下图:

Mininet+Opendaylight+Wireshark搭建SDN环境

列举已安装的feature,不加-i参数的话,表示列举已安装和未安装的所有feature

Mininet+Opendaylight+Wireshark搭建SDN环境

通过命令行的方式安装一下feature,注意安装顺序,否则后续网页打开opendaylight会出错

[email protected]>feature:install odl-restconf

[email protected]>feature:install odl-l2switch-switch-ui

[email protected]>feature:install odl-openflowplugin-flow-services-ui

[email protected]>feature:installodl-openflowplugin-all-he(网上有种说法是安装这个,新手还不太清楚亮着有什么不同,但安装时报错,所以我就采用上面那一种)

[email protected]>feature:install odl-mdsal-all

[email protected]>feature:install odl-dlux-all

[email protected]>feature:install odl-dlux-node

[email protected]>feature:install odl-dlux-yangman

5)界面访问:

   在浏览器中输入http://192.168.135.128:8181/index.html  %我的ip  192.168.135.128,端口默认8181初始用户名密码都是admin

Mininet+Opendaylight+Wireshark搭建SDN环境

注意:

1)安装odl-openflowplugin-all-he时会出现警告提示服务或功能重叠,不影响使用。

2)请按照一定的顺序安装,安装顺序不合理的话,会导致后面Web界面无法访问!且记录遇到的一个问题:在没有按照顺序安装组件的情况下,无法登录进入ODL主界面。解决方法是通过logout退出 karaf平台,进入上级目录,删除data目录:rm –r data,进入bin目录:cd bin,执行./karafclean,再次重复上面的安装组件操作

  • SDN初体验

1Mininet初试

习惯了采用SecureCRT进行远程操作,初次体验Mininet

Mininet+Opendaylight+Wireshark搭建SDN环境

Mininet+Opendaylight+Wireshark搭建SDN环境

2OpendaylightMininet联合初体验

Mininet+Opendaylight+Wireshark搭建SDN环境

Mininet+Opendaylight+Wireshark搭建SDN环境

我们会发现只有三台交换机,而没有Host主机,此时在Mininet上执行pingall即可

Mininet+Opendaylight+Wireshark搭建SDN环境

mininet上测试h1h2h3是否能够正常ping通,如山图所示,此时你会发现opendaylight可以正常发现hosts主机了

Mininet+Opendaylight+Wireshark搭建SDN环境

Mininet+Opendaylight+Wireshark搭建SDN环境

3Mininet自定义图形界面初体验

通过SecureCRT是无法调用图形化界面,此时需要手动在windows上安装Xmanager5软件,安装完毕后启用Xmanager – Passive,如下修改下SecureCRT软件的session会话设置,

Mininet+Opendaylight+Wireshark搭建SDN环境

最后在mininet上修改/etc/profile文件,在最后一行增加如下命令:

[email protected]:~$sudo vim /etc/profile

export DISPLAY=192.168.135.1:0.0%我的windows10ip  192.168.135.1

[email protected]:~$source /etc/profile

见证奇迹的时刻,mininet可以进行图形化界面自定义了拓扑了

Mininet+Opendaylight+Wireshark搭建SDN环境

Mininet+Opendaylight+Wireshark搭建SDN环境

4)基本知识普及

$ 这个符号代表现在处于 Linux shell交互下,需要使用的是 Linux 命令

mininet> 这个符号表示现在处于 Mininet 交互下,需要使用的是Mininet 的命令 

这个符号表示的是现在处于 Linux root权限下,但是mininet官方下载的虚拟机镜像进行直接导入,无法采用su -切换到root模式下,不知道密码是什么?只能够采用sudo的方式来代理root权限进行操作。

[email protected]>这个符号表示现在处于 Opendaylight交互下,需要使用的是 Mininet 的命令

备注:由于篇幅的原因,wireshark安装可参考下一篇博文

SDN环境下安装Wireshark 2.2.5(问题汇总)