簡介
本檔案介紹多重生成樹通訊協定(802.1s)的功能和組態。
必要條件
需求
思科建議您瞭解以下主題:
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
多生成樹(MST)是受Cisco專有多例項生成樹協定(MISTP)實施啟發而制定的IEEE標準。下表顯示各種Catalyst交換器對MST的支援:
Catalyst平台 |
含RSTP的MST |
Catalyst 2900 XL和3500 XL |
不可用 |
Catalyst 2950和3550 |
Cisco IOS® 12.1(9)EA1 |
Catalyst 2955 |
所有Cisco IOS版本 |
Catalyst 2948G-L3和4908G-L3 |
不可用 |
Catalyst 4000和4500(Cisco IOS) |
12.1(12c)EW |
Catalyst 5000和5500 |
不可用 |
Catalyst 6000和6500(Cisco IOS) |
12.1(11b)EX、12.1(13)E、12.2(14)SX |
Catalyst 8500 |
不可用 |
有關RSTP(802.1w)的詳細資訊,請參閱瞭解快速生成樹協定(802.1w)。
MST的使用位置
此圖顯示一種常見設計,其特徵是接入交換機A的1000個VLAN冗餘連線到兩台分佈交換機D1和D2。在此設定中,使用者連線到交換機A,網路管理員通常根據偶數或奇數VLAN或認為合適的任何其他方案,尋求在接入交換機上行鏈路上實現負載均衡。
具有1000 VLAN的接入交換機A冗餘連線到交換機D1和D2
以下各節是在此設定中使用不同型別STP的示例案例:
PVST+案例
在Cisco每VLAN生成樹(PVST+)環境中,對生成樹引數進行調整,以便每個上行鏈路中繼轉發一半的VLAN。為了輕鬆實現這一點,請選擇網橋D1作為VLAN 501至1000的根,網橋D2作為VLAN 1至500的根。以下陳述式適用於此組態:
標準802.1q案例
原始IEEE 802.1q標準定義的遠不止是中繼。此標準定義了一個通用生成樹(CST),它假定整個橋接網路只有一個生成樹例項,無論VLAN的數量如何。如果將CST應用於此下一圖的拓撲,則結果類似於如下所示的圖:
應用於網路的通用生成樹(CST)
在運行CST的網路中,以下陳述是正確的:
註:思科實施增強了802.1q以支援一個PVST。此功能的行為與本例中的PVST完全相同。Cisco per-VLAN BPDU通過純802.1q網橋進行隧道傳輸。
MST案例
MST(IEEE 802.1s)結合了PVST+和802.1q的最佳方面。其思想是可以將多個VLAN對映到數量較少的生成樹例項,因為大多數網路只需要幾個邏輯拓撲。在第一個圖中所描述的拓撲中,只有兩個不同的最終邏輯拓撲,因此實際上只需要兩個生成樹例項。無需運行1000個例項。如果您將1000個VLAN中的一半對映到不同的生成樹例項(如圖所示),則以下陳述是正確的:
將1000個VLAN的一半對映到不同的生成樹例項
從技術角度來看,MST是最佳解決方案。從終端使用者的角度看,與遷移到MST相關的主要缺點是:
MST區域
如前所述,MST引入的主要增強功能是可以將多個VLAN對映到單個生成樹例項。這會引發如何確定哪個VLAN與哪個例項相關聯的問題。更準確地說,如何標籤BPDU,以便接收裝置能夠識別每個裝置應用的例項和VLAN。
在802.1q標準中,所有例項都對映到唯一例項,因此問題不相關。在PVST+實現中,關聯如下:
為了解決此問題,Cisco MISTP為每個例項傳送了一個BPDU,其中包含BPDU負責的VLAN清單。如果由於錯誤,兩台交換機配置不正確,並且與同一例項關聯有不同的VLAN範圍,則協定很難從這種情況中正確恢復。
IEEE 802.1s委員會採用了一種更簡單、更簡單的方法來引入MST區域。將區域等同於邊界閘道通訊協定(BGP)自治系統(這是一組置於共同管理下的交換器)。
MST配置和MST區域
網路中運行MST的每個交換機都有一個MST配置,該配置由以下三個屬性組成:
-
字母數字配置名稱(32位元組)
-
配置修訂版號(兩個位元組)
-
一個4096元素表,將機箱上支援的每個潛在4096 VLAN與給定例項相關聯
要成為通用MST區域的一部分,一組交換機必須共用相同的配置屬性。由網路管理員負責在整個區域內正確傳播配置。目前,只有透過指令行介面(CLI)或簡易網路管理通訊協定(SNMP)才能執行此步驟。也可以設想其他方法,因為IEEE規範沒有明確提及如何完成該步驟。
注意:如果由於任何原因,兩台交換機在一項或多項配置屬性上有所不同,則這些交換機屬於不同區域。有關詳細資訊,請參閱下一節「區域邊界」。
區域邊界
為了確保一致的VLAN到例項對映,協定必須能夠準確地識別區域的邊界。為此,BPDU中包含了該區域的特徵。BPDU中不會傳播確切的VLAN到例項對映,因為交換機只需要知道它們是否與鄰居位於同一區域。因此,僅會傳送VLAN到例項對映表的摘要,以及修訂版號和名稱。交換機收到BPDU後,會提取摘要(通過數學函式從VLAN到例項對映表派生的數值),並將此摘要與自己的計算摘要進行比較。如果摘要不同,則接收BPDU的連線埠位於區域邊界。
一般而言,如果埠網段上的指定網橋位於不同的區域,或者如果埠收到舊版802.1d BPDU,則該埠位於區域的邊界。在此圖中,B1上的連線埠位於區域A的邊界,而B2和B3上的連線埠位於區域B的內部:
MST例項
根據IEEE 802.1s規範,MST網橋必須至少能夠處理以下兩個例項:
-
一個內部跨距樹狀目錄(IST)
-
一個或多個多生成樹例項(MSTI)
由於802.1s實際上處於一個預標準階段,因此術語不斷演變。這些名稱很可能會在802.1s的最終版本中更改。思科實施支援16個例項:一個IST(例項0)和15個MSTI。
IST例項
為了清楚瞭解IST例項的作用,請記住MST源自IEEE。因此,MST必須能夠與基於802.1q的網路互動,因為802.1q是另一個IEEE標準。對於802.1q,橋接網路只實現單個生成樹(CST)。IST例項只是在MST區域內擴展CST的RSTP例項。
IST例項接收並向CST傳送BPDU。IST可以將整個MST區域表示為通向外部世界的CST虛擬網橋。
這是兩個功能等價的圖。注意不同阻塞埠的位置。在典型的橋接網路中,您預計交換機M和B之間會出現一個阻塞埠。您預計在MST區域中間的某個埠會中斷第二個環路,而不是在D上阻塞。但是,由於IST的原因,整個區域顯示為運行單個生成樹(CST)的一個虛擬網橋。這使您能夠瞭解虛擬網橋阻塞了B上的備用埠。此外,該虛擬網橋位於C到D網段上,它使交換機D阻塞其埠。
使區域顯示為虛擬CST網橋的確切機制超出本文檔的範圍,但IEEE 802.1s規範中有詳細說明。但是,如果您牢記MST區域的虛擬網橋屬性,則與外部世界的互動更容易理解。
MSTI
MSTI是僅存在於某個區域中的簡單RSTP例項。預設情況下,這些例項自動運行RSTP,無需任何額外配置工作。與IST不同,MSTI從不與地區外部互動。請記住,MST在區域之外只運行一個生成樹,因此除IST例項外,區域內部的常規例項沒有外部對應例項。此外,MSTI不會在區域之外傳送BPDU,只有IST會傳送。
MSTI不傳送獨立的單個BPDU。在MST區域內,網橋會交換MST BPDU,可以將其視為IST的正常RSTP BPDU,並且還包含每個MSTI的附加資訊。此圖顯示MST區域內交換機A和交換機B之間的BPDU交換。每台交換機只傳送一個BPDU,但每個埠上存在的每個MSTI都包含一個MRecord。
注意:在此圖中,請注意MST BPDU攜帶的第一個資訊欄位包含有關IST的資料。這表示IST(例項0)始終在MST區域內的任何位置都存在。但是,網路管理員不必將VLAN對映到例項0上,因此不必擔心。
與常規的融合生成樹拓撲不同,鏈路的兩端可以同時傳送和接收BPDU。這是因為如圖所示,可以將每個網橋指定給一個或多個例項,並且需要傳輸BPDU。一旦在埠上指定了單個MST例項,就會傳送包含所有例項(IST+ MSTI)資訊的BPDU。此處顯示的圖表演示了在MST區域內部和外部傳送的MST BDPU:
在MST區域內部和外部傳送的MST BDPU
MRecord包含足夠的資訊(大部分是根網橋和傳送方網橋優先順序引數),可供相應的例項計算其最終拓撲。MRecord不需要在常規IEEE 802.1d或802.1q CST BPDU中常見的任何與計時器相關的引數,如呼叫時間、轉發延遲和最大老化時間。MST區域中唯一使用這些引數的例項是IST;hello時間決定了BPDU的傳送頻率,轉發延遲引數主要在無法快速轉換時使用(請記住,快速轉換不會發生在共用鏈路上)。由於MSTI依賴IST傳輸其資訊,因此MSTI不需要這些計時器。
常見配置錯誤
例項和VLAN之間的獨立性是一個新概念,意味著您必須仔細規劃您的配置。「IST Instance is Active on All Ports, When Trunk or Access」部分說明了一些常見缺陷以及如何避免它們。
IST例項在所有埠(無論是中繼還是接入)上均處於活動狀態
此圖顯示交換器A和B與位於不同VLAN中的存取連線埠連線。VLAN 10和VLAN 20對映到不同的例項。VLAN 10對映到例項0,而VLAN 20對映到例項1。
此配置導致pcA無法向pcB傳送幀。show命令顯示交換器B封鎖到VLAN 10中交換器A的連結,如圖所示:
在如此簡單的拓撲中,如何實現這一點而沒有明顯的環路?
此問題的解釋是,無論內部例項的數量如何,MST資訊都只通過一個BPDU(IST BPDU)進行傳輸。單個例項不傳送單個BPDU。當交換機A和交換機B交換VLAN 20的STP資訊時,交換機將傳送帶有例項1的MRecord的IST BPDU,因為這是VLAN 20的對映位置。但是,因為這是IST BPDU,所以此BPDU還包含例項0的資訊。這表示IST例項在MST區域中的所有埠上處於活動狀態,無論這些埠是否承載對映到IST例項的VLAN。
此圖顯示IST例項的邏輯拓撲:
交換機B從交換機A(每個埠一個)接收兩個例項0的BPDU。顯然,交換機B必須阻塞其埠之一才能避免環路。
首選的解決方案是對VLAN 10使用一個例項,對VLAN 20使用另一個例項,以避免將VLAN對映到IST例項。
另一種方法是在所有鏈路上承載對映到IST的VLAN(如下一圖所示,在兩個埠上允許VLAN 10)。
對映到同一例項的兩個VLAN阻塞相同的埠
請記住,VLAN不再意味著生成樹例項。拓撲由例項確定,而不管對映到它的VLAN。此圖顯示一個問題,它是IST Instance is Active on All Ports(無論是Trunk還是Access)一節中討論的問題的一個變體:
拓撲由例項確定,無論對映到該拓撲的VLAN是什麼
假定VLAN 10和20都對映到同一個例項(例項1)。網路管理員想要手動修整一個上行鏈路上的VLAN 10和另一個上行鏈路上的VLAN 20,以便限制從交換器A到分佈層交換器D1和D2的上行鏈路主幹上的流量(嘗試實現上圖所述的拓撲)。完成此操作後不久,網路管理員發現VLAN 20中的使用者已失去與網路的連線。
這是一個典型的配置錯誤問題。VLAN 10和20都對映到例項1,這意味著兩個VLAN只有一個邏輯拓撲。無法實現負載共用,如下所示:
典型配置錯誤問題
由於手動修剪,VLAN 20只允許在阻塞的埠上使用,這可以解釋連線斷開的原因。為了實現負載平衡,網路管理員必須將VLAN 10和20對映到兩個不同的例項。
要避免此問題,只需遵循一條簡單規則,即永遠不要手動修剪TRUNK上的VLAN。如果您決定從中繼中刪除一些VLAN,請同時刪除對映到給定例項的所有VLAN。切勿從中繼中刪除單個VLAN,也不要刪除對映到同一例項的所有VLAN。
MST區域與外部世界的互動
遷移到MST網路後,管理員可能需要處理MST和傳統協定之間的互操作性問題。MST可與標準802.1q CST網路無縫運行;但是,由於存在單個生成樹限制,只有少數網路基於802.1q標準。在宣佈支援802.1q的同時,思科發佈了PVST+。Cisco還提供了MST和PVST+之間的高效而簡單的相容機制。稍後將對此機制進行說明。
MST區域的第一個屬性是,在邊界埠上不傳送MSTI BPDU,而只傳送IST BPDU。內部例項(MSTI)始終自動匹配邊界埠的IST拓撲,如下圖所示:
內部例項(MSTI)始終在邊界埠自動匹配IST拓撲
在此圖中,假設VLAN 10至50對映到綠色例項,而綠色例項僅是內部例項(MSTI)。紅色連結代表IST,因此也代表CST。VLAN 10到50在拓撲中隨處可用。綠色例項的BPDU不會從MST區域傳送出去。這並不意味著在VLAN 10到50中存在環路。MSTI在邊界埠跟蹤IST,交換機B上的邊界埠也會阻止綠色例項的流量。
運行MST的交換機能夠自動檢測邊界上的PVST+鄰居。這些交換機能夠檢測例項的中繼埠的不同VLAN上接收到多個BPDU。
此圖顯示了一個互通性問題。MST區域僅與該區域外部的一個生成樹(CST)互動。但是,PVST+網橋對每個VLAN運行一個生成樹演算法(STA),因此,每兩秒在每個VLAN上傳送一個BPDU。邊界MST橋接器預計不會收到那麼多BPDU。MST網橋期望接收或傳送一個,這取決於網橋是否是CST的根。
MST橋接器預期接收或傳送一個
思科開發了解決此圖中所示問題的機制。一個可能性可能包括將PVST+網橋傳送的額外BPDU通過隧道穿越MST區域。但是,在MISTP中首次實施時,提供的解決方案過於複雜且可能具有危險性。人們發明了一種更簡單的方法。MST區域複製所有VLAN上的IST BPDU以模擬PVST+鄰居。此解決方案包含本文檔中討論的幾個限制。
建議的配置
由於MST區域現在在邊界的每個VLAN上複製IST BPDU,因此每個PVST+例項從IST根偵聽到一個BPDU(這意味著根位於MST區域內)。建議IST根的優先順序高於網路中的任何其他網橋,以便IST根成為所有不同PVST+例項的根,如下圖所示:
在此圖中,交換機C是一個冗餘連線到MST區域的PVST+。IST根是交換機C上存在的所有PVST+例項的根。因此,交換機C會阻塞其上行鏈路之一以防止環路。在此特定情況下,PVST+和MST區域之間的互動是最佳的,因為:
備用配置(不推薦)
另一種可能性是使IST區域成為絕對沒有PVST+例項的根。這表示所有PVST+例項都有比IST例項更好的根,如下圖所示:
所有PVST+例項都有比IST例項更好的根
此案例對應一個PVST+核心層和MST接入層或分佈層,這種情況並不常見。如果在區域之外建立根網橋,則與先前建議的配置相比,存在以下缺點:
-
MST區域只運行一個與外部世界互動的生成樹例項。這基本上表示邊界連線埠只能封鎖或轉送所有VLAN。換句話說,通向交換機C的區域中的兩個上行鏈路之間無法實現負載均衡。對於該例項,交換機B上的上行鏈路可以阻塞所有VLAN,而交換機A可以轉發所有VLAN。
-
此配置仍允許快速收斂於區域內。如果交換機A上的上行鏈路發生故障,需要快速切換到另一台交換機上的上行鏈路。雖然IST在區域內行為以使整個MST區域類似於CST網橋的方式沒有詳細討論,但您可以想象跨區域的切換從未像單網橋上的切換那樣高效。
配置無效
雖然PVST+模擬機制在MST和PVST+之間提供了簡單無縫的互操作性,但此機制意味著除上述兩種配置以外的任何配置都是無效的。以下是成功進行MST和PVST+互動必須遵循的基本規則:
-
如果MST網橋是根,則此網橋必須是所有VLAN的根。
-
如果PVST+網橋是根,則此網橋必須是所有VLAN的根(包括CST,當CST運行PVST+時,CST始終在VLAN 1上運行,無論本地VLAN如何)。
-
如果MST網橋是CST的根,而PVST+網橋是一個或多個其他VLAN的根,則模擬將失敗並生成錯誤消息。失敗的模擬會將邊界埠置於根不一致模式。
失敗的模擬將邊界埠置於根不一致模式
在此圖中,MST區域中的網橋A是所有三個PVST+例項的根,但一個PVST+例項除外(紅色VLAN)。網橋C是紅色VLAN的根。假設在紅色VLAN上建立的環路(網橋C是根)被網橋B阻塞。這表示網橋B已指定給除紅色的VLAN以外的所有VLAN。MST區域無法執行此操作。邊界埠只能阻塞或轉發所有VLAN,因為MST區域只運行一個與外部世界的生成樹。因此,當網橋B在其邊界埠上檢測到更好的BPDU時,網橋會呼叫BPDU防護來阻塞此埠。埠處於根不一致模式。完全相同的機制也導致網橋A阻塞其邊界埠。連線會丟失;但是,即使存在此類配置錯誤,無環拓撲也會保留。
註:一旦邊界埠產生根不一致錯誤,請檢查PVST+網橋是否嘗試成為某些VLAN的根。
遷移策略
遷移到802.1s/w的第一步是正確識別點對點和邊緣埠。確保需要快速轉換的所有交換機到交換機鏈路都是全雙工的。邊緣埠是通過PortFast功能定義的。仔細決定交換網路中需要多少例項,並牢記例項轉換為邏輯拓撲。決定要將哪些VLAN對映到這些例項,並為每個例項仔細選擇根和備份根。
選擇網路中的所有交換機可以共用的配置名稱和修訂版號。思科建議將儘可能多的交換機放置在單個區域中;將網路劃分為多個單獨的區域沒有任何好處。避免將任何VLAN對映到例項0。首先遷移核心。將STP型別更改為MST,然後向下轉到接入交換機。MST可以與按埠運行PVST+的傳統網橋互動,因此,如果可以清楚地瞭解互動,混合這兩種型別的網橋就不是問題。始終嘗試將CST和IST的根保留在區域內。如果通過中繼與PVST+網橋互動,請確保MST網橋是該中繼上允許的所有VLAN的根。
有關配置示例,請參閱:
結論
交換網路必須滿足嚴格的穩定性、恢復能力和高可用性要求。隨著IP語音(VoIP)和IP影片等新技術的出現,圍繞鏈路或元件故障的快速收斂不再是理想的特徵:必須實現快速收斂。但是,直到最近,冗餘交換網路不得不依賴相對緩慢的802.1d STP來實現這些目標。這經常成為挑戰網路管理員的任務。 離開協定幾秒的唯一方法是調整協定計時器,但常常會損害網路的健康狀況。Cisco發佈了許多802.1d STP增強功能,例如UplinkFast、BackboneFast和PortFast。這些功能為更快的生成樹收斂鋪平了道路。思科還回答了開發MISTP時大型第2層(L2)網路的可擴充性問題。IEEE最近決定將大多數這些概念納入兩個標準:802.1w(RSTP)和802.1s(MST)。通過實施這些新協定,您可以在數百毫秒內獲得收斂時間,同時擴展到數千個VLAN。思科始終是業界的領先者,提供這兩種協定以及專有增強功能,以促進傳統網橋的遷移以及與傳統網橋的互操作性。
相關資訊