交換技術應用連載:廣播風暴問題解決
橋接環路
在交換機設備出現之前,曾經出現過一種用來隔離碰撞的設備叫網橋(bridge)。網橋的工作原理和交換機相同,只是比交換機端口少,只有兩個端口。另外一個不同點是網橋是軟件實現的,交換速度比交換機慢。基于歷史原因,今天仍然把交換機稱為橋接設備,把交換機形成的環路稱為橋接環路(bridge loop)。
交換機把原本處于同一個碰撞域和廣播域的主機分割開來,使它們分別處于不同的碰撞域,提高了網絡性能。這樣做雖然解決了一個問題(提高了性能),但又引入了一個新問題,就是單點失敗(single point failure),即當交換機出現故障時原本能夠通信的主機就不能通信了。為了避免單點失敗,人們很自然地想到了冗余技術--使用兩臺交換機連接兩個分離的網段,一旦一臺交換機出現故障還有另外一臺交換機可以替代工作。單點失敗的問題雖然解決了,但是由于兩條路徑的出現又會產生環路(如圖1所示)。環路的產生將引起廣播風暴(broadcast storm)和MAC地址表不穩定。這兩個問題要比單點失敗嚴重的多。
圖 1環路的形成
廣播風暴的形成
在圖2所示的拓撲中,當網段1(segmeng1)中的主機hostX發出一個廣播幀后(例如ARP廣播),該網段中所有節點都接收到它,SwitchA和switchB也不例外,這里以switchA為例。由于是廣播幀,SwitchA將它轉發到所有其他端口,因此,這個廣播幀會出現在網段2(segment2)中。
被交換機switchA轉發到網段2的廣播幀被交換機switchB處于網段2的端口收到。SwitchB并不知道該數據幀是由switchA轉發過來的,因為數據幀上沒有任何跡象表明它曾經被交換機處理過,正是基于這個原因,以太網交換機也稱為透明(transparent)網橋--對于數據的接收端來說是透明的,它看不到路徑中經由的交換機,它認為數據是從發送端直接到達目的地的的。SwitchB收到該廣播幀后查閱地址表,沒有找到任何匹配的地址條目,只好將該幀向其它所有端口轉發,該廣播幀又被轉發到網段1上。SwitchA還會收到它并執行前面的過程。如此往復,廣播幀在環路中無休止地傳播,形成廣播風暴。廣播風暴將嚴重影響網絡性能,甚至造成網絡癱瘓。
圖 2 廣播風暴的形成
MAC地址表不穩定
環路也會造成交換機的MAC地址表不穩定。以圖3為例解釋為什么MAC地址表不穩定。
圖 3 MAC地址表不穩定 (做圖時把SW1下面的黑條去掉,SW1、SW2后面的陰影去掉)
假如主機A向主機B發送數據。該數據幀被交換機SW1和交換機SW2在網段1(S1)上的端口收到,通過學習數據幀中的源地址,兩臺交換機都認為主機A在網段S1上,并把這樣的信息寫入地址表中。此時如果兩臺交換機的地址表中并沒有主機B的地址條目,它們會把該數據幀向其他所有端口轉發,這樣該數據幀就會被轉發到網段2(S2)上。交換機SW2通過其在S2網段上的端口收到交換機SW1轉發到S2網段上的數據幀后,再次讀取源地址,發現仍然是主機A的地址,那么它認為主機A在網段2上,便修改自己的地址表,以反映出最新的狀態。同理,交換機SW1從S2網段上收到該數據幀后也修改自己的地址表,把主機A對應在S2網段上。這樣,隨著數據幀在環上不停地旋轉,兩臺交換機會認為主機A不停地在兩個網段上變換,造成MAC地址表不穩定。MAC地址表不穩定會影響主機之間的通信,因為某些數據轉發不到正確的目的地。
提示:如果交換機在其兩個或以上端口上收到了同一個數據幀,它就認為出現了環路,并報告故障信息。
【編輯推薦】