OpenFlow Tutorial 最详细翻译(一)
天天写介绍SDN的估计大家都烦,看了跟没看一样,来篇实战的。
为什么敢说最权威最详细呢,还是下的功夫的区别。另外,比我李青林还笨的程序员,大概率搞不定这一坨一坨的麻烦事,比我牛逼的,肯定不屑于写这么土的文章,那好吧,我来完成它。正是因为我也不懂,所以我知道跟我一样笨的人哪些点可能不懂,不懂的地方我们就详细一点。
OpenFlow Tutorial是openflow基金会的关于openflow的最简单的入门实践。原文自己百度题目就好了。如果英文好并且你看到这篇文章的时候正好是这篇文章发表的时候,那么恭喜你,照着手册练一把就完事了。但是,linux他妈的天天更新啊,openflow天天更新啊,mininet天天更新啊,wireshark天天更新啊,这他妈不是跟windows一样你下载双击一下就搞定了啊!~
文章的第一部分就是先安装相关的科研软件了啊。当然,有个叫SDN-ALL-IN-ONE的光盘里,可以直接下下来自带wireshark,mininet等等,但是,我们还是希望大家多动手,毕竟我们还没到总工的级别,那么我们还是自己多锻炼动手能力。(七分实干,三分吹牛就很好了)
好吧,我们怎么实战呢?嗯,先下载个linux版本,无非red hat家的跟unbuntu家的。Centos?opensuse?debian?别逗了,这些真不是你搞业务的人玩的。嗯,那就下载个乌班图家的不要太新的版本,我选了14.04 lts,lts的意思就是长期支持,相对好点。
然后找个虚拟机装起来,再然后呢?这就到了泪点,说多了全是泪。笔者之前直接安装mininet开搞,然后要抓包安装wireshark,在然后发现wireshark不能抓openflow包啊,再然后解决呗,嗯,自己下载了openflow的代码手动编译openflow支持wireshark的插件,哎,发现没有glib的头文件,艹!然后装glibdev,再然后,因为软件依赖,怎么都装不上了。。。。
嗯,那么我们换个办法,格式化硬盘,重装系统。。。。先装libglib2.0dev,再安装其他乱七八糟的软件。嗯,unbuntu家还是sudo apt-get install 软件名就可以,应该知道的吧?嗯,回到openflow编译阶段,重新编译openflow源代码妈的又出错了
snow@snow-VirtualBox:~/openflow-1.0.0/utilities/wireshark_dissectors/openflow$ sudo make
[sudo] password for snow:
packet-openflow.o packet-openflow.c
/usr/include/glib-2.0/glib/gtypes.h:32:24: fatal error: glibconfig.h: No such file or directory
#include <glibconfig.h>
嗯,这个还是好搞得,强行拷贝吧。sudo cp /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h /usr/include
再多说一句,openflow源代码很有意思,一部分用makefile管理的,一部分用automake管理的,编译这个还是只make下就好了。
嗯,终于编译出了wireshark的解析插件,累死。。好吧,重启下wireshark看看包长得什么样?
什么?点进去告诉你wireshark更新了跟老的插件结构体不对应?呵呵~zhezhenshirilegoule~~~
用插件支持openflow解析,有点累了,当然还有一种编译插件的方法,不想搞了。。。换个思路了,这么流行的包格式,抓包厂家不更新吗?
嗯,到wireshark的网站上看看它的版本日志,看看他哪个版本支持了openflow,嗯,发现其实1.12以上的都支持,那他妈的为什么apt get出来的不支持呢!嗯,这就是linux啊,就这个德行。
好吧,自己下载wireshark的源代码,自己编译一把把。
sudo wget https://1.as.dl.wireshark.org/src/wireshark-1.12.8.tar.bz2 --no-check-certificate
注意,这个版本号要自己登陆到网站上看看,说不定人家版本经理改了路径,加了个后缀什么滴。
$ ./configure
$ make //这个编译过程有点漫长。。另外说一下,在虚拟机里究竟不要加多核编译了-j8了,j8不j8没什么区别
$ sudo make install
$ sudo ldconfig
嗯,这下好了,sudo wireshark,filter里填写openflow,终于可以开搞openflow了。
这个方法,基本两年内照着我写的搭建,应该都能搭建出来di~~~
到现在,恭喜你,基本的环境搭建好了。最后,欢迎大家自己手动试验一下,有好方法教我做人,我也是被linux教会了做人。