網絡系統作為企業承載各個業務部門信息的中樞,對其可靠性的要求是不言而喻的。在企業網絡系統中,一般都采用冗余備份鏈路來增加網絡的可靠性,避免了單鏈路故障,但這樣也形成了二層上的環路。在這種環境下STP協議應運而生,它通過有選擇性地阻塞網絡冗余鏈路來達到消除網絡二層環路。
MSTP是從STP發展而來,相對于STP和RSTP,優勢非常明顯。MSTP引入“域”的概念,把一個交換網絡劃分成多個域。每個域內形成多棵生成樹,生成樹之間彼此獨立。另外,MSTP還引入“實例(Instance)”的概念,可以將不同的VLAN映射到不同實例中,MSTP各個實例拓撲的計算是獨立的(每個實例對應一棵單獨的生成樹),在這些實例上就可以實現VLAN數據的負載分擔。

圖1 LAN-AB域的 多生成樹
某公司網絡按照分層原則建設,由核心層、匯聚層及接入層組成。核心交換采用兩臺H3C S9500系列交換機雙機方式,匯聚層采用了4臺H3C S9500系列交換機匯聚個樓層流量,4臺匯聚分別命名為A、B、C、D。各樓層接入采用H3C S5100交換機,分別上聯至兩臺匯聚核心,以實現鏈路冗余,避免單鏈路故障。
在此公司網絡中定義了兩個MST域,A、B匯聚交換機為一個MST域,命名為LANAB;C、D匯聚交換機為另一個MST域,命名為LAN-CD。文中以域LAN-AB為例說明MSTP的應用情況。
在兩臺或者多臺開啟了MSTP特性的設備上,只有當其配置的MST域域名、MST域內所有生成樹實例對應的VLAN映射表、MST域的修訂級別都分別相同,且這些設備之間有鏈路相通時,它們才屬于同一個MST域。圖1為LAN-AB域的結構模型。
在LAN-AB域中有兩個生成樹實例,分別為實例1和實例2。通過配置使不同VLAN的報文按照不同的生成 樹轉 發:VLAN 100—125的報文沿實例1轉發,VLAN 126—150的報文沿實例3轉發,實現了流量的負載均衡。
MSTP協議在二層網絡中發揮了很好的作用, MSTP實現了類似于RSTP的端口快速切換,可以捆綁多個VLAN到一個實例中以降低資源利用率。MSTP還可以向下兼容STP和RSTP協議。它允許不同VLAN的流量沿各自的實例轉發發,從而為冗余鏈路提供了負載分擔機制。
當某個MSTP實例中選定根橋后,開始選擇根端口、指定端口、替代端口以及備份端口。網絡收斂后,就會生成一個轉發樹,打破環路。在STP收斂過程中,是根據各端口到根橋的路徑Cost值來確定端口狀態的。計算出合適的根路徑Cost值,就可以按需求來阻塞端口。當MSTP的域中選定根橋后,在每個非根橋選取一個根端口,在每網段選取一個指定端口。根端口與指定端口在這里都是依據根路徑Cost值選取的,對于端口角色的選擇過程在這里不做過多闡述。
根路徑Cost值的累加是這樣一個過程:首先,根橋發送BPDU報文,,BPDU每經過一臺交換機,Cost值就會累加一次。需要注意的是,Cost值是在BPDU報文進入交換機端口的時候累加,BPDU報文在端口發出的時候是不累加的Cost值的。也就是說根橋發送一個BPDU,在這個BPDU報文中,根路徑Cost值為0。
在某公司網絡中,根據各樓層的信息點位數的不同,每層接入交換機數量也是不同的。對于存在兩臺或者兩臺以上的,接入交換機之間采用了級聯的方式實現通信。圖2是兩臺接入設備級聯時生成樹實例1的模型。

圖2 接入設備級聯時生成樹

圖3 實例1中的路徑Cost值
在這種情況下,以MSTP實例1為例,我們需要阻塞的是接入交換機02與匯聚B之間的鏈路,如圖2所示。如果各個端口的Cost值設置不當,就會造成接入交換機之間的級聯鏈路被阻塞,這樣會使用交換機2上的流量經由匯聚B,再轉發至匯聚A,無法實現按VLAN實現負載分擔的功能,不符合設計初衷。同樣,在三臺、四臺甚至更多接入交換機級聯時,也會存在上述問題。因此如何確定路徑開銷值,也就成了MSPT應用的一個重點。
在某公司網絡中,接入交換機級聯不會超過五臺。設置接口的Cost值是為保證阻塞接入到匯聚之間的冗余鏈路,而不會使接入交換機之間的鏈路被阻塞。同時由于不同的Cost值導致阻塞的端口也不同,為統一規范,在每個MSTP實例中將接入層交換機的上聯端口阻塞。按以上兩點要求,來確定Cost值的計算方法。
匯聚A和匯聚B互聯端口的Cost值設置為40,接入交換機上聯端口的Cost值默認值20。而接入設備相級聯的端口Cost需要根據接入層設備級聯的數量來確定,這里假設為X。圖3是兩臺級聯情況下,實例1中各鏈路路徑Cost值設置情況。
這里需要將接入交換機02與接入01相連的端口選取為根端口,此時,這一端口到根橋的路徑Cost值應小于及接入02上聯端口到根橋的路徑Cost值,既 20+X<20+40,得到X<40。而阻塞端口則是接入交換機02的上聯端口,為達到這一結果, 接入02上聯端口的根路徑Cost應該大于匯聚B下聯端口的根路徑Cost,既20+X>40,得到X>20。由此可以得出,當兩臺接入交換機級聯時,級聯端口間的Cost值X應滿足20<X<40。
在三臺或更多接入交換機級聯時,根據同樣的計算方法,即可計算出級聯端口的Cost。 首先假設有N(N≥2)臺接入交換機級聯,級聯端口的Cost都為X,則X應該滿足條件:40<20+(N-1)×X<20+40(N≥2),既,20<(N-1)×X<40(N≥2)。根據這一條件,就可以設置接入交換機級聯端口的Cost值X,從而達到預設的結果。
上述方法簡要說明了路徑Cost值選取方式,通過計算合適的Cost值,按需求打破二層環路。這里只是給出一個簡單的計算思路,在實際組網中,應結合實際應用設置正確的路徑Cost值。
MST P使用靈活,適用于復雜組網,配置相對也比較簡單,還可以通過設置根橋與備份根橋、域信息以及端口路徑開銷來選擇任意VLAN的任意一條路徑來實現流量轉發。在MSTP的應用中,路徑Cost值的設置也是一個重要環節,合適的Cost值不但能按需消除二層環路,而且在遇到的接入交換機擴展的時候,無需重新改動其它鏈路的Cost值。從這方面來講,這也增強了網絡的可擴展性。