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 <但願計算其行數的文件名> ;顯示一個文件的行數