文档章节

浅谈wireshark解析ceph网络通信

zrz11
 zrz11
发布于 2018/11/05 16:09
字数 782
阅读 78
收藏 0

一、安装wireshark

wireshark从2.0版开始支持ceph协议解析

下载地址:https://www.wireshark.org/download/

二、ceph网络抓包

使用tcpdump在ceph集群上抓包,e.g.:tcpdump -i ens33 -s 0 -w 3ceph.pcap host 172.16.134.95 and host 172.16.134.96 ,

ens33是网络接口名字,3ceph.pcap是保存的抓包的文件名字,host 172.16.134.95 and host 172.16.134.96是在这两个节点之间流动的数据包

注意:tcpdump抓包要从ceph集群会话开始抓,否则在会话中间抓包,wireshark不识别。

三、wireshark架构

 

1、GUI处理在页面上所有用户的显示包块对话框,源码在ui/qt下面

2、core主要的“胶水”模块,把别的模块整合到一起,源码在根目录下

3、Epan包分析引擎,用协议书的形式分析包。源码在epan目录下

4、Wiretap用于读、写捕获的文件,源码在wiretap目录下

5、Capture捕获网络数据的接口模块,源码在capture下

参考:https://www.wireshark.org/docs/wsdg_html_chunked/ChWorksOverview.html

四、wireshark 解析包流程

当Wireshark从文件加载数据包时,每个数据包都会被解析。 Wireshark尝试检测数据包类型,并从数据包中获取尽可能多的信息。在此运行中,只需要包列表窗格中显示的信息。

当用户在数据包列表窗格中选择特定数据包时,将再次解析该数据包。 这一次,Wireshark尝试获取每一条信息并将其放入数据包详细信息窗格中。

每个解剖器解码其协议的一部分,然后将解码交给后续解剖器以获得封装协议。

参考:https://www.wireshark.org/docs/wsdg_html_chunked/ChapterDissection.html

五、wireshark dissector源码分析

wireshark根目录下epan/dissectors/packet-ceph.c是分析ceph网络协议的源码

10514行,注册解析器函数,

10516行,创建ceph_handle,如果有相应的包调用dissec_ceph_old函数解析.

10518行,在启发式解析器中加添dissect_ceph_heur,dissect_ceph_heur判断是不是ceph的网络包。wireshark分为普通字符串表,整数表和启发式解析表,

启发式解析器的特点是:一旦特定“连接”的数据包被识别为属于对于特定的协议,Wireshark应该始终直接调用该解析器解析此协议。

7091行,判断是不是ceph网络协议,其中C_BANNER定义在830行,C_BANNER_SIZE_MIN定义在833行

可见wireshark根据网络包中的ceph v标志,判断是否为ceph网络协议。

7099行,如果判断是ceph协议,调用ceph_handle处理。在10516行中创建了ceph_handle。

7081行,调用dissect_ceph函数,解析网络包

07019行,在网络包列表protocol字段中,设置Ceph字段

当在一个网络包列表中点击一个网络包时,下方的网络包详细信息中,以树形详细列出网络包的详细信息。

用proto_item_add_subtree注册下层的协议

c_dissect_xxx解析子树。

© 著作权归作者所有

zrz11
粉丝 3
博文 25
码字总数 15262
作品 0
丰台
程序员
私信 提问
加载中

评论(2)

zrz11
zrz11

引用来自“菓菓”的评论

您好,文章中的截图无法正常显示😄
已重新编辑
菓菓
菓菓
您好,文章中的截图无法正常显示😄
Wireshark网络端点和会话

如果想让网络进行正常通信,你必须至少拥有两台设备进行数据流交互。端点(endpoint)就是指网络上能够发送和接受数据的一台设备。举例来说,在TCP/IP的通信中就有两个断电:接收和发送数据系...

yrgw
2017/07/11
0
0
Linux高级网络开发奇妙之旅

一、基础理论篇 01、网络协议入门 02、LAN、WAN、WLAN、VLAN 和 VPN 的区别 03、IP 地址介绍 04、广播地址介绍 05、无连接和面向连接协议的区别 06、因特网的IP协议是不可靠无连接的,那为何...

tennysonsky
2015/04/14
0
0
如何缓解易受攻击的Wireshark?

     攻击wireshark   每隔一段时间就会有消息称wireshark易受攻击,易受利用或者易于破解,意思就是人们有方法在pcap和pcapng文件中构造帧消息或数据包来造成wireshark崩溃并且执行恶...

嘶吼RoarTalk
2018/09/28
0
0
wireshark怎么抓包、wireshark抓包详细图文教程

wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。使用wireshark的人必须了解网络协议,否则就看不懂wireshark了。 为了安全考虑,wir...

Marvin_Chen
2016/07/04
0
0
网络分析工具 Wireshark 用户手册

本手册介绍:介绍Wireshark安装、界面、基本操作 详细清单如下: 目录 译者序 1. 为什么要翻译 2. 关于本手册 2.1. 用什么工具编写的 2.2. 手册翻译的效果 2.3. 翻译中的问题 3. 补充说明 前...

红薯
2010/08/03
3.1K
9

没有更多内容

加载失败,请刷新页面

加载更多

好程序员分享Python自动化运维开发实战 六、流程控制

好程序员分享Python自动化运维开发实战 六、流程控制 PYTHON 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 Python程序语言指定任何非0和非...

好程序员IT
33分钟前
0
0
5年经验的Java工程师面试答不出反射和动态代理!怕是只会CRUD哦

分享阿里 P8 高级架构师吐血总结的 《BATJ大厂高级Java必问面试学习视频》,附送 100G 面试学习视频文档 阿里 P8 级高级架构师吐血总结的面试学习视频, 内容覆盖很广,分布式缓存、RPC 调用、...

戎码益深
53分钟前
1
0
加权查询

https://www.elastic.co/guide/cn/elasticsearch/guide/current/_cross_fields_queries.html 假设二维向量,如果一个维度设为无穷大,无论另一个维度为多大(具体值),向量都是与坐标轴平行...

Java搬砖工程师
54分钟前
3
0
GLIBC等相关文件升级更新

###参考资料:https://blog.csdn.net/glongljl/article/details/80156243###安装更新libstdc++.so文件https://blog.csdn.net/xdzhangzhenhao/article/details/80746403找一个更高版本的......

KYO4321
55分钟前
2
0
C# Dev XtraTabControl添加关闭页签功能

这个功能在界面操作上很常见,记录下,希望可以帮助您,请持续关注我。 一、添加关闭功能 若要tabpage显示关闭按钮,把xtraTabControl的ClosePageButtonShowMode属性设为InAllTabPageHeaders...

黑鹰客栈
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部