最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

16tcpdump命令

IT圈 admin 48浏览 0评论

2024年9月2日发(作者:荣以松)

TCPDUMP使用说明

tcpdump命令参数解释 ............................................................................. 1

Tcpdump使用案例说明:......................................................................... 2

TCPDUMP出现“truncated-ip - 1215 bytes missing!”错误 .......................... 3

TCPDUMP 命令中的-i参数用VLAN名称与接口编号有什么区别 ............. 3

TCPDUMP 命令中出现“pcap_loop: Error: Interface packet capture busy”错

误信息? ................................................................................................. 5

tcpdump命令参数解释

TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网

络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉

无用的信息。

数据过滤

不带任何参数的TcpDump将搜索系统中所有的网络接口,并显示它截获的所有数

据,这些数据对我们不一定全都需要,而且数据太多不利于分析。所以,我们应当先想好

需要哪些数据,TcpDump提供以下参数供我们选择数据:

参数 描述 实例

-i 只过滤指定的接口上通过tcpdump -i eth0

的数据

-i 只过滤指定的vlan上通过tcpdump -i external

的数据

-e 显示MAC地址 Tcpdump -e

-n

不进行IP地址到主机名的

Tcpdump -n

注:在bigip v9中,需要

转换。

使用-nn

-X Display packets in hex Tcpdump –x

and decondes in ASCII

可以看到一些访问的请求

信息

-s 显示指定的字节数.默认为Tcpdump –s 1600

76字节.实际使用时,建议

用-s 1600,这样可以保证

抓取完整的数据包

-w 将输出内容保存在指二进Tcpdump –w chen

制文件定中

-r 查看指定的二进制文件 tcpdump -r chen

> 将输出内容保存在指定文Tcpdump –n >chen

件中,非二进制文件

host 过滤指定的主机.只显示过Tcpdump host 192.168.1.1

滤的内容.包括访问与应

答。

过滤指定的协议 tcpdump -i exp1 udp

ICMP,UDP,ARP,etc.

port 过滤指定的端口 tcpdump -i exp1 80

条件1 and 条件2 tcpdump -i exp1 host

61.55.138.133 and udp

条件1 or 条件2 tcpdump -i exp1 host

61.55.138.133 or udp

条件1 not 条件2 所有满足指定条件1并且

tcpdump -i exp1 host

61.55.138.133 not udp

除条件2的数据。

src

dst

过滤指定的来源地址.只显

示访问IP的请求包,不再

显示F5返回的包

过滤指定的目标地址.只显

示F5返回的包,不再显示

访问IP的请求包。

tcpdump -i exp1 src

61.55.138.133 or udp

注:tcpdump命令只针对经过CPU处理的数据包进行捕获,一但在BIGIP中的

某个VIP采用的是performance L4的方式,数据包则由四层加层ASIC芯片处理而没

有流经CPU,无法捕获数据。解决该问题的方法是:选取该Virtual Server将type由

Performance Layer4临时改为Standard再来用TCPDUMP命令抓包,抓包以后,改

回到Performance Layer4。

Tcpdump使用案例说明:

举例1:对external接口主机139.212.96.2并且端口为1433的流量进行监控。

端口不指定tcp和udp,默认为同时对tcp和udp进行报文捕获。本命令不解析IP地

址/端口号为主机名/服务名称,同时显示报文十二进制和文本信息,报文最大为1500

字节。

f5-1:~# tcpdump -i external -nn -X -s 1600 port 1433 and

host 139.212.96.2

tcpdump: listening on external

21:48:41.295546 139.212.96.2.1201 > 10.75.9.44.1433: .

302192826:302192827(1) ac

k 558871968 win 64360 (DF)

0x0000 012c 0800 4500 0029 38cf 4000 7f06

c3b2 .,..E..)8.@.....

0x0010 8bd4 6002 0a4b 092c 04b1 0599 1203

18ba ..`..K.,........

0x0020 214f b5a0 5010 fb68 a926 0000

00 !O..P..h.&...

21:48:41.296015 10.75.9.44.1433 > 139.212.96.2.1201: . ack

1 win 64636 (DF)

0x0000 012c 0800 4500 0028 cb2d 4000 7f06

3155 .,..E..(.-@...1U

0x0010 0a4b 092c 8bd4 6002 0599 04b1 214f

b5a0 .K.,..`.....!O..

0x0020 1203 18bb 5010 fc7c a812 0000 0000

0000 ....P..|........

0x0030 0000 ..

