暑期培训遇到的floodlight+mininet+ubuntu的问题

  暑期培训,我们又安装了一遍SDN环境的软件,发现之前安装的有很多问题,在此一一记下。

  1.我之前在ubuntu14.04中安装了mininet和floodlight。

  安装mininet过程见:https://www.cnblogs.com/lijunqiang1997/p/7890584.html ;

  安装floodlight过程见: https://www.cnblogs.com/lijunqiang1997/p/8407285.html 。

  这两个方法主要是参考师兄和网上一些教程来的,可以安装成功。

  但是有一天演示的时候,我发现,如果先开floodlight,再开mininet,floodlight控制器上面的页面:localhost:8080/ui/index.html  上的拓扑总是不对,要么多一个,要么退出mininet再重开mininet主机数会一直增加。

  后来我在网上找个一篇博客介绍这个问题,见http://www.itkeyword.com/doc/504151289862358323/ui-host-SDNfloodlightweb 。 这上面说是 因为OVS的一个local port会去发现外部网络的拓扑,导致floodlight UI界面显示不对。

  解决方法是: 先开mininet,再开floodlight。 每次当退出mininet重开时,就再重开floodlight。  这种方式我实践了一下,是可以的,但是很烦。

  2. 7月19日的下午,我发现同学运行mininet + floodlight的时候是没有问题的。无论是先运行mininet,还是先运行floodlight。于是,我就发现可能是ubuntu14.04系统的问题,升级系统就可以了。我在Ubuntu18Server上安装好mininet+floodlight,发现还是有问题,floodlight页面上的拓扑正常了,但是看主机数还是会增多,但是相比于ubuntu14版本,它不会再读取到local主机了,更精确点。可惜还是有点bug。我又看了之前同学他们演示的,也有这个问题,可能是当初看他们演示的时候没仔细看。

  3.升级系统:http://releases.ubuntu.com/16.04.4/ ,现在ubuntu官网上直接能下载ubuntu18,如果下载先前的版本见刚刚那个网址。 我下载了ubuntu18的server版,和ubuntu16.04的desktop和server版。

  4.我安装了ubuntu18的server版,在上面重新安装mininet和floodlight。这次安装的步骤就和师兄给的步骤不同了。

  安装mininet:

  (1)首先更新: sudo apt-get update

     然后从github上下载mininet: git clone git://github.com/mininet/mininet

      这两步还是和之前一样的。而且ubuntu18版本自带git,不需要再自己下载git。

  (2)然后进入mininet/util 目录: cd mininet/util

    最后选择安装完整版的mininet,这个和之前的不同,之前只安装了部分项,而且不需要git tag、git checkout XX的操作。直接:   ./install.sh -a

    安装完后,可以发现与mininet同级的目录中出现了很多东西:openflow、pox等等。

    截图如下:

  5.刚刚有个同学又出现一个问题,当floodlight控制器开启的时候,如果使用自定义的mininet拓扑脚本,会无法正常运行。其中该脚本中没有写控制器的连接命令当控制器关闭的时候,就可以正常运行。

  启动自定义拓扑脚本的命令如下 : sudo mn --custom ~/mininet/custom/topo-2sw-2host.py --topo mytopo

  其中,~/mininet/custom/topo-2sw-2host.py 是topo-2sw-2host.py 文件的路径。

  当需要控制器开启的时候,而且所有的交换机连接到该控制器上,可以输入如下命令:

  sudo mn --custom ~/mininet/custom/topo-2sw-2host.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6653

  这样就可以先启动floodlight,再输入上面的命令启动mininet,让自定义的交换机都连接到floodlight上。

  

  安装floodlight:这个和之前安装的不同,这次安装的步骤如下:

  (1)首先下载jdk1.8,直接去java官网下载64位的java8版本。

  

  (2)配置java环境变量:见   https://blog.csdn.net/pxmxx/article/details/80106239

  网站上的第4步,不要加sudo

  4、生效~/.bashrc文件 : source ~/.bashrc

  5、测试是否安装成功: java -version      (注:是-version,一个-)

  

  (3)安装floodlight:去github上安装,直接下载下来。

   主要有两个:floodlight和floodlight-webui

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

  注意:本来师兄的视频中是需要将floodlight-webui文件夹中的所有东西放到floodlight/src/main/resources/web中,因为这样才有floodlight的图形化界面。但是现在的GIthub上,web文件夹已经放好了floodlight-webui中的东西,所以我们直接下载floodlight就能用了。

  (4)下载好floodlight,进入floodlight目录: cd floodlight

    然后运行:ant  (注:ubuntu18,没有自带ant,需要自己下载: sudo apt-get install ant)

     启动floodlight的命令:

    cd floodlight       (注:一定要先进入floodlight文件夹,如果直接运行:java -jar floodlight/target/floodlight.jar 会出现错误)

    java -jar target/floodlight.jar

   这样,floodlight也安装完成了。

   

  联合运行一下测试:

  1, 打开mininet:  sudo mn --controller=remote,ip=127.0.0.1,port=6653

  2.打开floodlight:cd floodlight        

          java -jar target/floodlight.jar

  3.然后打开浏览器: localhost:8080/ui/index.html

   6.刚刚使用ubuntu18中自带的wireshark,无法进入,问了同学之后才知道这个版本是不能用的,需要安装wireshark-gtk: sudo apt-get install wireshark-gtk

   然后输入: wireshark-gtk   即可。

 

原文地址:https://www.cnblogs.com/lijunqiang1997/p/9336015.html