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调试 性能 ...
随机推荐
- FusionCharts:tooltip分行显示
FusionCharts:tooltip分行显示 tooltip分行显示:如果tooltip过长,可分行显示,在tooltip中增加{br} <chart> <set label=' ...
- Atitit.100% 多个子元素自适应布局属性
Atitit.100% 多个子元素自适应布局属性 1.1. 原理1 1.2. Table布局1 1.3. Css布局1 1.4. 判断amazui加载完毕2 1.1. 原理 每个子元素平均分配,但是有 ...
- PCIe to AXI Translation——PCIe 内存空间到AXI内存空间的转换
PCIe to AXI Translation——PCIe 内存空间到AXI内存空间的转换 UltraScale系列芯片包含PCIe的Gen3 Integrated Block IP核在内的多种不同功 ...
- [sh]清理memcached缓存
#!/bin/bash ###author xxx ###date xxx ###清理内存缓存 used=`free -m | awk 'NR==2' | awk '{print $3}'` free ...
- PHPCMS 后台学习
1.final 不能被子类改写,不可扩展2.私有不能被继承3.构造方法,第一个被调用的方法4.static访问 类名::方法名 parent::test();这里test可以不静态 m=模块名& ...
- 已安装 SQL Server 2005 Express 工具。若要继续,请删除 SQL Server 2005 Express 工具
数据库安装sql server2008R2时遇到. 安装sql server 2008 management,提示错误:Sql2005SsmsExpressFacet 检查是否安装了 SQL Serv ...
- 使用 Bolt 实现 GridView 表格控件
用 Bolt 实现了一个表格控件: 1. 提供 Insert,Remove,Get,Set 接口,可以为表格增删数据: 2. 通过 ItemClass, ItemSetDataFunc 属性来指定显 ...
- Oracle之sqlplus显示中文出现乱码
解决办法: win+R快捷键>>--regedit>>HKEY_LOCL_MACHINE>>SOFTWARE>>ORALCE>>KEY_OR ...
- CSS学习笔记(3)--表格边框
http://www.alixixi.com/web/a/2009082657736.shtml 对于很多初学HTML的人来说,表格<table>是最常用的标签了,但对于表格边框的控制,很 ...
- MapReduce编程实例4
MapReduce编程实例: MapReduce编程实例(一),详细介绍在集成环境中运行第一个MapReduce程序 WordCount及代码分析 MapReduce编程实例(二),计算学生平均成绩 ...