DPDK pdump抓包說明

2021-08-10 20:03:39 字數 1926 閱讀 4522

pdump依賴於libpcap庫及libpcap-dev等相關庫,要預先安裝。

pdump依賴於基於libpcap的pmd驅動,需要開啟兩個設定,來生成執行pdump工具

config_rte_librte_pmd_pcap=y ($(rte_sdk)/config/common_base檔案)config_rte_librte_pdump=y ($(rte_sdk)/config/common_base檔案)這裡以17.02版本為例說明。按照官方文件,在$(rte_sdk)目錄下,

設定編譯的目錄export rte_sdk=***,***就是dpdk的原始碼包的目錄

設定編譯後的安裝目錄(主要就是拷貝生成的庫,標頭檔案等)export destdir=***,這個安裝目錄可以自行設定。推薦自己建乙個目錄,好找就行,生成的pdump工具就在這個目錄裡。

在編譯安裝後,就會在安裝目錄的bin目錄中發現dpdk-pdump可執行檔案。可以拷貝出來後續執行。

dpdk-pdump使用時,作為secondary程序依附於primary程序。primary程序中啟動server端,初始化pdump抓包框架任務;dpdk-pdump程序是作為client端向primary程序傳送開始/停止抓包請求,然後primary程序拷貝乙份資料報到ring中,secondary程序從ring中讀取出來,並儲存為pcap檔案。因此,可以看出在primary程序中需要初始化pdump server。

在示例中,使用l3fd來當primary程序,但是需要做些小修改,在rte_eal_init()後,初始化pdump框架,新增如下**:

#ifdef rte_librte_pdump

/* initialize packet capture framework */

rte_pdump_init(null);

#endif

然後編譯l3fd生成l3fd可執行檔案,就以官方例子引數執行。

執行dpdk-pdump,作為secondary程序,依附於前面啟動的l3fd。執行如下引數命令:./dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap'

這裡需要注意port的取值,一定是dpdk繫結的網絡卡,如繫結了3張網絡卡,那port取值範圍就是0-2,對應於每個網絡卡。自然,也可以使用pci號來傳參,指明抓哪個網絡卡。dev=/tmp/rx.pcap就指明了最後抓的包存放的路徑。

更詳細的dpdp-pdump執行引數可以根據情況設定,格式如下:

usage: %s [eal options] -- --pdump "

"'(port=| device_id=),"

"(queue=),"

"(rx-dev=|"

" tx-dev=,"

"[ring-size=default:16384],"

"[mbuf-size=default:2176],"

"[total-num-mbufs=default:65535]'\n"

"[--server-socket-path="

"default:/var/run/.dpdk/ (or) ~/.dpdk/]\n"

"[--client-socket-path="

"default:/var/run/.dpdk/ (or) ~/.dpdk/]\n"

注意:引數中注意單引號那個字元,還有指定server-socket-path的路徑時的」\n」字元。

應用抓包之Fiddler抓包

tcpdump抓包 應用抓包之tcpdump命令抓包 原料fiddler fiddler是位於客戶端和伺服器端的http 也是目前最常用的http抓包工具之一 它能夠記錄客戶端和伺服器之間的所有 http請求,可以針對特定的http請求,分析請求資料 設定斷點 除錯web應用 修改請求的資料,甚至可...

什麼是 抓包 怎樣 抓包

你是網路管理員嗎?你是不是有過這樣的經歷 在某一天的早上你突然發現網路效能急劇下降,網路服務不能正常提供,伺服器訪問速度極慢甚至不能訪問,網路交換機埠指示燈瘋狂地閃爍 網路出口處的路由器已經處於滿負荷的工作狀態 路由器cpu已經到了百分之百的負荷 重啟動後沒有幾分鐘現象又重新出現了。這是什麼問題?裝...

php抓包設定引數 php的curl抓包

在php中實現抓包有兩種方式,乙個是使用file get contents 函式採集頁面內容,另一種就是curl curl請求過程 curl完成請求主要是分為以下四步 1 初始化,建立乙個新的curl資源 即 curl init 2 設定url和相應的選項 即 curl setopt 3 抓取url...