簡介
本文件說明有關 EtherChannel 不一致的資訊,以及如何在 Cisco Catalyst 交換器中加以偵測。
必要條件
需求
本文件沒有特定需求。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
慣例
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
背景資訊
本文檔不詳細介紹EtherChannel的工作方式或配置方式。有關提供如何瞭解和配置EtherChannel以及不同Catalyst交換機之間配置示例的詳情的文檔,請參閱EtherChannel技術支援頁。
EtherChannel是一組作為單個邏輯埠顯示的聚合物理埠。EtherChannel的目標是提供比單個埠更高的頻寬和可用性。
生成樹通訊協定(STP)將EtherChannel視為單一連線埠。 如果通道化的埠在通道的兩端不一致,則可以建立轉發環路。
下圖提供了一個示例:
廣播資料包
如果交換機A具有不在通道中的兩條單獨的物理鏈路,並且交換機B將這些鏈路視為通道的一部分,則交換機B向交換機A傳送廣播或未知單播資料包。由於鏈路沒有捆綁在一起作為交換機A上的通道,因此資料包會轉發回交換機B,如圖所示。這會導致資料包複製,並將交換機B上的轉發表更改為指向錯誤的方向。
特殊通訊協定(例如思科連線埠聚合通訊協定(PAgP)和IEEE連結聚合控制通訊協定(LACP))的設計旨在確保通道化的鄰居交換器之間的一致性。但是,有時系統不支援這些協定,或者由於其他考慮而停用它們。Cisco已開發了一種特殊機制來檢測和停用通道不一致,以防止資料包重複、循環以及與不一致EtherChannel相關的其他問題。此功能受Catalyst 4500/4000、5500/6000和6500/6000交換機的支援,預設情況下處於啟用狀態,無論通道模式是desirable、active、auto、passive還是on。
不一致偵測的運作方式
STP將EtherChannel視為單個埠。通道中的所有埠共用相同的STP狀態,每個VLAN和每個hello間隔只能傳送或接收一個STP網橋協定資料單元(BPDU)。
如果一台交換機將鏈路視為通道,而鄰居交換機將這些鏈路視為獨立的連線(即不一致),則不會出現這種情況。請考慮以下示例:
STP BPDU
在圖中,交換機A不使用通道,而交換機B使用通道。假設通道的STP指定埠位於交換機B端。這意味著交換機B應傳送BPDU。只要通道被視為單個STP埠,通道上的每個VLAN只傳送一個BPDU。此BPDU透過通道中的一個鏈路進行物理傳輸。因此,交換器A上只有一個連線埠會接收該連線埠。圖中的黑色箭頭表示此點。
在交換機A收到BPDU後,交換機A上的另一個埠將成為STP指定埠。這是因為連線埠並未與接收BPDU的連線埠捆綁為通道,而且不會直接從交換器B接收BPDU。作為交換機A上的STP指定埠,它現在將BPDU(圖中的紅色箭頭表示)傳輸回交換機B。交換機B從交換機A接收BPDU,並檢測到不一致的情況。
EtherChannel不一致檢測機制要求通道中每個VLAN只有一個指定埠傳送或接收BPDU。Catalyst交換機上的每個埠在傳送BPDU時都有自己的唯一MAC地址。
對於Catalyst OS (CatOS),如果在版本7.1(1)及更高版本中發出 show port mac-address mod/port 命令或 show module mod 命令,則會看到此MAC地址。以下是輸出示例:
Cat6k> (enable) show port mac-address 2/7
Port Mac address
----- -----------------
2/7 00-02-fc-90-19-2c
Cat6k> (enable) show module 2 bold
Mod Slot Ports Module-Type Model Sub Status
--- ---- ----- ------------------------- ------------------- --- --------
2 2 16 10/100/1000BaseT Ethernet WS-X6516-GE-TX no ok
Mod Module-Name Serial-Num
--- -------------------- -----------
2 SAD05170009
Mod MAC-Address(es) Hw Fw Sw
--- -------------------------------------- ------ ---------- -----------------
2 00-02-fc-90-19-26 to 00-02-fc-90-19-35 0.231 6.1(3) 7.1(1)
對於Catalyst交換機上的Cisco IOS®軟體,如果發出 show interface type mod/port 命令,則會看到此MAC地址,如以下輸出示例所示:
Cat6k-CiscoIOS# show interface fastEthernet 4/1
FastEthernet4/1 is up, line protocol is down (monitoring)
Hardware is C6k 100Mb 802.3, address is 0005.7461.c838 (bia 0005.7461.c838)
Description: I,NSP49,10.101.5.96,OCCRBC7505BN1A HSSI 1/0/0
MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Full-duplex, 100Mb/s
input flow-control is off, output flow-control is off
ARP type: ARPA, ARP Timeout 04:00:00
Last input never, output never, output hang never
Last clearing of "show interface" counters never
Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 262140
Queueing strategy: fifo
Output queue :0/40 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
119374 packets input, 8353326 bytes, 0 no buffer
Received 118782 broadcasts, 299 runts, 0 giants, 0 throttles
748 input errors, 14 CRC, 0 frame, 0 overrun, 0 ignored
0 input packets with dribble condition detected
9225693 packets output, 591962436 bytes, 0 underruns
0 output errors, 0 collisions, 1 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier
0 output buffer failures, 0 output buffers swapped out
Cat6k-CiscoIOS#
如果接收或傳送的BPDU的源MAC地址在EtherChannel上不斷變化,則多個STP埠會傳送BPDU。這是不一致的明顯跡象,因為STP將通道視為單個埠。
注意:此機制允許一定的容錯能力,因為BPDU可以來自不同的MAC地址。例如,當STP收斂時,STP指定埠可在通道的不同端之間改變。但是,此過程必須在短時間內完成。
檢測機制會檢查傳送和接收的BPDU。如果通道在超過30秒的時間內檢測到來自不同MAC地址的BPDU超過75個,則EtherChannel被視為不一致。但是,如果發現有5個BPDU連續來自同一個MAC地址,則會重置檢測計數器。這些計時器/計數器可能會在未來軟體版本中變更。
注意:由於此機制的一般性質,即使通道配置一致,也可能會觸發不一致檢測。
例如,如果網路中的一台交換機存在硬體或軟體問題,並且透過通道連線的兩台單獨的交換機無法就STP指定埠位於哪一端達成一致,則每台交換機都會傳送BPDU。出現這些症狀的EtherChannel可由一致性檢測機制停用。這不能被視為有害的副作用,因為這種變化可能允許分割網路收斂。
即使停用了STP,BPDU也不會被硬體泛洪。STP仍必須在BPDU上進行處理,包括將源地址從BPDU中的MAC地址更改為傳送BPDU的埠的MAC地址。這意味著即使停用了STP,不一致檢測仍可在通道上工作。
排除EtherChannel不一致檢測故障
預設情況下,在CatOS和Cisco IOS軟體上都啟用了檢測。
還可以監視該特徵的操作。為此,請針對CatOS發出 show spantree statistics mod/port [vlan] 命令。請考慮以下示例:
Cat6k> (enable) show spantree statistics 2/5 199
Port 2/5 VLAN 199
!--- Output suppressed.
channel_src_mac 00-d0-5a-eb-67-5a
channel src count 73
channel OK count 1
Cat6k> (enable) show spantree statistics 2/5 199
Port 2/5 VLAN 199
!--- Output suppressed.
channel_src_mac 00-50-14-bb-63-a9
channel src count 76
channel OK count 1
此清單說明輸出示例中的 show spantree statistics mod/port [vlan] 引數。
-
channel_src_mac —顯示通道上傳送或接收的最後一個BPDU的源MAC地址
-
channel src count —對使用不同源MAC地址傳送或接收的BPDU進行計數
-
channel OK count —對連續使用同一個MAC地址傳送的BPDU進行計數
注意:channel src count引數會增加。一旦流量超過75,通道中的所有鏈路都將進入錯誤停用狀態,並發出系統日誌消息。另請注意,在輸出的兩個示例中看到的MAC地址是不同的。
如果存在EtherChannel配置錯誤問題,您也可以在CatOS的syslog輸出中看到此錯誤消息:
%SPANTREE-2-CHNMISCFG: STP loop - channel 2/5-12 is disabled in vlan/instance 199
此消息表示EtherChannel型別設定(auto/desirable/on)中可能存在配置錯誤。通道配置錯誤,導致生成樹環路。在此消息中:
-
[dec]是模組編號
-
[chars]是埠號
-
vlan [dec]是VLAN編號
在CatOS版本8.1及更高版本中, %SPANTREE-2-CHNMISCFG2: BPDU隨錯誤消息一起出現。由於MAC位址現在位於syslog中,因此此訊息可協助您進行疑難排解,而且在進行疑難排解時,您可以檢閱以取得較簡易的工作。
%SPANTREE-2-CHNMISCFG2: BPDU source mac addresses: [chars], [chars]
此消息在SPANTREE-2-CHNMISCFG消息顯示後出現。此消息提供導致錯誤停用通道的STP BPDU的源MAC地址。在此消息中, [chars]、[chars]是BPDU的源MAC地址。
對於Cisco IOS軟體,必須使用標準STP故障排除過程以檢測EtherChannel不一致。如果在系統日誌輸出中看到此錯誤消息,則可能存在EtherChannel配置錯誤問題:
SPANTREE-2-CHNL_MISCFG: Detected loop due to etherchannel misconfiguration of [chars]
[chars]
此訊息表示偵測到通道群組組態錯誤。例如,EtherChannel一端的連線埠未設定為位於通道中或無法捆綁,而EtherChannel另一端的連線埠已順利捆綁。在此消息中,[chars]是通道組ID。
使用 show interfaces status err-disabled 命令確定配置錯誤的本地埠。使用 show etherchannel summary 命令檢查遠端裝置上的EtherChannel配置。如果配置正確無誤,請在相關的埠通道介面上依次發出 shutdown 命令和 no shutdown 命令。
有關STP debug 命令以及如何進行故障排除的詳細資訊,請參閱對Catalyst交換機上的STP問題進行故障排除。
相關資訊