21:48:50.701130 139.212.96.2.1206 > 10.75.9.44.1433: .

304974934:304974935(1) ac

k 565108263 win 64882 (DF)

0x0000 012c 0800 4500 0029 38f7 4000 7f06

c38a .,..E..)8.@.....

0x0010 8bd4 6002 0a4b 092c 04b6 0599 122d

8c56 ..`..K.,.....-.V

0x0020 21ae de27 5010 fd72 0a6b 0000

00 !..'P..

21:48:50.702567 10.75.9.44.1433 > 139.212.96.2.1206: . ack

1 win 65267 (DF)

0x0000 012c 0800 4500 0028 d3a6 4000 7f06

28dc .,..E..(..@...(.

0x0010 0a4b 092c 8bd4 6002 0599 04b6 21ae

de27 .K.,..`.....!..'

0x0020 122d 8c57 5010 fef3 08ea 0000 0000 0000 .-

.WP...........

0x0030 0000 ..

举例2:对internal接口主机172.31.230.53和172.31.230.51之间端口8080的

流量进行分组捕获。本命令不解析IP地址/端口号为主机名/服务名称,报文最大为

1600字节,捕获信息以“/var/tmp/intdump”文件保存:

tcpdump -s 1600 -i internal -w /var/tmp/intdump host 172.31.230.53 and host

172.31.230.51 and port 8080

如果查看该捕获文件,请用tcpdump –r /var/tmp/intdump命令。也可以将捕获

的文件下载下来用Ethereal工具解包分析。

TCPDUMP出现“truncated-ip - 1215 bytes missing!”错误

在BIG-IP V9里面出现”Truncated-IP xxxx bytes missing”信息,一般来说并不是

网络上有丢包引起的,而是在执行TCPDUMP命令时没有加上 –s0或-s1600参数

时,而数据包大小超过TCPDUMP缺省的抓包大小(如果不加-s0或-s1600参数,则

缺省的每个数据包只抓前面400byes),就会出现truncated-ip的情况。出现这种情

况,只需要重新输入tcpdump命令,加上-s0或-s1600即可。

TCPDUMP 命令中的-i参数用VLAN名称与接口编号有什么区别

(如external或internal)与接口编号(1.1或2.1)有什么区别?

如果采用VLAN名称作为-i的参数,TCPDUMP收集的数据包是经由内部接口到

达TMM进程经由中央CPU处理的数据包。

采用VLAN名称作为-i参数的局限性在于,由于PVA四层加速芯片时位于BIG-

IP的交换板(Swithboard)上,并不需要经由主机板与交换机板的内部接口到达中央

CPU,因此TCPDUMP无法抓取这些四层加速的数据包。

因此采用VLAN名称作为-i的参数一般是用于对采用Standard作为Virtual

Server类型的应用抓包时采用。

注:如果Virtual Server是用PVA四层加速芯片作加速处理,则在Virtual

Server的属性中PVA Acceleration显示为Full。

(The PVA handles accelerated traffic in the following order:

The PVA receives accelerated traffic from the switch

subsystem

The PVA transforms the packet in order to redirect the

packet to the appropriate pool member

The PVA sends the packet back to the switch subsystem

Fully accelerated traffic never reaches the internal trunk

and is not processed by TMM. )

如果采用接口编号作为-i的参数,则进出该接口的数据包将先被镜像给

SCCP(SCCP是BIG-IP的管理子系统),然后送到主机板上通过TCPDUMP抓包。由

于是直接镜像了端口,因此经由四层加速芯处理的数据包也能被TCPDUMP获取。

采用接口编号作为-i的参数的局限性在于,由于数据包是经由SCCP(管理子系

统)转发给主机板,数据包的处理速度有限,每秒只能处理200个数据包。因此采用

接口编号作为-i的参数一般是用于做基本网络故障诊断时。

(When tcpdump is run on an interface, the packet is copied on switch

ingress to the SCCP, which then sends it to the host to be captured by

tcpdump.

Limitations

Running tcpdump on a switch interface is rate-limited to 200 packets

per second. Therefore, if you run tcpdump on an interface that is

processing more than 200 packets per second, the captured tcpdump file

will not include all of the packets.

For example, the following command will capture PVA accelerated traffic,

but the syntax will result in a rate limit of 200 packets per second。)

注:对于采用了PVA四层加速芯片加速处理的Virtual,而且网络流量又

比较大时,如果需要进行抓包分析,建议在上一级交换机作端口镜像,将网络

