一台 P4 品牌電腦 (內建 Intel 網卡) 內網通訊正常,但訪問外網時 時通時斷、ping 外網丟包。經過物理鏈路排查、模擬封包轉發流程分析、防火牆 ARP 表檢查,最終發現:防火牆靜態 ARP 綁定佔滿 128 條表項上限,導致動態條目無法寫入,引發間歇性通訊中斷。本文完整還原排查思路與核心原理。
故障現象與環境
- 客戶端 IP:
192.168.24.55,預設閘道:Cisco 三層交換機 192.168.24.10,外網出口:Netscreen NS-25 防火牆 192.168.24.7。
- 內網通訊 (ping 內網、檔案傳輸) 完全正常。
- 訪問外網:ping 外網 IP 間歇丟包、瀏覽網頁時通時斷。
- 其他電腦訪問外網正常 (或僅有極短暫不感知斷線)。
排查過程三部曲
1. 物理層排除
- 網卡、網線、交換機埠位、防火牆介面均測試正常。
- 其他電腦無異常,排除共享基礎設施故障。
2. 封包轉發流程模擬 (關鍵思維訓練)
客戶端發送外網封包流程:
- 判斷目標非本網段 → 送預設閘道 (三層交換機 192.168.24.10)。
- 查 ARP 表找閘道 MAC,無則發 ARP Request 廣播。
- 三層交換機回應 ARP Reply,客戶端寫入 ARP 表,封裝 MAC 發送。
- 三層交換機收到封包,查路由表發現目標非直連,送其預設路由 (防火牆 192.168.24.7)。
- 三層交換機 ARP 解析防火牆 MAC,封裝轉發至防火牆 → 外網。
- 回包路徑對稱:防火牆 → 三層交換機 → 客戶端。
邏輯上無問題,tracert 正常,ARP 表項存在。問題必在動態過程中。
3. 防火牆 ARP 表深度檢查 — 破案關鍵
Telnet 登入 Netscreen NS-25,執行 get arp:
- 顯示 127 條靜態綁定 (IP-MAC 硬綁定,防止 IP 盜用)。
- 僅 1 條動態條目:防火牆下一跳 (上游路由器) MAC。
- NS-25 ARP 表上限 128 條,靜態佔滿 127,動態僅剩 1 格。
故障機制重現:
- 動態條目 (下一跳 MAC) 老化超時被刪除 → 釋出 1 個空位。
- 客戶端 192.168.24.55 發送外網封包,防火牆需 ARP 解析該 IP → 寫入動態條目 → 網路通。
- 其他電腦持續訪問外網,防火牆需解析下一跳 MAC → 重新佔用唯一動態位 → 客戶端 ARP 條目被擠出/超時 → 網路斷。
- 循環往複,表現為「時通時斷」,且該客戶端斷線時間較長 (因下一跳 MAC 佔用時間長)。
解決與驗證
unset arp [靜態綁定條目] // 批次刪除 6 條不再需要的靜態綁定
刪除後 ping 外網零丟包,同事實測 QQ、瀏覽、收發郵件全正常。再次 get arp 見 192.168.24.55 動態條目穩定存在。
核心教訓與最佳實務
- 靜態 ARP 綁定不可濫用: 會永久佔用有限表項,擠壓動態學習空間。大型網路應改用 DHCP Snooping + DAI + IP Source Guard 動態綁定機制。
- ARP 表容量規劃: 選型防火牆/三層交換機時,必須確認 ARP/NDP 表容量滿足「靜態保留 + 動態學習峰值 + 成長紅利」。
- 監控指標: 納入 ARP 表使用率告警 (如 >80% 觸發),避免滿表導致業務中斷。
- 排查心法: 「通的時候抓封包、斷的時候看表項」,動態故障必須在故障瞬間捕獲狀態,事後分析易失真。
這個案例堪稱 ARP 故障排查教科書級範例:從現象 → 封包流程建模 → 關鍵設備資源耗盡定位 → 精準手術式修復。網管功力在此一戰見真章。