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 | port <指定抓取数据包的端口号> ; icmp 指定只抓取 ICMP 数据包 cat <但愿查看其内容的文件名> ;一会儿显示一个文件的内容 less, more <但愿查看其内容的文件名> ;逐屏显示一个文件的内容 grep -i <字符串> <文件名> ;显示 文件 里面包含了 字符串 的那些行 ; -i 表示忽略大小写 wc -l <但愿计算其行数的文件名> ;显示一个文件的行数