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...