SDN练习一

SDN练习第一题

题目描述


实现网络拓扑:

具体要求:

  • 南向接口采用OpenFlow 协议。
  • 可查看网络的拓扑信息视图。
  • H1、H2、H3、H4 任意两两可互通。

实现思路


  • 利用mininet可视化图形界面miniedit画出网络拓扑以及实现openflow协议,之后导出python脚本。
  • 运行floodlight控制器。
  • 运行python脚本并连接floodlight控制器。
  • ping以及拓扑信息视图获取。

miniedit


  • 使用以下命令运行miniedit:
root@ubuntu:/home/liuhy# cd mininet/
root@ubuntu:/home/liuhy/mininet# cd examples/
root@ubuntu:/home/liuhy/mininet/examples# ./miniedit.py 

  • 画出拓扑:

  • 右键点击控制器c0选择Preferences修改信息如下:

说明:1.2版本的flood了light控制器默认端口为6653。不修改会造成端口冲突等问题。

  • 左上角Edit→Preferences来编辑协议等信息。

  • 左上角File→Expoet Level 2 Script储存python脚本。

运行floodlight控制器


  • 通过以下命令来创建floodlight控制器,默认端口6653
root@ubuntu:/home/liuhy# cd floodlight/
root@ubuntu:/home/liuhy/floodlight# java -jar target/floodlight.jar

运行脚本


  • 为了确保准确无误,我们来检查脚本。
root@ubuntu:/home/liuhy/mininet# vim sdn1.py

  • 保存

运行脚本连接控制器


  • 注意:脚本直接运行,不用像实验三那样子配置参数,因为脚本中已经配置完毕。
root@ubuntu:/home/liuhy/mininet# sudo python sdn1.py

  • 效果如图
    • mininet

    • floodlight

信息获取


  • 连接状态
mininet> pingall

  • 拓扑信息

遇到的问题


  • 安装floodlight时环境变量出现问题,管态下命令丢失。

  • /bin 不在PATH 环境变量中,故无法找到该命令

    • 原因:配置java环境变量时,不小心把系统的PATH变量弄丢了(或者说覆盖掉)。
    • 解决方法:
      • 打开 ~/.bashrc 进行修改。
      • 运行 gedit ~/.bashrc
      • 如果碰到:“/gedit 不在PATH 环境变量中,故无法找到该命令”,问题,可以先设置临时的PATH变量。
      • 贴出设置环境变量方法
  • 连接floodlight控制器时连接失败问题

    • 原因:端口错误。
    • 解决办法:
      • 查看相关版本生成控制器的端口号。
      • 理解脚本创建拓扑的原理,修改脚本。
原文地址:https://www.cnblogs.com/031602523liu/p/8859786.html