wireshark抓取OpenFlow数据包
在写SDN控制器应用或者改写控制器源码的时候,经常需要抓包,验证网络功能,以及流表的执行结果等等,wireshark是个很好的抓包分析包的网络工具,下面简介如何用wireshark软件抓取OpenFlow数据包
一. wireshark2.0.0
wireshark2.0.0直接内置了OpenFlow协议,只需要安装wireshark2.0.0即可。
在安装wireshark之前需要安装一些依赖包:
sudo apt-get install bison flex libpcap-dev gcc
然后通过wget或者自己上官网下载wireshark2.0.0源码,不过现在发现wireshark的官网很容易上不去,所以提供一个百度云链接:wireshark2.0.0源码,下载之后对源文件解压缩,并跳转至文件目录中
tar -vxjf wireshark-2.0..tar.bz2
cd wireshark-2.0.
配置,并进行安装
./configure
make
make install
在配置过程中遇到了如下两个问题:
- error: qt is not avaiable
reason: qt在两年前将用户界面库由GTK+切换到Qt进行了重写,所以需要安装qt
solution:- 原来的libmgl-qt5已经不存在了,取而代之的是libmgl-qt7.0.0,所以可以apt-get install libmgl-qt7.0.0
- apt-get install qttools5-dev(我选择的方法)
- apt-get install qt-sdk,所需要的磁盘空间偏大
- error:GTK+ 3 is not available
solution:apt-get install libgtk-3-dev
在安装完成,启动过程中遇到一个问题:
error:error while loading shared libraries: libwiretap.so.5: cannot open shared object file: no such file or directory
sulution:ldconfig (ldconfig是一个动态链接库管理命令,通常在系统启动时运行,而当用户安装了一个新的动态链接库时,需要手动更新这个命令,他在默认搜索目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(如lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件,缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表。
再次启动wireshark,可以添加过滤规则查看(比如OpenFlow1.3协议过滤规则为openflow_v4)

二. 其他版本的wireshark(以wireshark1.10.3,OpenFlow1.3为例)
加入你已经安装了wireshark,不想重新卸载安装,那么可以安装wireshark的插件,其中第四行等号后面需要的是你的wireshark的目录
apt-get install scons
git clone https://github.com/CPqD/ofdissector
cd ofdissector/src
export WIRESHARK="your wireshark source code location"
scons install
如果遇到如下问题:
openflow-common.cpp: In function 'void proto_reg_handoff_openflow()':
openflow-common.cpp::: error: 'dissector_add' was not declared in this scope
scons: *** [openflow-common.os] Error
scons: building terminated because of errors.
将openflow-commom.cpp中的59行和60行改成如下代码:
dissector_add_uint("tcp.port", OFP_TCP_PORT, openflow_handle);
dissector_add_uint("tcp.port", , openflow_handle);
插件安装好之后,需要将其拷贝到wireshark的安装目录下:
# sudo cp ~/.wireshark/plugins/openflow.so /usr/local/lib/wireshark/plugins/1.10./
之后打开wireshark,如下图,在help-About Wireshark-plugins中如果看到openflow.so,则表示安装成功。

wireshark对于网络数据包、网络功能的分析十分有用,支持OpenFlow的wireshark可以帮助我们调试代码,熟悉OpenFlow协议等等
wireshark抓取OpenFlow数据包的更多相关文章
- Android利用tcpdump和wireshark抓取网络数据包
Android利用tcpdump和wireshark抓取网络数据包 主要介绍如何利用tcpdump抓取andorid手机上网络数据请求,利用Wireshark可以清晰的查看到网络请求的各个过程包括三次 ...
- wireshark抓取本地数据包
windows系统中,本地向自身发送数据包没有经过真实的网络接口,而是通过环路(loopback interface)接口发送,所以使用基于只能从真实网络接口中抓数据的winpcap是无法抓取本地数据 ...
- wireshark抓取mysql数据包
最近在学习搭建数据库服务,因为跟产品相关所以需要从流量中拿到mysql的数据包.然后就想着在本机搭建mysql数据库,然后连接,用wireshark抓就行了. MySQL搭建用的是XAMPP,想说XA ...
- wireshark抓取qq数据包
抓包接口设置成本地连接 点击start,登录qq,输入oicq进行过滤qq包 找到第一个OICQ,点击后,点击oicq-IM software 可以看到自己登录的QQ号码为765343409 本机IP ...
- wireshark在windows下无法抓取localhost数据包
在调试SSL时要抓包,通过tcpview和minisniffer等工具明明看到tcp连接已经建立并开始收发数据了,但wireshark却总是无法抓到相应的数据包. 今天早上,HQ的高工告诉我“wire ...
- Wireshark学习笔记——怎样高速抓取HTTP数据包
0.前言 在火狐浏览器和谷歌浏览器中能够很方便的调试network(抓取HTTP数据包),可是在360系列浏览器(兼容模式或IE标准模式)中抓取HTTP数据包就不那么那么方便了.尽管也可使用H ...
- Fiddler抓取https数据包
Wireshark和Fiddler的优缺点: ①Wireshark是一种在网络层上工作的抓包工具,不仅自带大量的协议分析器,而且可以通过编写Wireshark插件来识别自定义的协议.虽然Wiresha ...
- Charles 如何抓取https数据包
Charles可以正常抓取http数据包,但是如果没有经过进一步设置的话,无法正常抓取https的数据包,通常会出现乱码.举个例子,如果没有做更多设置,Charles抓取https://www.bai ...
- Fiddler:在PC和移动设备上抓取HTTPS数据包
Fiddler是一个免费的Web调试代理,支持任何浏览器.系统以及平台.这个工具是进行Web和App网络开发的必备工具,戳此处下载. 根据Fiddler官网的描述,具有以下六大特点: Web调试 性能 ...
随机推荐
- .NET Remoting与Socket、Webservice和WCF的比较及优势 (转)
1:Socket VS Remoting 使用socket无疑是效率最高的.但是,在复杂的接口环境下,Socket的开发效率也是最低的.故在兼顾开发效率的情况下,可以使用Remoting来代替Sock ...
- 图解Java机制
一图胜过千万言!希望本文能帮助童鞋们回顾已经知道的那些知识. 1String对象不可改变的特性 下图显示了如下代码运行的过程: String s = "abcd"; s = s.c ...
- 将XML格式的字符串封装成DOM对象
在java端将字符串转化为xml对象可以使用DocumentHelper.parseText(xmlReturn).getRootElement(); 在js中同样有方法可以将字符串转化为xml对象, ...
- 【JavaScript】一个同步于本地时间的动态时间
这样例很easy.了解JavaScript之后就是几行的代码便可以完毕的事情. 可是对于一些未接触过JavaScript的人来说,差点儿非常大project的样子.然后在网上苦苦寻觅代码,之后在茫茫的 ...
- 关于Animator获取当前剪辑长度
通常下意识的肯定用这个接口 GetCurrentAnimatorStateInfo().length 但是存在一个过渡动画的问题,具体看这篇:过渡动画的测试 所以当播新的状态时直接取动画时间,取到的就 ...
- JQuery.Page.js分页插件的使用
1.简单直接贴代码 需要引用以下样式和脚本 <link href="~/Scripts/Page/pager.css" rel="stylesheet" ...
- HashMap 内部原理
HashMap 内部实现 通过名字便可知道的是,HashMap 的原理就是散列.HashMap内部维护一个 Buckets 数组.每一个 Bucket 封装为一个 Entry<K, V> ...
- delete void *
看代码的时候看到 typedef char xxx[sizeof(T) ? 1 : -1]; 这种语句 如:JavaScriptCore/wtf/OwnPtrCommon.h template < ...
- Linux编程学习路线
参考这篇博客 一本书一本书的啃吧,再多撸点项目
- python学习笔记1--python简介
Python翻译中文是蟒蛇.发明人guido喜欢蟒蛇马戏团,故起名python. python发展简史: --CNRI时期.CNRI资助Python发展的重要单位,python1.5版之前的成果大部分 ...