F5负载均衡器用tcpdump命令抓包的方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

F5负载均衡器用tcpdump命令的抓包方法作者:邹善

部门:业务与软件技术服务器支撑技术团队

参考文档:<> 林浩泓

本文简单介绍在F5负载均衡器上用tcpdump命令进行抓包的方法,希望能对调试F5负载均衡器时有所帮助。

用tcpdump命令可以观察到从client端发出来的数据包有没有到F5负载均衡器,F5负载均衡器有没有把收到的数据包按设置发送出去,F5负载均衡器有没有收到后面真实服务器发过来的数据包。Tcpdump命令可以对从client端到F5再到真实服务器的数据流进行跟踪。

Tcpdump命令是F5本身自带的命令,不需要额外安装其他软件包。

1 Tcpdump命令

本文讲述TCPDUMP命令的基本用法,更详细的使用说明请参见“man tcpdump”。

命令语法:

tcpdump [ -adeflnNOpqRStvxX ] [ -c count ] [ -F file ]

[ -i interface ] [ -m module ] [ -r file ]

[ -s snaplen ] [ -T type ] [ -w file ]

[ -E algo:secret ] [ expression ]

其中:

➢-e在输出行打印出数据链路层的头部信息

➢-i报文捕获监听的接口,如果不指定,默认为系统最小编号的接口(不包括

loop-back接口)

➢-n不将IP地址或端口号转化为域名或协议名称

➢-r从文件中读取(该文件由-w选项创建)

➢-s确定捕获报文大小

➢-w直接将捕获报文写入文件,而不是对其进行解析并通过屏幕显示(与-r选项对应)

➢-x每个报文以十六进制方式显示

➢-X每个报文同时以文本和十六进制显示

➢expression匹配表达式的分组将进行解析。如果不指定表达式,系统对所有分组进行捕获分析。复杂表达式可以使用“and”与、“or”或以及“not”非操作进行

组合。表达式有三种:

✓type三种种类:host、net和port。比如:host 10.1.1.1。如果不指定类型,默认为host。

✓dir有src、dst、src or dst和src and dst四种方向。默认为src or dst,即双向。

proto常见协议有:ip、arp、tcp、udp、icmp等。如果不指定协议类型,默认

为所有协议。

2 在F5上用tcpdump抓包示例

以上图数据流为例,在F5上可以用tcpdump命令分别定位手机的数据流有没有到达F5负

载均衡器、F5负载均衡器是否把收到的数据包发真实的服务器上及真实服务器有没有把数据返回给F5。

上图中,手机的IP地址为10.139.0.0/16,F5上的做的VIP为10.0.0.174:9201,后台的真实IP地址为:10.0.0.196/26。F5上有两个vlan,一个为external vlan,用于接F5的外网,另一个为internal vlan,用于接F5的内网,在本例中,port 2.1接外网,port 1.9接真实服务器。

注意:在采用F5的双机时,要在数据流流经的F5上进行抓包,如果在数据流不经过的F5上抓包,是抓不到数据包的。

●在F5上用tcpdump定位手机的数据流有没有到达F5:

因手机过来的地址是不定的,只是限定在一个地址池:10.139.0.0/16中,所以在F5上可以采用对源地址为10.139.0.0/16 (src net 10.139.0.0/16)进行抓包;F5是在通过port 2.1与外网相连,所以可以对interface 2.1进行抓包,所以抓包语句可写为如下:

JSNJ-B-SW001-WAP:~# tcpdump -i 2.1 src net 10.139.0.0/16

tcpdump: listening on 2.1

22:26:54.032326 10.139.110.6.49153 > 10.0.0.174.9201: udp 235

22:26:54.046591 10.139.110.6.49153 > 10.0.0.174.9201: udp 4

22:26:54.273444 10.139.110.6.49153 > 10.0.0.174.9201: udp 235

22:26:55.626692 10.139.110.6.49153 > 10.0.0.174.9201: udp 3

从以上抓到的包看,10.139.110.6已经把数据包送到VIP:10.0.0.174:9201上来。前面22:26:54.032326是时间标记。如果在外连接口上抓不到数据,则要检查从手机到F5之间的路由是否可达了。

●在F5上用tcpdump定位手机的数据流有没有从F5上发向真实的服务器

(10.0.0.196)

F5的port 1.9是连接真实服务器10.0.0.196的接口,可以在此接口上对目的地址为

10.0.0.196 ,端口号为9201的数据进行抓包。

JSNJ-B-SW001-WAP:~# tcpdump -i 1.9 dst 10.0.0.196 and port 9201

tcpdump: listening on 1.9

22:31:19.575618 10.139.110.6.49153 > 10.0.0.196.9201: udp 237

22:31:20.989582 10.139.110.6.49153 > 10.0.0.196.9201: udp 3

相关文档
最新文档