1. 程式人生 > 其它 >交換機在江湖之維護寶典】第十三章 如何輕鬆定位STP故障

交換機在江湖之維護寶典】第十三章 如何輕鬆定位STP故障

交換機在江湖官方號2014-8-29 11:21:12最新回覆:2019-08-14 13:14:58 2.4W1339

作為IEEE標準協議,STP具有相容性好、網路規劃要求低、配置簡單等優勢,被廣泛應用於二層網路中。當然,用得多了大家碰到的問題也就多了,STP有哪些故障現象呢,這些故障又是怎麼排除的呢?小編這次就結合幾個實際的STP故障,和大家分享一下STP故障解決之道。

小貼士

小夥伴們注意啦,本文中所指的STP是指廣義的STP哦,包括STP協議、RSTP協議、MSTP協議。當需要對三者進行區分時,分別會敘述為STP模式、RSTP模式、MSTP模式。

故障現象1:使能STP的網路拓撲中出現鏈路故障或鏈路故障恢復後,業務流量恢復需要超過30秒,即埠無法快速收斂

定位思路

遇到這種問題時,小編給大家總結了如下的定位思路:

1)確認對端埠是否使能STP;

2)檢查埠是否工作在STP模式;

3)檢查埠的鏈路型別是否為點對點。

定位步驟

具體的定位步驟,請小夥伴們往下瞅:

步驟1:確認對端埠是否使能STP

終端、伺服器都不支援STP協議,如果這些裝置和交換機連線,建議在交換機的埠上執行命令stp edged-port enable開啟邊緣埠屬性或執行命令stp disable去使能STP。

否則,當用戶插拔鏈路連線介質,或先執行shutdown,再執行undo shutdown,重啟埠後,因對端埠不會發送STP的協議報文進行協商,導致交換機上的埠經過2倍的Forward Delay(預設為15秒)時間後才能正常轉發報文。

步驟2:檢查埠是否工作在STP模式

全域性配置為RSTP/MSTP模式的裝置,當埠接收到STP模式報文後,埠可以自動遷移到STP模式下工作。

通過命令display stp interface檢視埠實際的工作模式(檢視Port STP Mode欄位哦):

由於STP模式不能提供快速遷移機制,埠狀態變化後,需要等待2倍的Forward Delay(預設15秒)才能遷移到轉發狀態。

可以通過在交換機埠配置stp no-agreement-check命令來避免埠連線的上游裝置模式為RSTP或者與MSTP實現存在私有性差異的廠商裝置時,上游橋裝置不能快速遷移問題。

當埠自動遷移到STP相容工作模式後,以下情況埠無法自動遷移回原來的RSTP/MSTP模式,導致與其他執行RSTP/MSTP模式的裝置無法互通。

  • 執行STP模式的裝置已關機或移走;
  • 執行STP模式的裝置修改為執行RSTP/MSTP模式。

因此需要在埠上執行stp mcheck命令,將埠手動遷移到RSTP/MSTP模式。

步驟3:檢查埠鏈路型別是否為點對點

RSTP/MSTP模式提供了埠快速遷移機制:當兩端均使能STP而且鏈路型別為點對點時,才能實現埠狀態的快速遷移。

可以通過stp point-to-point{auto|force-false|force-true}命令配置鏈路型別,埠的鏈路型別預設為auto,即由RSTP/MSTP來檢測與埠相連的鏈路是否是點對點鏈路,兩端均工作在全雙工模式是才可能成為點對點鏈路。

通過display stp interface檢視埠的鏈路型別:

Config=auto表示使用stp point-to-point命令配置的值為auto,Active=true表示當前工作在點對點鏈路型別。

步驟4:如果以上步驟還不能解決問題,小夥伴們莫急,可以收集相關資訊聯絡華為工程師處理。

小貼士

在這裡提醒下小夥伴們,在使能STP之前,別忘了檢查參與STP計算的埠是否使能了bpdu enable命令。具體的請參見下面的表格。

另外,小夥伴們需要關注這種場景:因為中間裝置或者傳輸的問題導致STP報文不能透傳,這個可以通過display stp interfaceinterface-typeinterface-number命令判斷,檢視BPDU Received計數。如果計數一直為零或者沒有增加,則有可能是中間裝置或者傳輸導致收不到STP報文。

