跳到內容

封包擷取

vifdump 在 Argo 資料平面的虛擬介面上擷取封包。五個指令皆為 F5 所有,均不在 除錯 API 中。

Site CLI 的引數元數(arity)可透過不帶引數執行指令來探查——它會回應 not sufficient args for command <name>。這對唯讀指令而言是安全的操作。在本文件編寫過程中對 vifdump 套用此方式,結果在一個仍在註冊中的節點上完全沒有回傳錯誤。擷取作業是否已啟動不得而知,因為該節點在確認之前便已被銷毀並重建。

這正是採集框架設計的完整理由:執行採用預設拒絕,而非拒絕清單。vifdump 不在任何拒絕清單上,因為沒有人想到它。只有明確的允許清單,才能拒絕那些無人想到的指令。

在指定的 vif 上擷取封包。

Terminal window
execcli vifdump <vif-id> [options]

vif id 請從 vif --list 取得。

擷取被丟棄的封包,可針對單一 vif 或全部 vif。

Terminal window
execcli vifdump-d <vif-id|all>

dropstats 搭配使用:dropstats 告知您發生了丟棄以及哪個計數器正在遞增,vifdump-d 則顯示具體的封包內容。

停止先前執行所遺留的擷取作業。

Terminal window
execcli vifdump-stop

設備本身的說明為「若前次執行異常結束,則停止 vifdump 指令」,這說明該失敗模式是預期中的:擷取作業可能在啟動它的工作階段結束後仍繼續運行。若您已執行 vifdump 且不確定其是否仍在進行,請執行此指令。

將擷取檔案從 Argo 容器複製到主機的 /tmp/vifdump/ 目錄。

Terminal window
execcli vifdump-file-cp

等同於 docker cp $(argo):/tmp/. /tmp/vifdump/。由於擷取作業寫入容器內部,因此此步驟不可或缺。

從 Argo 容器中刪除 .pcap 檔案。

Terminal window
execcli vifdump-file-rm

完成後請執行此指令。 它與 vifdump-stop 共同構成任何擷取作業的清理組合,若您接手一個可能有他人遺留擷取作業的節點,這兩個指令也應優先執行。