流量输出到外部的抓包主机上处理。

TCPDUMP 命令中出现“pcap_loop: Error: Interface packet

capture busy”错误信息?

同时执行多个TCPDUMP,出现“pcap_loop: Error: Interface packet capture

busy”错误,例如:

[root@bigip1:Active] config # tcpdump: listening on 1.1

[root@bigip1:Active] config # tcpdump -ni 1.3 -s 1600 -X -

w/var/tmp/ port 22 &

[3] 6813

tcpdump: listening on 1.3

[root@bigip1:Active] config # tcpdump -ni 1.4 -s 1600 -X -

w/var/tmp/ port 22 &

[4] 6820

tcpdump: listening on 1.4

[root@bigip1:Active] config # tcpdump: pcap_loop: Error:

Interface packet capture busy

tcpdump: pcap_loop: Error: Interface packet capture busy

这种情况一般只发生在TCPDUMP -i参数采用接口编号时。原因主要在于当采用

接口编号作为-i参数时,是通过BIG-IP的二层芯片将该接口的数据包镜像到中央

CPU作处理。而BIG-IP的二层芯片的接口镜像功能不支持多个接口同时镜像,因此

如果同时执行多个用接口名称作-i参数的TCPDUMP命令,就会出现Interface

packet capture busy的信息。

注:对于采用VLAN名称作为TCPDUMP –i参数,则不存在这个问题,

可以支持对多个VLAN同时执行TCPDUMP抓包命令。

(Currently only one tcpdump session is possible at a time on a switch interface

(tcpdump on vlan alllows multiple sessons). This is due to a limitation of the

Broadcom SDK, but we may be able to extend the SDK to support multiple sessions.

The root difficulty here is that mirrored packets don't carry a note saying "this is

where I came from." In a Broadcom switch fabric we can mirror from multiple ports,

and all the packets will funnel to the host -- but we don't know which tcpdump session

to route them to. One idea involves a layer 2 lookup on each packet performed by the

bcm56xx daemon on the sccp. This would be intense so we continue to have this

limitation.)

F5总部建议抓包使用的参数:

Tcpdump –ni -s 1600 –w /var/tmp/

抓包时建议在client端,Bigip的进出两端,server端同时抓包。并使用b conn

查看连接。

2024年9月2日发(作者:荣以松)

TCPDUMP使用说明

tcpdump命令参数解释 ............................................................................. 1

Tcpdump使用案例说明:......................................................................... 2

TCPDUMP出现“truncated-ip - 1215 bytes missing!”错误 .......................... 3

TCPDUMP 命令中的-i参数用VLAN名称与接口编号有什么区别 ............. 3

TCPDUMP 命令中出现“pcap_loop: Error: Interface packet capture busy”错

误信息? ................................................................................................. 5

tcpdump命令参数解释

TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网

络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉

无用的信息。

数据过滤

不带任何参数的TcpDump将搜索系统中所有的网络接口,并显示它截获的所有数

据,这些数据对我们不一定全都需要,而且数据太多不利于分析。所以,我们应当先想好

需要哪些数据,TcpDump提供以下参数供我们选择数据:

参数 描述 实例

-i 只过滤指定的接口上通过tcpdump -i eth0

的数据

-i 只过滤指定的vlan上通过tcpdump -i external

的数据

-e 显示MAC地址 Tcpdump -e

-n

不进行IP地址到主机名的

Tcpdump -n

注:在bigip v9中,需要

转换。

使用-nn

-X Display packets in hex Tcpdump –x

and decondes in ASCII

可以看到一些访问的请求

信息

-s 显示指定的字节数.默认为Tcpdump –s 1600

76字节.实际使用时,建议

用-s 1600,这样可以保证

抓取完整的数据包

-w 将输出内容保存在指二进Tcpdump –w chen

制文件定中

-r 查看指定的二进制文件 tcpdump -r chen

> 将输出内容保存在指定文Tcpdump –n >chen

件中,非二进制文件

host 过滤指定的主机.只显示过Tcpdump host 192.168.1.1

滤的内容.包括访问与应

答。

过滤指定的协议 tcpdump -i exp1 udp

ICMP,UDP,ARP,etc.

port 过滤指定的端口 tcpdump -i exp1 80

条件1 and 条件2 tcpdump -i exp1 host

61.55.138.133 and udp

条件1 or 条件2 tcpdump -i exp1 host

61.55.138.133 or udp

条件1 not 条件2 所有满足指定条件1并且

tcpdump -i exp1 host