故障現象2:使能STP的網路中,流量業務時斷時續,裝置CPU佔用率高

定位思路

同樣滴,小編給大家總結了如下的定位思路:

1)埠是否持續收到TC報文;

2)埠是否收到多種STP報文;

3)裝置是否存在報文攻擊。

定位步驟

具體的定位步驟,請小夥伴們繼續往下瞅:

步驟1:檢查埠是否持續收到TC報文

執行命令display cpu-usage檢視裝置整機或介面板上佔用CPU較高的任務,如果交換機介面板的PPI任務(適配層任務,維護晶片中各個介面的狀態)CPU使用率較高,則排查埠是否持續收到大量TC報文。如果CPU利用率較高的任務中沒有PPI任務,則按照步驟3進行處理。

通過如下命令列可檢視埠收、發TC報文的情況:

üdisplay stp tc-bpdu statistics:該命令從框式V100R006版本,盒式V100R005版本開始支援。

üdisplay stp topology-change:該命令從框式V100R006版本,盒式V100R005版本開始支援。

如果通過以上排查,確認埠持續收到大量TC報文,小夥伴們可以通過使用stp tc-protection命令,使能交換機對TC報文的保護功能,實現對TC報文的限制,以達到對裝置進行保護的目的。另外,還可以通過stp tc-protection threshold命令指定Hello Time時間內處理TC型別STP報文的次數。

在收到TC報文轉發重新整理轉發表項時,STP的收斂方式不同,交換機對ARP表項的處理方式不同,建議配置為normal:

  • 如果STP的收斂方式配置為fast,交換機將ARP表中的相關表項直接刪除。
  • 如果STP的收斂方式配置為normal,交換機將ARP表中相關表項的剩餘存活時間置為0,對這些表項進行老化處理。

如果使能TC保護、修改STP收斂方式後,PPI任務的CPU利用率仍然較高,小夥伴們莫著急,請繼續按照步驟2進行處理。

步驟2:埠是否收到多種STP報文

可以通過display stp history命令檢視埠角色計算的歷史記錄,如果埠的角色不斷更新,表明埠收到來自不同裝置的報文,說明組網存在問題:

同時,開啟以下STP debug開關,採集故障期間互動的STP報文和事件資訊,排除非法的STP報文。

步驟3:裝置是否存在報文攻擊

網路中出現鏈路故障或報文攻擊,可能導致埠長時間接收不到對端傳送的STP協議報文,發生STP切換狀態,例如會產生如下日誌:

Jul 26 2012 02:26:40 Switch %%01MSTP/6/SET_PORT_DISCARDING(l):In MSTP process 0 instance 0, MSTP set port GigabitEthernet4/0/10 state as discarding.

Jul 26 2012 02:26:43 Switch %%01MSTP/6/SET_PORT_FORWARDING(l):In MSTP process 0 instance 0, MSTP set port GigabitEthernet4/0/10 state as forwarding.

IFNET/4/LINK_STATE:The line protocol [line-protocol] on the interface [interface-name] has entered the [state] state.

如果鏈路正常,通過display stp interfaceinterface-typeinterface-number檢視BPDUReceived計數。

如果計數沒有周期增長,且埠下BPDU配置正確,則在埠入方向繫結流策略對STP報文進行流量統計,以確認對端裝置是否週期傳送了STP協議報文。配置和檢視方法如下:

ü配置流策略:

ü檢視流量統計:

ü如果通過流量統計檢視到STP報文計數在週期增加,但使用命令display stp interfaceinterface-typeinterface-number檢視BPDUReceived計數沒有增加,那麼需要再使用命令display cpu-defend statistics all檢視是否有其他大量報文在上送CPU處理。

小貼士

小夥伴們注意啦:在不同形態、不同版本的交換機上,使用display cpu-defend statistics all命令檢視到的報文型別可能不同哦。

ü交換機通過CPCAR機制對上送控制平面的報文進行業務細化,分別進行限速與佇列排程,以保護控制平面的安全。如果某些協議報文已經超過CPCAR的閾值出現丟包,通過命令display cpu-defend configuration all檢視這些協議報文所在的佇列是否與STP報文在同一佇列:

步驟4:如果以上步驟還不能解決問題,小夥伴們可以收集相關資訊聯絡華為工程師處理哦。