11-Packet Capture配置
本章節下載: 11-Packet Capture配置 (877.54 KB)
目 錄
![]()
本手冊使用CF卡類型的存儲介質舉例,設備實際支持的存儲介質,請參見“基礎配置指導”中的“文件係統管理”。
Packet Capture是一種報文捕獲及分析特性,該特性能夠捕獲設備接口的入方向報文並對報文進行解析處理,便於用戶分析接口接收到的報文;還可以將報文數據存儲為pcap格式的文件,方便用戶對報文進行後續解析。
該特性不支持多終端操作,目前支持以下二種報文捕獲的方式:
· 本地報文捕獲
本地報文捕獲功能可以將捕獲的報文自動上傳到FTP服務器、存儲在設備存儲介質中或者在控製台上顯示報文信息,用戶可以自行選擇。用戶可以任意選擇其中一種方式來進行報文捕獲。
· 遠程報文捕獲
遠程報文捕獲是指設備開啟遠程報文捕獲服務功能後,用戶必須通過PC上的第三方報文捕獲軟件Wireshark客戶端與捕獲報文的設備建立連接,遠端報文捕獲設備將報文數據發送給Wireshark客戶端,供Wireshark客戶端顯示。
Packet Capture可以使用捕獲過濾表達式指定捕獲過濾規則,對進入指定物理接口的報文進行過濾,滿足捕獲過濾規則的報文則被捕獲。捕獲過濾規則由關鍵字、邏輯操作符、運算操作符和比較操作符等組合而成。有關Packet Capture更多規則的詳細介紹,請參見網址:http://wiki.wireshark.org/CaptureFilters。
捕獲過濾規則使用的關鍵字分為常量關鍵字和變量關鍵字。
常量關鍵字是固定的字符串,可以分為以下幾類:協議類型、傳輸方向和傳輸方向的類型等。
表1-1 常量關鍵字
|
常量關鍵字類型 |
描述 |
關鍵字 |
|
協議 |
捕獲指定的協議報文。如果沒有指明協議類型,默認捕獲所有Packet Capture支持的協議 |
支持的協議有:ip,ipv6,arp,tcp,udp,icmp等 |
|
報文傳輸方向 |
捕獲指定傳輸方向的報文。如果沒有指定本關鍵字,默認報文傳輸方向為源或目的方向 |
· src:表示源方向 · dst:表示目的方向 · src or dst:表示源或目的方向 |
|
報文傳輸方向類型 |
捕獲指定的報文傳輸方向類型的報文。如果沒有指定本類關鍵字,默認報文傳輸方向類型為主機 |
· host:表示主機 · net:表示網段 · port:表示端口號 · portrange:表示端口號範圍 |
|
特殊關鍵字 |
- |
· broadcast:表示捕獲廣播報文 · multicast:表示捕獲組播報文、廣播報文 · less:表示小於等於 · greater:表示大於等於 · len:表示報文長度 · vlan:表示捕獲VLAN報文 |
變量關鍵字形式固定,但內容可變。捕獲過濾規則的變量關鍵字不可以單獨使用,其前需要使用常量關鍵字對其進行修飾。
需要注意的是,所有的協議類型常量關鍵字、broadcast和multicast關鍵字不能對變量關鍵字進行修飾。其它的常量關鍵字不可單獨使用,其後需要使用變量關鍵字。
表1-2 變量關鍵字
|
變量關鍵字類型 |
舉例 |
|
整型 |
將整型用二進製、八進製、十進製或十六進製形式表示。例如:port 23,表示端口號為23 |
|
整型範圍 |
將整型範圍用二進製、八進製、十進製、十六進製形式和“-”表示。例如:portrange 100-200,表示端口號範圍為100到200 |
|
IPv4地址 |
使用點分十進製格式表示。例如:src 1.1.1.1,表示源主機IPv4地址是1.1.1.1(在沒有指定報文傳輸方向類型時,報文傳輸方向類型默認為host) |
|
IPv6地址 |
使用冒號分十六進製格式表示。例如:dst host 1::1,表示報文的目的主機IPv6地址是1::1 |
|
IPv4網段 |
使用IPv4地址和掩碼或者IPv4網絡號表示。以下兩種表達式等價: · src 1.1.1,表示源主機的IPv4網段為1.1.1 · src net 1.1.1.0/24,表示源主機的IPv4網段為1.1.1.0/24 |
|
IPv6網段 |
使用IPv6地址和網絡前綴表示。例如:dst net 1::/64,表示目的IPv6網段為1::/64 · 需要注意的是,指定IPv6網段變量關鍵字時,必須指定net常量關鍵字 |
邏輯操作符的邏輯運算順序為從左到右,下表為邏輯操作符的分類舉例。
表1-3 邏輯操作符
|
邏輯操作符 |
描述 |
|
!或者not |
非操作符。表示對捕獲過濾規則取反操作 |
|
&&或者and |
與操作符。表示連接多個捕獲過濾規則。當此操作符連接多個過濾規則時,報文若符合此操作符連接的全部過濾規則,才會過濾成功,否則,過濾失敗。 |
|
||或者or |
或操作符。表示對多個捕獲過濾規則進行選擇。當此操作符連接多個過濾規則時,報文若不符合此操作符連接的全部過濾規則,才會過濾失敗,否則,過濾成功。 |
其中非操作符優先級最高,與操作符和或操作符的優先級相同。
表1-4 運算操作符
|
運算操作符 |
描述 |
|
+ |
加法運算符,用來將其兩側的值加到一起 |
|
- |
減法運算符,用來將它前麵的數值中減去它後麵的數值 |
|
* |
乘法運算符,用來將其兩側的值相乘 |
|
/ |
除法運算符,用來將其左邊的值被右邊的值除 |
|
& |
按位與,用來將其兩側的數值逐位進行比較產生一個新值。對於每一位,隻有兩個操作數的對應位都為1時結果才為1 |
|
| |
按位或,用來將其兩側的操作數逐位進行比較產生一個新值。對於每一位,如果其中任意操作數中對應的位為1,那麼結果位就為1 |
|
<< |
按位左移,用來將其左側操作數的每位向左移動,移動的位數由其右側操作數指定 |
|
>> |
按位右移,用來將其左側操作數的每位向右移動,移動的位數由其右側操作數指定 |
|
[ ] |
取位運算符,與協議類型關鍵字結合使用。例如:ip[6],表示IP報文偏移6個字節後,取得的一個字節的值 |
下表為比較操作符的分類舉例。
表1-5 比較操作符分類
|
比較操作符 |
描述 |
|
= |
相等,判斷兩側操作數是否相等。例如:ip[6]=0x1c,表示捕獲IPv4報文數據域偏移6字節,取得的一個字節值為0x1c的報文 |
|
!= |
不等,判斷兩側操作數是否不等。例如:len!=60,表示捕獲報文長度不等於60字節的報文 |
|
> |
大於,判斷左側操作數大於右側操作數。例如:len>100,表示捕獲報文長度大於100字節的報文 |
|
< |
小於,判斷左側操作數小於右側操作數。例如:len<100,表示捕獲報文長度小於100字節的報文 |
|
>= |
大於等於,判斷左側操作數大於等於右側操作數;與常量關鍵字greater等價。例如:len>=100,表示捕獲報文長度大於等於100字節的報文 |
|
<= |
小於等於,判斷左側操作數小於等於右側操作數;與常量關鍵字less等價。例如:len<=100,表示捕獲報文長度小於等於100字節的報文 |
捕獲過濾表達式由關鍵字、邏輯操作符、運算操作符和比較操作符之間的多種組合而成。以下為典型捕獲過濾表達式:
由關鍵字和邏輯運算符組合的捕獲過濾表達式。例如:not port 23 and not port 22,表示捕獲端口號既不是23,又不是22的報文;port 23 or icmp,表示捕獲端口號是23或icmp協議的報文。
由邏輯操作符連接的多個變量關鍵字,可以使用同一個常量關鍵字進行修飾(就近原則),例如:src 192.168.56.1 or 192.168.27,表示捕獲的源IPv4地址為192.168.56.1或者源IPv4網段為192.168.27的報文。上述表達式與“src 192.168.56.1 or src 192.168.27”等價。
由關鍵字、運算操作符和比較操作符組合的捕獲過濾表達式。其中,expr是算術表達式;relop為比較操作符。例如:len+100>=200,表示捕獲長度大於等於100字節的報文。
由協議類型關鍵字和運算操作符“[ ]”組合的捕獲過濾表達式。其中,proto表示協議類型,expr為算術表達式,表示偏移量,size為整數,表示字節個數,缺省值為1。proto [ expr:size ]的返回值為從proto協議報文數據區域起始位置,偏移expr個字節開始,取size個字節的數據。例如: ip[0]&0xf != 5,表示捕獲第一個字節與0x0f按位相與得到的值不是5的IP報文。
expr:size也可以使用名字表示。例如:icmptype表示ICMP報文的類型域,則表達式:icmp[icmptype]=0x08,表示捕獲icmp的type字段的值為0x08的報文。
由關鍵字vlan,邏輯操作符等組合的捕獲過濾表達式。其中,vlan_id為整型,表示VLAN編號。例如,vlan 1 and ip6,表示捕獲VLAN編號為1的IPv6報文。
需要注意的是:
· 如果用戶需要對帶VLAN的報文進行捕獲過濾,必須使用此類捕獲過濾表達式且關鍵字vlan要在其它捕獲過濾條件之前指定,否則不能正常過濾。例如:icmp,表示捕獲不帶vlan的icmp報文。
· 如果捕獲過濾規則之前沒有指定vlan,則認為這些捕獲過濾規則隻對不帶vlan的報文進行捕獲過濾,即對帶vlan的報文不捕獲。例如:
¡ !tcp and vlan 1:表示捕獲不帶vlan標記的tcp報文以外的且屬於vlan 1的報文。
¡ icmp and vlan 1:icmp表示捕獲不帶vlan標記的icmp協議報文,而vlan 1表示捕獲vlan標記為1的報文,所以該捕獲過濾表達式前後矛盾,因此不會收到任何報文,對於此類捕獲過濾規則,隻要沒有語法錯誤,命令行均會下發成功,用戶需要自己保證邏輯的正確性。
Packet Capture可以使用顯示過濾表達式指定顯示過濾規則,對捕獲到的報文進行顯示過濾。當進行顯示過濾時,所有報文仍然保存在捕獲報文文件中;顯示過濾隻是將符合顯示過濾條件的報文顯示出來,不會改變文件的內容。顯示過濾規則由關鍵字,顯示過濾操作符等組合而成,有關Packet Capture更多規則的詳細介紹,請參見網址:http://wiki.wireshark.org/DisplayFilters。
顯示過濾關鍵字主要分為兩類:
· 協議類型
支持的協議包括:eth,ip,ipv6,tcp,udp,icmp,http,ftp,telnet等。例如:ftp,表示顯示所有ftp協議的報文信息。
· 報文字段
指定報文的特定字段。使用點“.”表示包含關係。例如:tcp.flags.syn,表示tcp協議報文flags字段中的syn位。例如:tcp.port,表示tcp協議的port字段。
報文的各個字段具有不同的類型。字段類型如表1-6所示:
|
字段類型 |
舉例 |
|
整型 |
將整型字段值用二進製、八進製、十進製、十六進製形式表示。以下幾種表達方式等價: · ip.len le 1500 · ip.len le 02734 · ip.len le 0x436 表示顯示IP報文長度小於等於1500字節的報文信息 |
|
布爾變量 |
不使用其它操作符,單獨使用報文字段,則默認指定字段的類型為布爾類型。例如: tcp.flags.syn,表示如果捕獲到的報文存在tcp.flags.syn字段,則表達式的值為真,顯示過濾成功;否則為假,顯示過濾失敗 |
|
MAC地址(6字節) |
MAC地址使用以下三種分隔符表示:分號“:”、點“.”或者破折號“-”;分隔符可以在兩個或者四個字節間使用。以下幾種方式等價: · eth.dst==ff:ff:ff:ff:ff:ff · eth.dst==ff-ff-ff-ff-ff-ff · eth.dst ==ffff.ffff.ffff 以上的顯示過濾表達式表示顯示目的MAC地址為ffff.ffff.ffff的報文信息 |
|
IPv4地址 |
IPv4地址使用點分十進製格式表示。例如: · ip.addr==192.168.0.1,表示顯示源或者目的IP地址為192.168.0.1的報文信息 · ip.addr==129.111.0.0/16,表示顯示源或者目的IP地址屬於129.111網段的報文信息 |
|
IPv6地址 |
IPv6地址使用冒號分十六進製格式表示。例如: · ipv6.addr==1::1表示顯示源或者目的IPv6地址為1::1的報文信息 · ipv6.addr==1::/64表示顯示源或者目的IPv6地址屬於1::/64網段的報文信息 |
|
字符串 |
一些報文字段類型為字符串。例如,http.request version=="HTTP/1.1"表示顯示http報文的request version字段為字符串HTTP/1.1的報文信息,雙引號表示報文字段內容為字符串 |
邏輯操作符的邏輯運算順序為從左到右,下表為邏輯操作符的分類舉例:
表1-7 顯示過濾邏輯操作符
|
英文 |
描述和舉例 |
|
!或not |
非操作符。表示對顯示過濾規則取反操作 |
|
&&或and |
與操作符。表示連接多個顯示過濾規則 |
|
||或or |
或操作符。表示對多個顯示過濾規則進行選擇 |
|
[ ] |
括號操作符。與協議名稱組合使用,詳細介紹請參見“1.3.3 4. proto[…]表達式” |
優先級從高到低依次為:括號操作符、非操作符、與操作符和或操作符,其中與操作符和或操作符的優先級相同。
下表對比較操作符進行分類舉例:
表1-8 顯示過濾比較操作符
|
分類 |
描述和舉例 |
|
eq或== |
相等,判斷兩側操作數是否相等。例如:ip.src==10.0.0.5,表示顯示源IP地址為10.0.0.5的報文信息 |
|
ne或!= |
不等,判斷兩側操作數是否不等。例如:ip.src!=10.0.0.5,表示顯示源IP地址不是10.0.0.5的報文信息 |
|
gt或> |
大於,判斷左側操作數大於右側操作數。例如: frame.len>100,表示顯示捕獲的幀長度大於100字節的幀信息 |
|
lt或< |
小於,判斷左側操作數小於右側操作數。例如:frame.len<100,表示顯示捕獲的幀長度小於100字節的幀信息 |
|
ge 或>= |
大於等於,判斷左側操作數大於等於右側操作數。例如:frame.len ge 0x100,表示顯示捕獲的幀長度大於等於256字節的幀信息 |
|
le或<= |
小於等於,判斷左側操作數小於等於右側操作數。例如:frame.len le 0x100表示顯示捕獲的幀長度小於等於256字節的幀信息 |
顯示過濾表達式由協議和報文字段、顯示過濾操作符之間的多種組合而成。以下為典型的顯示過濾表達式:
由關鍵字和邏輯運算符組合的顯示過濾表達式。例如:ftp or icmp,表示顯示所有ftp協議和icmp協議報文信息。
由關鍵字和比較運算符組合的顯示過濾表達式。例如:ip.len<=28,表示顯示所有IP報文的長度字段小於等於28字節的IP報文。
隻由報文字段組成的顯示過濾表達式,作用是顯示存在某一具體字段的報文信息。例如:tcp.flags.syn,表示顯示所有存在tcp.flags.syn位的報文。
由協議類型和運算操作符“[ ]“組合的顯示過濾表達式,proto[…]的類型為十六進製整型,其中,proto表示協議類型、字段。括號操作符內容有以下兩種表達方式:
· [n:m],n表示偏移位置,m表示指定的字節數;表示從偏移n個字節位置開始取後麵m個字節數據。例如:eth.src[0:3]==00:00:83,表示源MAC地址的前三個字節分別為0x00、0x00、0x83。
· [n-m],n表示偏移起始位置,m表示偏移結束位置;表示從偏移n個字節位置取到第m個字節位置,共取m-n+1個字節數據。例如:eth.src[1-2]==00:83,表示MAC地址的第二個字節和第三個字節分別為0x00、0x83。
· [n],與[n:1]等價,表示取偏移n個字節位置的一個字節數據。例如:eth.src[2] == 83,表示MAC地址的第三個字節為0x83。
表1-9 Packet Capture配置任務簡介
|
配置任務 |
說明 |
詳細配置 |
|
配置AP Radio本地報文捕獲 |
二者必選其一 |
|
|
配置AP Radio遠程報文捕獲 |
用戶可以通過本配置將射頻接口捕獲的報文保存到FTP服務器上,通過使用第三方軟件Wireshark連接到FTP服務器對保存的報文文件進行解析。
表1-10 配置AP Radio本地報文捕獲並將捕獲的報文保存到FTP服務器
|
操作 |
命令 |
說明 |
|
配置AP Radio本地報文捕獲並將捕獲的報文保存到FTP服務器 |
packet-capture local ap ap-name radio radio-id [ capture-filter capt-expression | limit-frame-size bytes | autostop filesize kilobytes | autostop duration seconds ] * write url url [ username username [ password { cipher | simple } key ] ] |
配置本命令後,不會阻斷當前控製台的輸入,用戶可以輸入其它命令對設備進行操作 若用戶想退出報文捕獲,則需要輸入packet-capture stop命令停止報文捕獲 |
遠程報文捕獲需要在設備上開啟遠程報文捕獲功能,然後將第三方軟件與設備建立連接,將捕獲的報文上送到第三方軟件顯示。
表1-11 配置AP Radio遠程報文捕獲
|
操作 |
命令 |
說明 |
|
配置AP Radio遠程報文捕獲 |
packet-capture remote ap ap-name radio radio-id [ port port ] |
若退出報文捕獲,需要輸入命令packet-capture stop |
在設備上開啟遠程報文捕獲後,需要使用Wireshark客戶端連接到開啟捕獲的設備(若開啟AP上的遠程捕獲,則需要連接到開啟報文捕獲的AP上)上,獲取捕獲的報文進行分析。
第三方軟件Wireshark客戶端上的操作步驟如下:
(1) 打開Wireshark軟件,選擇“Capture > Options”。
(2) 選擇“Interface > Remote”。
(3) 輸入開啟報文捕獲的AP的IP地址(和Wireshark軟件路由可達的接口IP地址)和綁定的端口號。
(4) 點擊<OK>按鈕,再點擊<Start>按鈕啟動捕獲。
圖1-1 Wireshark操作步驟圖