61.55.138.133 not udp

除条件2的数据。

src

dst

过滤指定的来源地址.只显

示访问IP的请求包,不再

显示F5返回的包

过滤指定的目标地址.只显

示F5返回的包,不再显示

访问IP的请求包。

tcpdump -i exp1 src

61.55.138.133 or udp

注:tcpdump命令只针对经过CPU处理的数据包进行捕获,一但在BIGIP中的

某个VIP采用的是performance L4的方式,数据包则由四层加层ASIC芯片处理而没

有流经CPU,无法捕获数据。解决该问题的方法是:选取该Virtual Server将type由

Performance Layer4临时改为Standard再来用TCPDUMP命令抓包,抓包以后,改

回到Performance Layer4。

Tcpdump使用案例说明:

举例1:对external接口主机139.212.96.2并且端口为1433的流量进行监控。

端口不指定tcp和udp,默认为同时对tcp和udp进行报文捕获。本命令不解析IP地

址/端口号为主机名/服务名称,同时显示报文十二进制和文本信息,报文最大为1500

字节。

f5-1:~# tcpdump -i external -nn -X -s 1600 port 1433 and

host 139.212.96.2

tcpdump: listening on external

21:48:41.295546 139.212.96.2.1201 > 10.75.9.44.1433: .

302192826:302192827(1) ac

k 558871968 win 64360 (DF)

0x0000 012c 0800 4500 0029 38cf 4000 7f06

c3b2 .,..E..)8.@.....

0x0010 8bd4 6002 0a4b 092c 04b1 0599 1203

18ba ..`..K.,........

0x0020 214f b5a0 5010 fb68 a926 0000

00 !O..P..h.&...

21:48:41.296015 10.75.9.44.1433 > 139.212.96.2.1201: . ack

1 win 64636 (DF)

0x0000 012c 0800 4500 0028 cb2d 4000 7f06

3155 .,..E..(.-@...1U

0x0010 0a4b 092c 8bd4 6002 0599 04b1 214f

b5a0 .K.,..`.....!O..

0x0020 1203 18bb 5010 fc7c a812 0000 0000

0000 ....P..|........

0x0030 0000 ..

21:48:50.701130 139.212.96.2.1206 > 10.75.9.44.1433: .

304974934:304974935(1) ac

k 565108263 win 64882 (DF)

0x0000 012c 0800 4500 0029 38f7 4000 7f06

c38a .,..E..)8.@.....

0x0010 8bd4 6002 0a4b 092c 04b6 0599 122d

8c56 ..`..K.,.....-.V

0x0020 21ae de27 5010 fd72 0a6b 0000

00 !..'P..

21:48:50.702567 10.75.9.44.1433 > 139.212.96.2.1206: . ack

1 win 65267 (DF)

0x0000 012c 0800 4500 0028 d3a6 4000 7f06

28dc .,..E..(..@...(.

0x0010 0a4b 092c 8bd4 6002 0599 04b6 21ae

de27 .K.,..`.....!..'

0x0020 122d 8c57 5010 fef3 08ea 0000 0000 0000 .-

.WP...........

0x0030 0000 ..

举例2:对internal接口主机172.31.230.53和172.31.230.51之间端口8080的

流量进行分组捕获。本命令不解析IP地址/端口号为主机名/服务名称,报文最大为

1600字节,捕获信息以“/var/tmp/intdump”文件保存:

tcpdump -s 1600 -i internal -w /var/tmp/intdump host 172.31.230.53 and host

172.31.230.51 and port 8080

如果查看该捕获文件,请用tcpdump –r /var/tmp/intdump命令。也可以将捕获

的文件下载下来用Ethereal工具解包分析。

TCPDUMP出现“truncated-ip - 1215 bytes missing!”错误

在BIG-IP V9里面出现”Truncated-IP xxxx bytes missing”信息,一般来说并不是

网络上有丢包引起的,而是在执行TCPDUMP命令时没有加上 –s0或-s1600参数

时,而数据包大小超过TCPDUMP缺省的抓包大小(如果不加-s0或-s1600参数,则

缺省的每个数据包只抓前面400byes),就会出现truncated-ip的情况。出现这种情

况,只需要重新输入tcpdump命令,加上-s0或-s1600即可。

TCPDUMP 命令中的-i参数用VLAN名称与接口编号有什么区别

(如external或internal)与接口编号(1.1或2.1)有什么区别?

如果采用VLAN名称作为-i的参数,TCPDUMP收集的数据包是经由内部接口到

