簡介
本檔案介紹如何對Cisco Catalyst交換器上的MAC擺動/回圈進行疑難排解。
必要條件
需求
思科建議您瞭解基本交換概念,並瞭解生成樹通訊協定(STP)及其Cisco Catalyst交換器上的功能。
採用元件
本檔案中的資訊是根據所有版本的Cisco Catalyst交換器(本檔案不限於任何特定軟體或硬體版本)。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
本檔案將提供一個指南,其中列出用於疑難排解Cisco Catalyst交換器上的MAC翻動或回圈問題的系統方法。MAC擺動/環路是由交換機MAC地址表的不一致導致的網路中斷。本文檔不僅提供了識別和解決這些問題的步驟,而且包含用於更好理解的實際示例。
什麼是MAC擺動?
當交換器收到的MAC來源位址相同,但來自不同介面的訊框時,就會發生MAC翻動。這會導致交換器在連線埠之間翻動,並使用新介面更新其MAC位址表。這種情況會導致網路不穩定,並導致效能問題。
在Cisco交換機中,MAC抖動通常記錄為類似以下內容的消息:
"%SW_MATM-4-MACFLAP_NOTIF: Host xxxx.xxxx.xxxx in vlan x is flapping between port (1) and port (2)"
在本例中,MAC地址首先在介面埠(1)上獲知,然後在介面埠(2)上看到,從而導致MAC翻動xxxx.xxxx.xxxx
。
MAC抖動最常見的原因是網路中的第2層環路,通常是由於STP配置錯誤或冗餘鏈路問題。其他原因可能包括硬體故障、軟體錯誤,甚至包括MAC欺騙之類的安全問題。
對MAC翻頁進行故障排除通常涉及識別和解決網路中的任何環路、檢查裝置配置或更新裝置韌體/軟體。
一般疑難排解指南
- 注意MAC地址和介面:日誌消息提供正在擺動的MAC地址以及它正在擺動的介面。請注意這些資訊,因為它們有助於您的調查。
- 檢查受影響的介面:使用交換機的CLI檢查所涉及的介面。您可以使用命令
show interfaces
show mac address-table
檢視哪些裝置連線到介面以及獲取MAC地址的位置。
- 跟蹤擺動的MAC地址:MAC通過埠X和Y學習。一個埠將我們引向該MAC的插入位置,另一個則引向環路。選取連線埠,並在路徑中的每台第
show mac address-table
2層交換器上使用命令開始工作。
- 檢查物理環路:檢視網路拓撲以檢視是否存在任何物理環路。如果交換器之間有多條路徑,就可能會發生這種情況。如果找到回圈,則需要重新設定網路以移除回圈。
- 檢查STP:STP旨在通過阻塞某些路徑來防止網路中的環路。如果STP配置錯誤,它不會像必須的那樣防止環路。使用命令
show spanning-tree
檢查STP配置。此外,使用命令show spanning-tree detail | include ieee|occur|from|is
檢查拓撲更改通知(TCN)。
- 檢查重複的MAC地址:如果網路上的兩台裝置具有相同的MAC地址(主要見於高可用性(HA)設定和多個網路介面控制器或網絡卡(NIC)),則可能導致MAC抖動。使用
show mac address-table
命令可查詢網路上的重複MAC地址。
- 檢查有故障的硬體或電纜:有故障的網路電纜或硬體可能導致幀傳送到錯誤的介面,從而導致MAC抖動。檢查電纜的物理狀態,並考慮換出硬體,以檢視問題是否仍然存在。介面抖動也可能導致交換機上的MAC抖動。
- 檢查軟體錯誤:有時,MAC抖動可能是由網路裝置的軟體中的錯誤引起的。檢查Bug search工具。
Bug Search Tool:https://bst.cloudapps.cisco.com/bugsearch
Bug Search Tool說明:https://www.cisco.com/c/en/us/support/web/tools/bst/bsthelp/index.html#search
- 聯絡TAC支援:如果您已經嘗試了所有操作,但問題仍然存在,則是時候聯絡Cisco TAC支援了。它們可以提供進一步援助。
案例研究1
問題描述
eWLC控制器遇到與網關的連線丟失的情況,而丟包正在阻止AP加入控制器。
拓撲
![Case Study 1 Topology](/c/dam/en/us/support/docs/lan-switching/spanning-tree-protocol-stp-8021d/221722-troubleshoot-mac-flaps-loop-on-cisco-cat-00.png)
疑難排解步驟
在連線到eWLC的交換器(Switch1)上識別MAC抖動。
*Aug 5 05:52:50.750: %SW_MATM-4-MACFLAP_NOTIF: Host 0000.5e00.0101 in vlan 4 is flapping between port Gi1/0/11 and port Te1/1/2
*Aug 5 05:53:03.327: %SW_MATM-4-MACFLAP_NOTIF: Host 0000.5e00.0101 in vlan 4 is flapping between port Gi1/0/11 and port Te1/1/2
*Aug 5 05:53:21.466: %SW_MATM-4-MACFLAP_NOTIF: Host 0000.5e00.0101 in vlan 4 is flapping between port Gi1/0/11 and port Te1/1/2
MAC Learning:
輸入命令show mac address-table address
,檢查連線埠上學習的MAC位址。
Switch1#show mac address-table address 0000.5e00.0101
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
4 0000.5e00.0101 DYNAMIC Gi1/0/11
4 0000.5e00.0101 DYNAMIC Te1/1/2
連線埠Gi1/0/11和Te1/1/2的組態:
輸入命令show running-config interface
以檢查介面組態。
interface GigabitEthernet1/0/11
switchport trunk native vlan 4
switchport mode trunk
end
interface TenGigabitEthernet1/1/2
switchport mode trunk
end
連線埠Gi1/0/11和Te1/1/2的CDP鄰居:
輸入命令show cdp neighbors
以檢查已連線裝置的詳細資訊。
Switch1#show cdp neighbors gi1/0/11
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
D - Remote, C - CVTA, M - Two-port Mac Relay
Device ID Local Intrfce Holdtme Capability Platform Port ID
eWLC Gig 1/0/11 130 R T C9115AXI- Gig 0 < ----- eWLC Controller
Switch1#show cdp neighbors gi1/1/2
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
D - Remote, C - CVTA, M - Two-port Mac Relay
Device ID Local Intrfce Holdtme Capability Platform Port ID
Switch2
Ten 1/1/2 163 R S I C9500-16X Ten 1/0/3 < ----- Uplink Switch
Switch2上的MAC學習(上行鏈路交換機):
輸入命令show mac address-table address
,檢查連線埠上學習的MAC位址。
Switch2#show mac address-table address 0000.5E00.0101
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
4 0000.5e00.0101 STATIC Vl4 < ----- VRRP MAC of Vlan4
4 0000.5e00.0101 DYNAMIC Te1/0/13 < ----- Learning from Switch1 (eWLC connected Switch)
Switch2#show vrrp vlan 4
Vlan4 - Group 1 - Address-Family IPv4
State is MASTER
State duration 5 days 4 hours 22 mins
Virtual IP address is x.x.x.x
Virtual MAC address is 0000.5E00.0101 < ------ VRRP MAC of Vlan4
Advertisement interval is 1000 msec
根本原因
經驗證,交換器2和eWLC的虛擬路由器備援通訊協定(VRRP)ID相同,因此由VRRP產生相同的虛擬MAC。
解析
更改WLC上的VRRP例項後,問題得到解決,VRRP例項導致交換機上的重複MAC導致與網關的連線丟失和丟包,從而阻止AP加入控制器。
案例研究2
問題描述
有些伺服器無法訪問或遇到大量延遲/丟棄。
拓撲
![Case Study 2 Topology](/c/dam/en/us/support/docs/lan-switching/spanning-tree-protocol-stp-8021d/221722-troubleshoot-mac-flaps-loop-on-cisco-cat-01.jpeg)
疑難排解步驟
1.已注意到Core交換機上出現MAC抖動。
Nov 14 08:36:34.637: %SW_MATM-4-MACFLAP_NOTIF: Host xxxx.xxxx.xxxx in vlan 1 is flapping between port Twe1/0/19 and port Twe1/0/5
Nov 14 08:36:34.838: %SW_MATM-4-MACFLAP_NOTIF: Host yyyy.yyyy.yyyy in vlan 1 is flapping between port Twe1/0/17 and port Twe1/0/19
Nov 14 08:36:34.882: %SW_MATM-4-MACFLAP_NOTIF: Host zzzz.zzzz.zzzz in vlan 1 is flapping between port Po1 and port Twe1/0/19
2.已選擇用於故障排除yyyy.yyyy.yyyy
過程的MAC地址。
MAC Learning:
輸入命令show mac address-table address
,檢查連線埠上學習的MAC位址。
Core-SW#show mac address-table address yyyy.yyyy.yyyy
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 yyyy.yyyy.yyyy DYNAMIC Twe1/0/17
CDP埠Twe 1/0/17和Twe 1/0/17的鄰居:
輸入命令show cdp neighbors
以檢查已連線裝置的詳細資訊。
Core-SW#show cdp neighbors Twe 1/0/17
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
D - Remote, C - CVTA, M - Two-port Mac Relay
Device ID Local Intrfce Holdtme Capability Platform Port ID
2960X-SW1
Twe 1/0/17 162 S I WS-C2960X Gig 1/0/51
Core-SW#show cdp neighbors Twe 1/0/19
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
D - Remote, C - CVTA, M - Two-port Mac Relay
Device ID Local Intrfce Holdtme Capability Platform Port ID
2960S-SW1
Twe 1/0/19 120 S I WS-C2960S Gig 2/0/28
從2960X-SW1連線到核心 — 軟體Twe1/0/17的日誌:
MACyyyy.yyyy.yyyy
在埠Gi1/0/51和Gi2/0/46(9200L)之間擺動。
2960X-SW1#show mac address-table address yyyy.yyyy.yyyy
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 yyyy.yyyy.yyyy DYNAMIC Gi1/0/51
2960X-SW1#show mac address-table address yyyy.yyyy.yyyy
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 yyyy.yyyy.yyyy DYNAMIC Gi2/0/46
2960X-SW1#show run interface gi 1/0/51
Building configuration...
Current configuration : 62 bytes
!
interface GigabitEthernet1/0/51
switchport mode trunk
end
2960X-SW1#show run interface gi 2/0/46
Building configuration...
Current configuration : 62 bytes
!
interface GigabitEthernet2/0/46
switchport mode trunk
end
來自9200L的日誌:
(這似乎是此MAC地址的有效埠。)
9200L#show mac address-table address yyyy.yyyy.yyyy
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 yyyy.yyyy.yyyy DYNAMIC Gi1/0/1
9200L#show run interface gi 1/0/1
Building configuration...
Current configuration : 62 bytes
!
interface GigabitEthernet1/0/1
switchport mode access
end
2960S-SW1連線到Core-SW Twe1/0/19:
(似乎是循環路徑。) 為了緩解環路,Core-SW上的埠已關閉。
但是,在Core-SW上仍然觀察到MAC擺動。
2960S-SW1的日誌:
Nov 14 08:36:34.637: %SW_MATM-4-MACFLAP_NOTIF: Host xxxx.xxxx.xxxx in vlan 1 is flapping between port Gi3/0/27 and port Gi2/0/26
Nov 14 08:36:34.838: %SW_MATM-4-MACFLAP_NOTIF: Host yyyy.yyyy.yyyy in vlan 1 is flapping between port Gi3/0/27 and port Gi2/0/26
Nov 14 08:36:34.882: %SW_MATM-4-MACFLAP_NOTIF: Host zzzz.zzzz.zzzz in vlan 1 is flapping between port Gi3/0/27 and port Gi2/0/26
2960S-SW1#show run interface gi 3/0/27
Building configuration...
Current configuration : 62 bytes
!
interface GigabitEthernet3/0/27
switchport mode trunk
end
2960S-SW1#show cdp neighbor gi 3/0/27
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
D - Remote, C - CVTA, M - Two-port Mac Relay
Device ID Local Intrfce Holdtme Capability Platform Port ID
2960X-SW2
Gig 3/0/27 176 S I WS-C2960X Gig 1/0/27
2960X-SW2的日誌:
2960X-SW2#show run interface gi 3/0/15
Building configuration...
Current configuration : 39 bytes
!
interface GigabitEthernet3/0/15
end
2960X-SW2#show cdp neighbor gi 3/0/15
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
D - Remote, C - CVTA, M - Two-port Mac Relay
Device ID Local Intrfce Holdtme Capability Platform Port ID
SG300 Gig 3/0/15 157 S I SG300-28P gi18
2960X-SW2#config terminal
2960X-SW2(config)#interface gi 3/0/15
2960X-SW2(config-if)#shutdown
根本原因
由於連線到網路的SG300(非託管)交換機,出現MAC擺動。
解析
通過關閉連線到非託管交換機SG300的埠解決了MAC抖動問題。
預防
STP Portfast:
STP PortFast可使第2層LAN連線埠立即進入轉送狀態,繞過偵聽和學習狀態。STP PortFast可防止產生STP TCN,對於沒有接收STP橋接協定資料單元(BPDU)的連線埠而言,STP TCN並無意義。僅在與端接VLAN的終端主機裝置連線的埠上配置STP PortFast,並且埠絕不能從中接收STP BPDU,例如工作站、伺服器、未配置為支援橋接的路由器上的埠。
BPDU防護:
STP BPDU防護補充了STP PortFast的功能。在已啟用STP PortFast的連線埠上,STP BPDU防護可保護啟用STP PortFast時STP無法提供的第2層回圈。STP BPDU防護會關閉接收BPDU的連線埠。
根防護:
根防護可防止埠成為STP根埠。使用STP根防護可防止不合適的埠成為STP根埠。例如,不合適的埠會連結到不受直接網路管理控制的裝置。
環路防護:
環路防護是針對STP的思科專有最佳化。環路防護可保護第2層網路免受環路的影響,當某些原因導致點對點鏈路上的BPDU無法正常轉發時(例如,網路介面故障或CPU繁忙),就會出現環路。環路防護是對單向鏈路檢測(UDLD)提供的單向鏈路故障防護的補充。環路防護隔離故障並使STP收斂到穩定的拓撲,並將故障元件從STP拓撲中排除。
BPDU過濾器:
這將禁用STP。BPDU在接收時既不會傳送也不會處理。這在服務提供商中很常見,不一定是企業網路。
UDLD主動:
Cisco專有UDLD通訊協定監控支援UDLD的裝置與連線埠之間的連結實體組態。UDLD會偵測是否存在單向連結。UDLD可以在正常或主動模式下運作。如果收到的UDLD封包不包含適用於鄰近裝置的資訊,正常模式UDLD會將連結分類為單向連結。除了正常模式UDLD的功能外,如果無法重新建立兩個先前同步的鄰居之間的關係,則主動模式UDLD會將埠置於err-disabled狀態。
風暴控制:
流量風暴控制是在硬體中實施的,不會影響交換機的整體效能。通常,PC和伺服器等終端站是可以被抑制的廣播流量的來源。為了避免不必要的過度廣播流量處理,請在連線到終端站的接入埠和連線到關鍵網路節點的埠上啟用廣播流量風暴控制。