您好,登錄后才能下訂單哦!
小編給大家分享一下wireshark如何解析ceph網絡通信,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
wireshark從2.0版開始支持ceph協議解析
下載地址:https://www.wireshark.org/download/
使用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不識別。
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嘗試獲取每一條信息并將其放入數據包詳細信息窗格中。
每個解剖器解碼其協議的一部分,然后將解碼交給后續解剖器以獲得封裝協議。
參考:https://www.wireshark.org/docs/wsdg_html_chunked/ChapterDissection.html
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解析子樹。
以上是“wireshark如何解析ceph網絡通信”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。