• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

18-网络管理和监控配置指导

目录

09-Packet Capture配置

本章节下载 09-Packet Capture配置  (283.42 KB)

09-Packet Capture配置


1 Packet Capture

1.1  Packet Capture简介

Packet Capture是一种报文捕获及分析特性,该特性能够捕获设备接口的入方向报文并对报文进行解析处理,便于用户分析接口接收到的报文;还可以将报文数据存储为pcap格式的文件,方便用户后续查看。

1.1.1  报文捕获类型

目前支持两种报文捕获类型:本地报文捕获和远程报文捕获。

1. 本地报文捕获

本地报文捕获功能可以将捕获的报文自动上传到FTP服务器、存储在设备存储介质中或者在登录设备的终端上显示报文信息,用户可以选择其中一种类型来进行报文捕获。

2. 远程报文捕获

远程报文捕获是指设备开启远程报文捕获服务功能后,用户必须通过PC上的第三方报文捕获软件Wireshark客户端与捕获报文的设备建立连接,远端报文捕获设备将报文数据发送给Wireshark,供Wireshark显示。

1.1.2  过滤规则的构成

Packet Capture可以使用过滤表达式指定过滤规则,对需要捕获、显示的报文进行过滤,仅捕获、显示用户关心的报文。

过滤规则由关键字和操作符组合而成:

·     关键字又分为:

¡     常量关键字:该类关键字为固定的字符串。使用时,用户需完整输入该关键字。

¡     变量关键字:该类关键字形式固定,但内容可变。用户可自定义该关键字的取值。

·     操作符分为逻辑操作符、运算操作符和比较操作符。

关于捕获过滤规则的详细介绍请参见网页:http://wiki.wireshark.org/CaptureFilters。

关于显示过滤规则的详细介绍请参见网页:http://wiki.wireshark.org/DisplayFilters。

1.2  构建捕获过滤规则

1.2.1  捕获过滤规则关键字

1. 常量关键字

表1-1 常量关键字

常量关键字类型

描述

关键字

协议

捕获指定协议的报文

如果没有指明协议类型,则捕获Packet Capture支持的所有协议的报文

支持的协议有:arp、icmp、ip、ip6、tcp、udp等

报文传输方向

捕获指定传输方向的报文

如果没有指定本关键字,缺省报文传输方向为源或目的方向。比如port 23等价于src or dst port 23

·     src:表示源方向

·     dst:表示目的方向

·     src or dst:表示源或目的方向

报文传输方向类型

捕获指定的报文传输方向类型的报文

如果没有指定本类关键字,缺省报文传输方向类型为主机。比如src 2.2.2.2 等价于src host 2.2.2.2

·     host:表示主机

·     net:表示网段

·     port:表示端口号

·     portrange:表示端口号范围

特殊关键字

-

·     broadcast:表示捕获广播报文

·     multicast:表示捕获组播报文、广播报文

·     less:表示小于等于

·     greater:表示大于等于

·     len:表示报文长度

·     vlan:表示捕获VLAN报文

 

2. 变量关键字

捕获过滤规则的变量关键字不可以单独使用,其前需要使用常量关键字对其进行修饰。

协议类型常量关键字、broadcast和multicast关键字不能对变量关键字进行修饰。其它的常量关键字不可单独使用,其后需要使用变量关键字。

表1-2 变量关键字

变量关键字类型

举例

整型

使用二进制、八进制、十进制或十六进制形式表示。例如:port 23,表示端口号为23

整型范围

使用二进制、八进制、十进制、十六进制形式和“-”表示。例如:portrange 100-200,表示端口号范围为100到200

IPv4地址

使用点分十进制格式表示。例如:src 1.1.1.1,表示源主机IPv4地址是1.1.1.1

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.2.2  捕获过滤规则操作符

1. 逻辑操作符

逻辑操作符的逻辑运算顺序为从左到右,其中非操作符优先级最高,与操作符和或操作符的优先级相同。

表1-3 逻辑操作符

逻辑操作符

描述

!或者not

非操作符。表示对捕获过滤规则取反操作

&&或者and

与操作符。表示连接多个捕获过滤规则。当此操作符连接多个过滤规则时,报文符合此操作符连接的全部过滤规则,才会过滤成功,否则,过滤失败

||或者or

或操作符。表示对多个捕获过滤规则进行选择,只要满足一个过滤规则,则过滤成功,否则,过滤失败

 

2. 运算操作符

表1-4 运算操作符

运算操作符

描述

+

