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控制器时连接失败问题
- 原因:端口错误。
- 解决办法:
- 查看相关版本生成控制器的端口号。
- 理解脚本创建拓扑的原理,修改脚本。