在完成上述配置後,在任意視圖下執行display命令可以顯示配置後的報文捕獲狀態信息。
表1-12 Packet Capture顯示和維護
|
操作 |
命令 |
|
顯示報文捕獲狀態 |
display packet-capture status |
· 在AP的Radio 1上開啟本地報文捕獲功能,要求捕獲1KB的協議類型為TCP,且報文的源IP地址為192.168.20.173的報文。
· Switch做為FTP服務器,保存AP上送的報文。
圖1-2 本地報文捕獲組網圖

(1) 配置Switch
# 在Switch上添加一個FTP用戶abc,並設置其認證密碼為123456,訪問時使用的用戶角色為network-admin,授權訪問目錄為Cfa0的根目錄,可以使用的服務類型為FTP。
<Switch> system-view
[Switch] local-user abc class manage
[Switch-luser-abc] password simple 123456
[Switch-luser-abc] authorization-attribute user-role network-admin work-directory cfa0:/
[Switch-luser-abc] service-type ftp
[Switch-luser-abc] quit
# 啟動Switch的FTP服務功能。
[Switch] ftp server enable
[Switch] quit
(2) 配置本地報文捕獲功能
# 在AC上開啟AP的Radio 1上的本地報文捕獲功能,指定過濾字符串為"src 192.168.20.173 and tcp",將捕獲的報文上送到IP地址為10.1.1.1的FTP服務器上,保存文件名為abc.pcap,FTP用戶名為abc,密碼為123456,當捕獲的報文文件大小達到1KB,退出捕獲過程。
<AC> packet-capture local ap ap1 radio 1 autostop filesize 1 capture-filter "src 192.168.20.173 and tcp" write url ftp://10.1.1.1/abc.pcap username abc password simple 123456
通過display packet-capture status命令可以查看當前報文捕獲的狀態,在PC上使用wireshark軟件與FTP服務器建立連接,可以解析報文文件。
在AP的Radio 1上開啟遠程報文捕獲功能,將捕獲的報文上送到Wireshark軟件上解析。
圖1-3 遠程報文捕獲組網圖

(1) 開啟AP設備的Radio 1射頻上的遠程報文捕獲功能
# 開啟AP設備的Radio 1射頻上的遠程報文捕獲功能,指定RPCAP服務端口號為2014。
<AC> packet-capture remote ap ap1 radio 1 port 2014
(2) 在PC上打開Wireshark軟件,菜單欄選擇Capture,在彈出的下拉菜單中選擇Options,彈出Capture Options對話框後,選擇remote捕獲方式,輸入捕獲地址10.1.1.1和端口號2014,點擊“OK”按鈕,再點擊“Start”按鈕,此時在彈出的報文捕獲窗口會看到捕獲的報文。
圖1-4 Wireshark軟件報文捕獲窗口

不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!