加法运算符,用来将其两侧的值加到一起

-

减法运算符,用来将它前面的数值减去它后面的数值

*

乘法运算符,用来将其两侧的值相乘

/

除法运算符,用来将其左边的值被右边的值

&

按位与,用来将其两侧的数值逐位进行比较产生一个新值。对于每一位,只有两个操作数的对应位都为1时结果才为1

|

按位或,用来将其两侧的操作数逐位进行比较产生一个新值。对于每一位,如果其中任意操作数中对应的位为1,那么结果位就为1

<< 

按位左移,用来将其左侧操作数的每位向左移动,移动的位数由其右侧操作数指定

>> 

按位右移,用来将其左侧操作数的每位向右移动,移动的位数由其右侧操作数指定

[ ]

取位运算符,与协议类型关键字结合使用。例如:ip[6],表示IP报文偏移6个字节后,取得的一个字节的值

 

3. 比较操作符

表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字节的报文

 

1.2.3  捕获过滤规则表达式

1. 逻辑操作符表达式

由关键字和逻辑运算符组合的捕获过滤表达式。例如: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”等价。

2. expr relop expr表达式

由关键字、运算操作符和比较操作符组合的捕获过滤表达式。其中,expr是算术表达式;relop为比较操作符。例如:len+100>=200,表示捕获长度大于等于100字节的报文。

3. proto [ expr:size ]表达式

由协议类型关键字和运算操作符“[ ]”组合的捕获过滤表达式。其中,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的报文。

4. vlan vlan_id表达式

由关键字vlan、逻辑操作符等组合的捕获过滤表达式。其中,vlan_id为整型,表示VLAN编号。例如,vlan 1 and ip,表示捕获VLAN编号为1的IPv4报文。

需要注意的是:

·     对于带VLAN tag且接口允许通过的报文,必须使用此类捕获过滤表达式且关键字vlan要在其它捕获过滤条件之前指定,否则不能正常过滤。例如:vlan 3 and src 192.168.1.10 and dst 192.168.1.1,表示捕获VLAN 3内、192.168.1.10发往192.168.1.1的报文。

·     对于接口收到的不带VLAN tag的报文:

¡     如果设备会在报文头中添加VLAN tag,则为了捕获该类报文,必须在捕获过滤规则中设置过滤条件为“vlan xx”。对于三层报文,xx为报文出接口的缺省VLAN ID;对于二层报文,xx为入接口的缺省VLAN ID。

¡     如果设备不会在报文头中添加VLAN tag,则为了捕获该类报文,不能在捕获过滤规则中设置过滤条件为“vlan xx”。

1.3  构建显示过滤规则

当进行显示过滤时,所有报文仍然保存在捕获报文文件中;显示过滤只是将符合显示过滤条件的报文显示出来,不会改变文件的内容。

1.3.1  显示过滤规则关键字

1. 常量关键字

表1-6 常量关键字

常量关键字类型

描述

关键字

协议

显示指定协议的报文

如果没有指明协议类型,则显示捕获的所有协议的报文

支持的协议有:eth、ip、ipv6、tcp、udp、icmp、http、ftp、telnet等

报文字段

指定报文的特定字段

使用点“.”表示包含关系,格式为:protocol.field[.level1-subfield][.leveln-subfield]

例如:

·     tcp.flags.syn表示tcp协议报文flags字段中的syn位

·     tcp.port表示tcp协议的port字段

 

2. 变量关键字

报文字段的取值为变量关键字。报文的各个字段具有不同的类型,如表1-7所示。

表1-7 变量关键字的类型

字段类型

举例

整型

将整型字段值用二进制、八进制、十进制、十六进制形式表示。以下几种表达方式等价:

·     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.3.2  显示过滤规则操作符

1. 逻辑操作符

逻辑操作符的逻辑运算顺序为从左到右。优先级从高到低依次为:括号操作符、非操作符、与操作符和或操作符,其中与操作符和或操作符的优先级相同。

表1-8 显示过滤逻辑操作符

英文

描述和举例

!或not

非操作符。表示对显示过滤规则取反操作

&&或and

与操作符。表示连接多个显示过滤规则

||或or

或操作符。表示对多个显示过滤规则进行选择

[ ]

括号操作符。与协议名称组合使用,详细介绍请参见“1.3.3  4. proto[…]表达式

 

2. 比较操作符

表1-9 显示过滤比较操作符

分类

描述和举例

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字节的帧信息

 

1.3.3  显示过滤规则表达式

