生成樹 交換器 STP 網路

從STP到RSTP 認識多重生成樹協定

2018-02-21
生成樹的技術,一直以來都是交換機很重要的技術,其目的是為了避免網路迴圈所造成的各種問題。而各個交換機之間到底如何透過一個共同的技術製作出一份生成樹是一個重要的議題,本文將簡述運作的原理,而如何改善運算生成樹的過程,也就是RSTP,也會做介紹。
生成樹協定的英文是Spanning Tree Protocol,STP則是生成樹協定的縮寫,被定義在IEEE 802.1d之中。STP原本是由Digital Equipment Corporation所研發的,後來這份研發出來的演算法經由IEEE協會所修訂並訂立成IEEE 802.1d協定。

這裡要注意的是,原本Digital Equipment Corporation所研發的STP演算法和IEEE 802.1d協定中的演算法並不相同,也無法互相相容,而Cisco Switch設備都是採用802.1d協定的STP。

STP最大的目的就是在於避免網路拓撲中的迴圈,一般網路拓撲中的迴圈範例如圖1所示。


▲圖1 網路拓撲中的迴圈。

在這個網路架構圖中,Segment 1和Segment 2這兩個網段分別都連接到交換機A和交換機B這兩台交換機設備,因此造成網路拓撲的迴圈發生。STP的效用就在於自動辨識出這樣的網路迴圈並藉由封鎖某一個埠的流通來解除這樣的網路迴圈,例如封鎖交換機A下面這個埠。

當然,當網路線路出現一定的問題時,STP會自動調整所有的埠,也許某些被封鎖的埠又會再次被開啟,或是當網路架構改變時,STP也會自動改變需要被封鎖的埠,以便提升整體網路的最大效能。預設上,Cisco Catalyst Switch設備上的STP是開啟的。

生成樹協定運作流程說明

到這裡,已經知道STP的目的與效用,接下來介紹STP的運作流程。STP運用兩個關鍵性的概念來避免網路迴圈,也就是Bridge ID(BID)以及網路路徑所需的花費,以下用圖2這個網路架構圖來解釋整個運作流程。


▲圖2 網路架構示意圖。

第一步驟就是選出Root Bridge,在一個網路中只有一台設備可以當Root Bridge,而在Root Bridge上的所有的埠都稱為Designated Port,Designated Port通常都是處於Forwarding(轉發)的狀態之中,也就是隨時可以協助轉發(接收並送出)封包。

這裡假設交換機A被選為Root Bridge,此時網路上其他的交換機設備就全部都是Non-root Bridge。而在每一個Non-root Bridge上都必須選出一個Root Port,Root Port的定義是從Non-root Bridge到Root Bridge之間能花最少的成本,這些Root Port一樣都是處於轉發的狀態中。

由圖2這個範例圖中可以看出交換機B這個Non-root Bridge經由Segment 1到達交換機A可以用最少的成本到達,因為Segment 1是100 BaseT。相對之下,Segment 2的10 BaseT的網路速度明顯慢了很多,所以走Segment 2會花費比較多的成本。

接著,下一步就是在每一個網路區段內選出一個Designated Port,Designated Port代表從這個Port到Root Bridge的成本最低,在上面這個範例中,因為兩個網路區段的Designated Port都在Root Bridge上,所以已經都被選好了。

至於其他的Ports就都是Non-designated Port,又稱為NDB,這種Port是處於Block(封鎖)的狀態,因此沒有辦法轉發任何的封包。所以,在這個例子中交換機B下的這個Port就是Non-designated Port。而因為這個Port被Block住,所以整個網路迴圈就不再存在了。

這是整個STP運作的大致流程,以下分別就每個步驟做詳細說明。到這裡為止,請把握幾個大重點:

1. 每一個網路只能有一個Root Bridge

2. 每一個Non-root Bridge上只能有一個Root Port

3. 每一個網路區段(Segment)內只能有一個Designated Port

4. 每一個Non-designated Port都是被封鎖住,也就是不會作用的。

第一步驟:選取Root Bridge

基本上,選取Root Bridge的條件是BID,也就是Bridge ID。Bridge ID是由交換機或是橋接器設備的優先序(Priority)與MAC位址所組成。而這些資料都是放在BPDU之中,BPDU就是Bridge Protocol Data Unit。同一個網路上所有運作於STP協定的交換機和橋接器設備都會定期交換BPDU,預設上,所有的設備會每隔2秒交換一次,而交換的方式是採用群播(Multicast)的方式來進行。

優先序是由2個Bytes所組成,而MAC位址當然就是由6個Bytes所組成。在802.1d的STP協定中,優先序的預設值是32768,其二進位是「1000 0000 0000 0000」,十六進位就是0x8000,其實也就是2個Bytes所能表達的數字範圍內的中間值。優先序和MAC位址的值越低,代表BID的值越低,而交換機或是橋接器設備如果擁有越低的BID值,代表這台設備越有機會成為Root Bridge。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!