
F5负载均衡器用tcpdump命令抓包的方法.docx
5页F5负载均衡器用tcpdump命令的抓包方法作者:邹善部门:业务与软件技术服务器支撑技术团队参考文档:VVF5负载均衡器配置指导书>> 林浩泓本文简单介绍在F5负载均衡器上用tcpdump命令进行抓包的方法,希望能对调试F5负载 均衡器时有所帮助决务黔2用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 ] [ -rfile ][-s snaplen ] [ -T type ] [ -wfile ][-E algo:secret ] [ expression ]其中:> -e在输出行打印出数据链路层的头部信息> -i报文捕获监听的接口,如果不指定,默认为系统最小编号的接口(不包括loop-bac 接口)-n不将I哋址或端□号转化为域名或协议名称-r从文件中读取(该文件由-w选项创建)-s确定捕获报文大小-w直接将捕获报文写入文件,而不是对其进行解析并通过屏幕显示(与选项对 应)-X每个报文以十六进制方式显示-X每个报文同时以文本和十六进制显示expression匹配表达式的分组将进行解析。
如果不指定表达式,系统对所有分组 进行捕获分析复杂表达式可以使用“and”与、“or”或以及“not”^非操作进行 组合表达式有三种:type 三种种类:host、net和port比如:host 10.1.1. 1如果不指定类型, 默认为hostdir 有src, dst、 src or d$tsrc and d四种方向默认为src or dst即双向proto 常见协议有:ip. arp、tcp, udp、icmp等如果不指定协议类型,默认为所有协议2在F5上用tcpdump抓包示例陆-k捕 方■掀赫 伟巒杓闕聲 带芻鮮1:10.0.0.196/26以上图数据流为例,在F5上可以用t cpdump命令分别定位的数据流有没有到达F5负 载均衡器、F5负载均衡器是否把收到的数据包发真实的服务器上及真实服务器有没有把数 据返回给F5上图中,的IP地址为10.139.0.0/16, F5上的做的VIP为10.0.0.174:9201,后台的真实 IP地址为:10.0.0.196/26F5上有两个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/16tcpdump: listening on 2.122:26:54.032326 10.139.110.6.49153 > 10.0.0.174.9201: udp 23522:26:54.046591 10.139.110.6.49153 > 10.0.0.174.9201: udp 422:26:54.273444 10.139.110.6.49153 > 10.0.0.174.9201: udp 23522: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.922:31:19.57561810.139.110.6.49153 > 10.0.0.196. 9201: udp 23722:31:20.989582 10.139.110.6.49153 > 10.0.0.196.9201: udp 322:31:27.854904 10.139.110.6.49153 > 10.0.0.196.9201: udp 23722:31:29.271142 10.139.110.6.49153 > 10.0.0.196.9201: udp 3从结果上看:10.139.110.6的数据包已离开F5,发到10.0.0.196上。
注意的是:此数据包 的源IP地址还是的地址结果从接服务器的接口上看不到离开F5的数据包,则需要检查 F5的配置有没有问题• 在F5上用tcpdump定位真实服务器的数据流有没有返回F5F5的port 1.9是连接真实服务器10.0.0.196的接口,可以在此接口上对源地址为 10.0.0.196 ,端口号为9201的数据进行抓包JSNJ-B-SW001-WAP:~# tcpdump -i 1.9 src 10.0.0.196 and port 9201 tcpdump: listening on 1.922:32:26.302664 10.0.0.196.9201 > 10.139.110.6.49153: udp 3 (DF)22:32:26.393834 10.0.0.196.9201 > 10.139.110.6.49153: udp 1403 (DF) 22:32:26.394014 10.0.0.196.9201 > 10.139.110.6.49153: udp 176 (DF) 22:32:27.273660 10.0.0.196.9201 > 10.139.110.6.49153: udp 1403 (DF) 22:32:28.672322 10.0.0.196.9201 > 10.139.110.6.49153: udp 4 (DF)22:32:29.832202 10.0.0.196.9201 > 10.139.110.6.49152: udp 4 (DF)如果没有抓到相应的数据包,则有可能是真实服务器没有把数据包发回到F5上,此时, 应当检查真实服务器配置,可以在真实服务器本地检查服务是否正常(如是IE应用在本地服 务器上用IE浏览则可)。
从以上抓到的数据包可以看出数据包的目的地址不是F5,而是的真实地址,所以 要注意检查真实服务器的网关有没有设置好,一般情况下真实服务器的网关要设置成F5 internal vlan的self IP或share IP(双机情况)现场已碰到很多因为没有设置真实服务器网关而 造成访问不通的情况• 在F5上用tcpdump定位F5有没有把数据流返回到上:在F5上对port 2.1目的地址为10.139.0.0/16的网段抓包:JSNJ-B-SW001-WAP:~# tcpdump -i 2.1 dst net 10.139.0.0/16tcpdump: listening on 2.112:25:24.899435 10.0.0.174.9201 > 10.139.110.6.8502: udp 3 (DF)12:25:25.170922 10.0.0.174.9201 > 10.139.110.6.8502: udp 1569 (frag 60525:1480@0+)12:25:25.170933 10.0.0.174 > 10.139.110.6: (frag 60525:97@1480)12:25:27.479392 10.0.0.174.9201 > 10.139.110.6.8502: udp 3 (DF)12:25:28.520496 10.0.0.174.9201 > 10.139.110.6.8502: udp 1290 (DF)如果F5没有把数据包发送到外网去,贝y要检查F5的配置,同时也要非常注意F5有没有到外网的路由。
检查F5到外网的路由可以在F5上用netstat r*n命令查看:JSNJ-B-SW001-WAP:~# netstat -rnRouting tablesInternet:Destination GatewayFlagsMTU Ifdefault 10.0.0.140UGS1500 vlan010.0.0.128/26 link#29UC1500 vlan010.0.0.131 0.1.d7.23.21.b1UHLc1500 lo010.0.0.140 0.10.db.ff.20.70UHLc1500 vlan0查看是否有default的路由如果没有default路由,则需要至0F5上用config进入配置菜单,配置 gateway。