达TMM进程经由中央CPU处理的数据包。

采用VLAN名称作为-i参数的局限性在于,由于PVA四层加速芯片时位于BIG-

IP的交换板(Swithboard)上,并不需要经由主机板与交换机板的内部接口到达中央

CPU,因此TCPDUMP无法抓取这些四层加速的数据包。

因此采用VLAN名称作为-i的参数一般是用于对采用Standard作为Virtual

Server类型的应用抓包时采用。

注:如果Virtual Server是用PVA四层加速芯片作加速处理,则在Virtual

Server的属性中PVA Acceleration显示为Full。

(The PVA handles accelerated traffic in the following order:

The PVA receives accelerated traffic from the switch

subsystem

The PVA transforms the packet in order to redirect the

packet to the appropriate pool member

The PVA sends the packet back to the switch subsystem

Fully accelerated traffic never reaches the internal trunk

and is not processed by TMM. )

如果采用接口编号作为-i的参数,则进出该接口的数据包将先被镜像给

SCCP(SCCP是BIG-IP的管理子系统),然后送到主机板上通过TCPDUMP抓包。由

于是直接镜像了端口,因此经由四层加速芯处理的数据包也能被TCPDUMP获取。

采用接口编号作为-i的参数的局限性在于,由于数据包是经由SCCP(管理子系

统)转发给主机板,数据包的处理速度有限,每秒只能处理200个数据包。因此采用

接口编号作为-i的参数一般是用于做基本网络故障诊断时。

(When tcpdump is run on an interface, the packet is copied on switch

ingress to the SCCP, which then sends it to the host to be captured by

tcpdump.

Limitations

Running tcpdump on a switch interface is rate-limited to 200 packets

per second. Therefore, if you run tcpdump on an interface that is

processing more than 200 packets per second, the captured tcpdump file

will not include all of the packets.

For example, the following command will capture PVA accelerated traffic,

but the syntax will result in a rate limit of 200 packets per second。)

注:对于采用了PVA四层加速芯片加速处理的Virtual,而且网络流量又

比较大时,如果需要进行抓包分析,建议在上一级交换机作端口镜像,将网络

流量输出到外部的抓包主机上处理。

TCPDUMP 命令中出现“pcap_loop: Error: Interface packet

capture busy”错误信息?

同时执行多个TCPDUMP,出现“pcap_loop: Error: Interface packet capture

busy”错误,例如:

[root@bigip1:Active] config # tcpdump: listening on 1.1

[root@bigip1:Active] config # tcpdump -ni 1.3 -s 1600 -X -

w/var/tmp/ port 22 &

[3] 6813

tcpdump: listening on 1.3

[root@bigip1:Active] config # tcpdump -ni 1.4 -s 1600 -X -

w/var/tmp/ port 22 &

[4] 6820

tcpdump: listening on 1.4

[root@bigip1:Active] config # tcpdump: pcap_loop: Error:

Interface packet capture busy

tcpdump: pcap_loop: Error: Interface packet capture busy

这种情况一般只发生在TCPDUMP -i参数采用接口编号时。原因主要在于当采用

接口编号作为-i参数时,是通过BIG-IP的二层芯片将该接口的数据包镜像到中央

CPU作处理。而BIG-IP的二层芯片的接口镜像功能不支持多个接口同时镜像,因此

如果同时执行多个用接口名称作-i参数的TCPDUMP命令,就会出现Interface

packet capture busy的信息。

注:对于采用VLAN名称作为TCPDUMP –i参数,则不存在这个问题,

可以支持对多个VLAN同时执行TCPDUMP抓包命令。

(Currently only one tcpdump session is possible at a time on a switch interface

(tcpdump on vlan alllows multiple sessons). This is due to a limitation of the

Broadcom SDK, but we may be able to extend the SDK to support multiple sessions.

The root difficulty here is that mirrored packets don't carry a note saying "this is

where I came from." In a Broadcom switch fabric we can mirror from multiple ports,

and all the packets will funnel to the host -- but we don't know which tcpdump session

to route them to. One idea involves a layer 2 lookup on each packet performed by the

bcm56xx daemon on the sccp. This would be intense so we continue to have this

limitation.)

F5总部建议抓包使用的参数:

Tcpdump –ni -s 1600 –w /var/tmp/

抓包时建议在client端,Bigip的进出两端,server端同时抓包。并使用b conn

查看连接。

发布评论

评论列表 (0)

  1. 暂无评论