1. 程式人生 > >STP導致鏈路中斷問題

STP導致鏈路中斷問題

生成樹 stp 環路

使用STP協議,為的是解決環路問題,然而在特殊情況下,反而會導致鏈路被阻斷,業務中斷。

某日,一用戶反應,兩臺核心之間出現異常現象,直連時不通,但是通過一臺交換機中轉就通了。技術分享

上圖中,二層交換機本來是作為核心A的下級交換機,接了大量服務器,網關都在核心A上,核心A與核心B之間為三層連接,互指路由通訊。改造前的結構明顯不合理,客戶決定將核心直接互聯,但是互聯後,直連接口無法PING通。線纜,接口配置都已檢查過均沒有問題。

到達現場,首先依舊從線纜及接口配置檢查開始,將筆記本配置為核心A地址與核心B互聯,通;反之也通。排除線纜及接口配置問題。

第二步,在核心A上檢查ARP表,空白,沒有對端的ARP表項。

第三步,接口下無任何針對對端MAC的限制策略,沒有IP+MAC綁定

第四步,檢查STP狀態,發現STP將核心A與核心B的互聯口阻斷。

直接原因找到,但是從眼前的拓撲結構來說,不應該阻斷接口,換一種情況,如果核心A與核心B之間確實還有一條沒有找到的線路,那麽線路中間串一個二層交換機,為什麽就不會阻斷接口了,而且業務是正常的,沒有出現被環路影響的情況。核心A與核心B之間是三層互聯,使用路由通信,本身也就不會有二層環路。

下面再舉個例子說明一下

技術分享

兩臺交換機兩個線互聯,兩邊的G0/0/1口屬於vlan10,兩邊的G0/0/2口屬於vlan20,這種情況下是否是環路,如果開啟STP會出現什麽情況。

從實際效果來說,這不是環路,vlan10和vlan20內的廣播報文是不會傳到對方vlan內的,這也是劃分vlan的主要目的之一。但是開啟了STP後,是會阻斷一個口的。

這裏最關鍵的一點就是,STP報文與vlan無關,它是協議報文,不論接口下劃分什麽類型,放行或阻斷什麽vlan都不會阻礙它的傳遞。這也就解釋了上圖的現象。

那麽返回最初的問題,接口被阻斷的原因知道了,為什麽中間串了二層交換機就正常了,其實也狠簡單,那臺二層交換機沒有開啟STP協議,收到STP報文後就直接丟棄了,所以核心A與核心B在STP這個層面裏感知只有一條線路是互聯的。

最後,那條不知道隱藏在哪裏的線路依舊沒有找到,也許那中間又串了幾臺交換機。這個故障其實是可以避免的,在進行網絡設計及改造的時候,交換機之間在邏輯上應該要保證只有一條線路,可以多口進行捆綁。合理、規範的設計可以為後期的網絡運維避免很多的疑難雜癥,切記切記。

本文出自 “實用主義工程師” 博客,謝絕轉載!

STP導致鏈路中斷問題