1. 逻辑操作符表达式

由关键字和逻辑运算符组合的显示过滤表达式。例如:ftp or icmp,表示显示所有ftp协议和icmp协议报文信息。

2. 比较操作符表达式

由关键字和比较运算符组合的显示过滤表达式。例如:ip.len<=28,表示显示所有IP报文的长度字段小于等于28字节的IP报文。

3. 报文字段表达式

只由报文字段组成的显示过滤表达式,作用是显示存在某一具体字段的报文信息。例如:tcp.flags.syn,表示显示所有存在tcp.flags.syn位的报文。

4. proto[…]表达式

由协议类型和运算操作符“[ ]”组合的显示过滤表达式,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.4  报文捕获配置限制和指导

二层接口上的大部分流量为硬件转发报文,对于硬件转发报文,不管是本地还是远程报文捕获,均需要使用QoS策略将硬件报文镜像到CPU才能捕获;对于软件转发报文,不需要将报文镜像到CPU,直接开启报文捕获功能即可。

报文捕获功能仅对帧长度小于等于9196字节的报文生效。

1.5  配置本地报文捕获

请在用户视图执行以下命令,配置将射频接口捕获的报文保存到FTP服务器。通过使用第三方软件Wireshark连接到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 } string ] ] [ monitor-mode channel channel-number ]

本命令在后台执行。配置本命令后,用户可以继续输入命令来配置设备。

1.6  配置远程报文捕获

1. 配置准备

配置AP Radio远程报文捕获后,AP直接将捕获的报文发送给Wireshark显示。使用该功能前,需要将Wireshark连接到AP,Wireshark的配置请参见Wireshark的相关资料。

2. 配置步骤

请在用户视图执行以下命令,配置AP Radio远程报文捕获。

packet-capture remote ap ap-name radio radio-id [ port port ]

1.7  停止报文捕获

1. 功能简介

在配置报文捕获时,用户可通过参数来实现自动停止报文捕获。在报文捕获过程中,使用本功能可手工停止报文捕获。

2. 配置步骤

请在用户视图执行以下命令,停止本地或远程报文捕获。

packet-capture stop

1.8  Packet Capture显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后的报文捕获状态信息。

表1-10 Packet Capture显示和维护

操作

命令

显示本地或远程报文捕获状态

display packet-capture status

 

1.9  Packet Capture典型配置举例

1.9.1  本地报文捕获配置举例

1. 组网需求

·     在AP的Radio 1上开启本地报文捕获功能,要求捕获1KB的协议类型为TCP,且报文的源IP地址为192.168.20.173的报文。

·     Switch作为FTP服务器,保存AP上送的报文。

2. 组网图

图1-1 本地报文捕获组网图

3. 配置步骤

(1)     配置Switch

# 在Switch上添加一个FTP用户abc,并设置其认证密码为123456TESTplat&!,访问时使用的用户角色为network-admin,授权访问目录为cfa0的根目录,可以使用的服务类型为FTP。

<Switch> system-view

[Switch] local-user abc class manage

[Switch-luser-abc] password simple 123456TESTplat&!

[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

# 在AC上开启AP的Radio 1上的本地报文捕获功能,指定过滤字符串为"src 192.168.20.173 and tcp",将捕获的报文上送到IP地址为10.1.1.1的FTP服务器上,保存文件名为abc.pcap,FTP用户名为abc,密码为123456TESTplat&!,当捕获的报文文件大小达到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 123456TESTplat&!

4. 验证配置

通过display packet-capture status命令可以查看当前报文捕获的状态,在PC上使用wireshark软件与FTP服务器建立连接,可以解析报文文件。

1.9.2  远程报文捕获配置举例

1. 组网需求

在AP的Radio 1上开启远程报文捕获功能,将捕获的报文上送到Wireshark软件上解析。

2. 组网图

图1-2 远程报文捕获组网图

3. 配置步骤

(1)     配置AP

# 开启AP设备的Radio 1射频上的远程报文捕获功能,指定RPCAP服务端口号为2014。

<AC> packet-capture remote ap ap1 radio 1 port 2014

(2)     配置PC

a.     在PC上打开Wireshark软件,选择“Capture > Options”。

b.     选择“Interface > Remote”。

c.     输入AP的IP地址10.1.1.1(该地址必须和Wireshark路由可达)和绑定的RPCAP服务端口号2014。

d.     点击<OK>按钮,再点击<Start>按钮启动捕获。此时在报文捕获窗口可看到捕获到的报文。

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们