一、學習目標
理解網路環路發生的原因、症狀和對網路的影響。
理解STP (Spanning Tree Protocol) 的基本概念,以及如何利用其日誌來診斷環路問題。
二、什麼是網路環路?為什麼它如此危險?
網路環路(Network Loop)是指在一個乙太網路區域中,數據包可以從多個路徑到達目的地。
這看似提供了冗餘,但在沒有適當控制的情況下,會導致災難性後果:
廣播風暴 (Broadcast Storm):網路中的廣播幀(Broadcast Frame)會無限地在環路中傳送,快速消耗掉所有頻寬,導致網路癱瘓。
MAC 地址表不穩定 (MAC Address Table Instability):交換機看到同一個 MAC 地址從不同的埠口出現,會不斷更新其 MAC 地址表,導致流量被錯誤地轉發。
多幀複製 (Duplicate Frames):主機可能會收到重複的數據包,影響應用程式。
三、從交換機日誌識別環路現象
當網路發生環路時,交換機日誌會立即反映出異常。以下是幾個關鍵的日誌訊息範例:
Syslog 訊息範例 | 故障級別 | 故障類型 | 日誌線索與判斷 |
---|---|---|---|
%SW_MATM-4-MACFLAP_NOTIF: Host <MAC_Address> in vlan <VLAN_ID> is flapping between port <Port_A> and port <Port_B> | Warning (警告) | MAC 地址震盪 (MAC Flapping) | 最直接的環路證據。表示同一個設備的 MAC 地址在兩個不同的交換埠口間快速移動,這是環路導致 MAC 表混亂的典型表現。 |
%STP-2-BPDU_GUARD_BLOCK: ... on GigabitEthernetX/Y. Disabling port. | Error (錯誤) | STP BPDU Guard 阻擋 | 接入層埠口收到不應該收到的 BPDU 協定數據包,被判定為潛在環路或 STP 配置錯誤,埠口自動關閉。 |
%ETHPORT-5-IF_DOWN_ERROR_DISABLED: Interface GigabitEthernetX/Y is down (Error disabled. Cause: bpduguard) | Error (錯誤) | 埠口錯誤禁用 | 緊接在 BPDU_GUARD_BLOCK 之後出現,表示埠口因安全機制觸發而關閉。 |
%CPU-5-CPU_UTILIZATION: CPU utilization for five seconds: 99% / 98%; one minute: 95%; five minutes: 90% | Notice (通知) | CPU 使用率飆高 | 環路導致大量數據包被處理,交換機 CPU 可能會異常飆高。 |
四、利用 STP (Spanning Tree Protocol) 診斷與預防
STP 是乙太網路中用來預防環路的關鍵協議。它會在邏輯上阻斷冗餘路徑,確保網路中只有單一最佳路徑。
STP 狀態轉換日誌:
%SPANTREE-5-TOPOLOGYCHANGE: Topology Change trap for vlan <VLAN_ID>
線索: 大量或頻繁的 TOPOLOGYCHANGE 訊息表示網路拓撲不穩定,可能是環路前兆或正在恢復。
STP 埠口角色日誌:
%SPANTREE-2-BLOCK_PORT_TYPE_INCONSISTENT: Port GigabitEthernetX/Y is blocked due to inconsistent port type.
線索: 表示 STP 檢測到埠口角色(如 Root Port, Designated Port)異常,進而阻斷。
STP BPDU (Bridge Protocol Data Unit):這些是 STP 協議用來溝通和檢測環路的心跳包。
五、行動建議
識別並關閉環路來源:一旦在日誌中發現 MAC Flapping 或 BPDU Guard 阻擋,應立即定位並關閉發生問題的埠口。
檢查 STP 配置:確認所有交換機上的 STP 都已正確啟用,Root Bridge 選舉正常,並且適當配置了 BPDU Guard、Portfast 等功能以防止意外環路。