F5 LTM ping 数据包丢包解决过程
一. 验证确实是 F5 LTM 丢包
用户在交换机上 ping 了 1000 个包,我想知道这 1000 个包是否都到达了我们的 F5 LTM,而且我们的 F5 是否都回包了,也就是想证明到底是我们的 F5 丢包还是其他网络设备丢包:
1) 抓包并保存到文件 a.txt:
[root@standby:Active] config # tcpdump -i internal host x.x.x.x and icmp > a.txt
2) 计算抓到的 PING 数据包中,请求包是多少个:
[root@standby:Active] config # cat a.txt | grep request | wc -l
1000
3) 计算抓到的 PING 数据包中,响应包是多少个:
[root@standby:Active] config # cat a.txt | grep reply | wc -l
947
4) 结论:确实是我们的 F5 LTM 丢包。
5) 查看日志,进一步确认 F5 为啥丢弃 ICMP 包:
# grep -i icmp /var/log/ltm
.......
Jun 3 10:02:29 tmm tmm[706]: 011e0001:4: Limiting icmp ping
response from 306 to 250 packets/sec
Jun 3 10:02:30 tmm tmm[706]: 011e0001:4: Limiting icmp ping
response from 378 to 250 packets/sec
Jun 3 10:02:32 tmm tmm[706]: 011e0001:4: Limiting icmp ping
response from 460 to 250 packets/sec
Jun 3 10:02:33 tmm tmm[706]: 011e0001:4: Limiting icmp ping
response from 459 to 250 packets/sec
Jun 3 10:02:34 tmm tmm[706]: 011e0001:4: Limiting icmp ping
response from 319 to 250 packets/sec
Jun 3 10:02:36 tmm tmm[706]: 011e0001:4: Limiting icmp ping
response from 425 to 250 packets/sec
Jun 3 10:02:37 tmm tmm[706]: 011e0001:4: Limiting icmp ping
response from 384 to 250 packets/sec
Jun 3 10:02:38 tmm tmm[706]: 011e0001:4: Limiting icmp ping
response from 516 to 250 packets/sec
Jun 3 10:02:39 tmm tmm[706]: 011e0001:4: Limiting icmp ping
response from 495 to 250 packets/sec
Jun 3 10:02:41 tmm tmm[706]: 011e0001:4: Limiting icmp ping
response from 439 to 250 packets/sec
Jun 3 10:02:43 tmm tmm[706]: 011e0001:4: Limiting icmp ping
response from 401 to 250 packets/sec
......
可以看出,由于 F5 LTM 默认每秒钟只处理 250 个 ICMP 包,超过的 ICMP
包将被丢弃。
6) 修改这个默认值,解决问题:
[root@standby:Active] log # b db | grep Reject ;查看当前值
二. 修改控制 F5 LTM 每秒最多处理多少 ICMP 包的参数
[root@standby:Active] log # b db TM.MaxRejectRate 1000 ;修改
[root@standby:Active] log # b db | grep Reject ;查看修改是否生效
7) 查看 /config/BigDB.conf 文件,确认其 TM.MaxRejectRate 值已经修改为 1000 了。
三. 验证问题是否确实已经解决
让客户管理员再次从交换机 ping F5 LTM 的 虚拟服务器 IP,问题解决了。
四. 相关 Linux 命令介绍
8) 几个 Linux 命令介绍:
tcpdump -i <指定抓取达到或者通过哪个接口的数据包,一般指定 VLAN 接口> \
host <指定抓取的数据包源地址或者目标地址> \
and ; icmp 指定只抓取 ICMP 数据包
cat <希望查看其内容的文件名> ;一下子显示一个文件的内容
less, more <希望查看其内容的文件名> ;逐屏显示一个文件的内容
grep -i <字符串> <文件名> ;显示 文件 里面包含了 字符串 的那些行
; -i 表示忽略大小写
wc -l <希望计算其行数的文件名> ;显示一个文件的行数
本文转自zkjian517 51CTO博客,原文链接:http://blog.51cto.com/zoukejian/80837