本文說明如何排除MAC地址擺動通知錯誤。
交換器偵測到網路上有 MAC 位址翻動事件時,會產生這則通知訊息。
當交換機在短時間內獲悉同一個MAC地址源並且位於同一個VLAN中的兩個不同介面上時,將檢測到MAC地址擺動事件。
當在多個交換機埠上檢測到相同的MAC地址時,Cisco Catalyst交換機會發出通知,從而導致交換機不斷更改與MAC地址關聯的埠。通過此系統日誌的此警報包含主機的MAC地址、VLAN以及正在擺動的MAC地址之間的埠。鑑於此行為可能是由於多種原因造成的,因此確定MAC地址擺動的根本原因對於確保網路的穩定性和效能至關重要。
SW_MATM-4-MACFLAP_NOTIF
Example: Apr 26 12:27:55 Switch-1 %SW_MATM-4-MACFLAP_NOTIF: Host **0011.2233.4455** in vlan **10** is flapping between port **Gi1/0/10** and port **Po1**.
檢查這些消息,確定MAC地址移動是由預期的漫遊行為、冗餘系統MAC移動、EtherChannel不一致還是第2層轉發環路造成的。
導致此錯誤的原因可能有多種,有些可能表明存在嚴重的網路問題。
常見原因包括:
無線用戶端移動通常在預期中,且通常可以安全地忽略,前提是沒有觀察到對服務造成影響。若用戶端在未使用 CAPWAP 回到無線控制器的 AP 之間漫遊,或在兩個不同的無線控制器控制的 AP 之間漫遊,可能會產生此記錄。相同 MAC 位址所生成的記錄,相隔的時間可能是幾秒鐘或幾分鐘。如果您看到單個MAC地址每秒鐘移動多次,則可能表明存在更嚴重的問題,並且可能需要進行其他故障排除。
一些在作用中/待命狀態運行的備援系統或裝置可以共享一個共同的虛擬 IP 和 MAC 位址,並且任何時候都只有作用中的裝置會使用。如果兩台裝置都意外地變為作用中狀態,並且都開始使用虛擬位址,就可能會出現這個錯誤。使用日誌中提到的介面並運行show mac address-table address <mac-address> vlan <vlan-id>命令,通過網路跟蹤此MAC地址的路徑,以確定當前獲取MAC地址的位置以及哪些裝置正在從共用MAC地址生成流量。記錄系統日誌消息中報告的MAC地址、VLAN和介面,然後在路徑中的每台交換機上運行命令。使用CDP、LLDP、介面描述或網路圖來標識下一個連線的裝置,並繼續跟蹤MAC地址,直到確定源裝置。根據生成MAC地址移動的裝置,可能需要對其冗餘狀態進行其他故障排除。
MAC地址擺動通知的常見原因是EtherChannel或Port-Channel配置錯誤。如果交換器報告在預期為EtherChannel成員的實體連結之間重複移動的MAC位址,強烈表示兩端的EtherChannel未成功建立或形成不一致。在這種情況下,一台裝置可以將介面視為獨立的物理鏈路,而另一端的裝置則通過它們將流量作為單個邏輯捆綁轉發。
例如,如果一台交換機配置為使用LACP,而對等交換機配置為靜態EtherChannel模式,或者如果LACP協商由於其他原因失敗,則可能會發生這種情況。在Cisco IOS或Cisco IOS XE Catalyst交換機上,當LACP協商失敗時,介面不會形成port-channel。根據平台、軟體版本和配置的不同,非捆綁介面可以保持作為單個介面的運行狀態,也可以置於掛起狀態。如果多個獨立鏈路仍保持轉發狀態,交換機可以在不同的埠上持續重新獲取相同的源MAC地址並生成MAC擺動通知。
連線兩端之間的EtherChannel配置不一致時,也會發生MAC擺動事件。同一MAC地址可能會在物理介面和邏輯埠通道介面之間移動,也可能會在預期捆綁但配置不一致的鏈路之間移動。對此情況進行故障排除時,請檢驗兩台裝置的EtherChannel設定是否匹配,包括繫結模式,如LACP、PAgP或靜態模式。分配給埠通道的相應成員鏈路、一致的第2層引數(如中繼或接入模式)、VLAN成員資格、本地VLAN和允許的VLAN清單。如果EtherChannel不一致是根本原因,則確保正確協商EtherChannel且兩端具有匹配的EtherChannel和第2層配置可以消除這些MAC地址擺動事件。
第2層環路通常會在短時間內生成重複的MAC地址移動消息,通常伴隨著高輸入資料包速率、協定不穩定性和使用者流量影響。日誌通常可以針對單個或少量MAC地址,並且使用者可能會受到網路影響。路由和第 2 層協定可能經常失敗,導致生成額外的記錄並引起一般的不穩定性。
要排除L2環路故障,請運行show interface | include is up|input rate命令,並注意所有顯示每秒輸入資料包數量非常大的活動介面(通常情況下,根據介面的速度,這可能是6、7或8位以上的大數字)。
可能只有 1 或 2 個介面顯示異常高的輸入速率。在跟**環路路徑時**使用IP輸入資料包速率作為主資料點。在驗證期間,使用生成樹拓撲更改(TCN)、根網橋狀態、阻塞埠和不一致的埠作為支援資料。識別高輸入介面後,使用CDP、LLDP或您的介面說明/網路圖登入到連線到該埠的相鄰裝置,並運行show interface | include is up|input rate命令再次執行,並重複對輸入速率異常的介面進行追蹤的過程。透過網路追蹤連接埠和主機名稱時,將它們記錄下來。
繼續檢查鄰居並檢視輸入速率,直到輸入埠用完,並且鄰居用完或最後返回到已檢查的裝置上。
在這種方法中,可能會發生兩種結果之一:
命令語法因平台和軟體版本而異。在Cisco IOS XE上,運行show mac address-table命令。某些舊版平台運行show mac-address-table語法。
| 指令 |
目的 |
|---|---|
| 顯示版本 |
確定平台、軟體版本和正常運行時間。 |
| show logging |
檢視MAC擺動消息和相關協定事件。 |
| show spanning-tree |
檢驗根網橋、埠角色、埠狀態和拓撲更改。 |
| show mac address-table address <mac-address> vlan <vlan-id> |
確定當前獲取MAC地址的位置。 |
| show interfaces |
Include is up。 |
| show etherchannel summary |
驗證埠通道狀態和成員一致性。 |
| show cdp neighbors detail / show lldp neighbors detail |
識別連線到介面的相鄰裝置。 |
| 修訂 | 發佈日期 | 意見 |
|---|---|---|
3.0 |
07-Aug-2026
|
為了便於閱讀,更新了拼寫、語法,將水平線插入各個部分。 |
2.0 |
24-Apr-2025
|
重新認證。 |
1.0 |
25-Oct-2023
|
初始版本 |