12-11 2,462PVs
floodlight是一款SDN的控制器。安装这个的原因是因为在学习mininet的过程中发现有人使用这个软件做其控制器。
1 2 3 4 5 6 7 |
#用到的命令行 sudo apt-get install build-essential default-jdk ant python-dev git clone git://github.com/floodlight/floodlight.git cd floodlight git checkout stable ant java -jar target/floodlight.jar #运行Floodlight |
完毕后发现floodlight是使用java写的于是放弃了后面的步骤,链接如下:http://www.sdnap.com/sdnap-post/1788.html
下面提供一个poxdesk的安装案例:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
git clone https://github.com/noxrepo/pox cd pox git checkout betta cd ext git clone https://github.com/MurphyMc/poxdesk cd poxdesk wget http://downloads.sourceforge.net/qooxdoo/qooxdoo-2.0.2-sdk.zip unzip qooxdoo-2.0.2-sdk.zip mv qooxdoo-2.0.2-sdk qx cd poxdesk ./generate.py cd ../../.. ./pox.py samples.pretty_log web messenger messenger.log_service messenger.ajax_transport openflow.of_service poxdesk |
第一次试跑没能成功跑起topoviewer,很是遗憾,开始找寻原因。
在SDNap上找到一个好的pox wiki:https://openflow.stanford.edu/display/ONL/POX+Wiki
然后看到了李呈的博客:
按照他的提示开启了:discovery模块。我的discovery模块在pox.openflow.discovery。尝试后还是无法解决问题。
他的博客中提到samples.pretty_log是一个高亮显示提示的组件,会让界面好看一点。
后来简单搜索了一下,原来是启动命令的问题。需要修改一下启动的命令:
1 2 |
./pox.py samples.pretty_log web messenger messenger.log_service messenger.ajax_transport openflow.of_service poxdesk forwarding.hub #问题得到解决 |
作者在官网上有一句话:
使用openflow.discovery和poxdesk.tinytopo来使topology viewer正常工作。使用poxdesk.terminal来使terminal正常工作。
让我十分郁闷的是,运行之后打开topology viewer并没有看到期待中的拓扑,我就蛋疼了。
后来发现是没有添加poxdesk.tinytopo的问题:
1 |
./pox.py samples.pretty_log web messenger messenger.log_service messenger.ajax_transport openflow.of_service openflow.webservice poxdesk openflow.discovery poxdesk.tinytopo pox.forwarding.l2_pairs |
1 2 |
apt-get install wireshark #安装 wireshark & #启动 |
这是报错:
[string “/usr/share/wireshark/init.lua”]:45: dofile has been disabled
解决方法:
1 |
sudo gedit /usr/share/wireshark/init.lua |
倒数第二行原来为:
1 |
dofile(DATA_DIR.."console.lua") |
改为
1 |
--dofile(DATA_DIR.."console.lua") |
然后开始配置Openflow的协议:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#指令如下,我是用的指令和Openflow Wireshark Dissector的wiki上的有点不同,但是实现的功能是一样的,wiki的指令如下: apt-get install libgtk2.0-dev #我使用的指令: apt-get isntall wireshark wireshark-dev scons build-essential libcanberra-gtk-module #不安装这两个库的话,编译OWD时会提示缺少glib.h文件 #吐槽一下,自己做研究真是一件累人的工作,没人指导的话一个问题就得查阅资料很久才能解决。 #又遇到了 ''' Error message: Couldn't load module > /usr/lib/wireshark/libwireshark1/plugins/packet-openflow.so: > /usr/lib/wireshark/libwireshark1/plugins/packet-openflow.so: undefined > symbol: dissector_add 我已经彻底醉了 然后需要按照以下方式修改: ''' void proto_reg_handoff_openflow() { openflow_handle = create_dissector_handle(dissect_openflow, proto_openflow); // dissector_add(TCP_PORT_FILTER, global_openflow_proto, openflow_handle); dissector_add_uint(TCP_PORT_FILTER, global_openflow_proto,openflow_handle); } ''' 然后就可以正常运行了。到此刻,我已泪流满面。。。 ''' |
