1. 程式人生 > >STP/RSTP/MSTP經典分析與對比

STP/RSTP/MSTP經典分析與對比

當前和STP相關的協議有:IEEE 802.1D(STP),802.1W(RSTP),802.1(MSTP)。其中802.1D是最早關於STP的標準。RSTP(Rapid Spanning Tree Protocol)是STP的擴充套件,其主要特點是增加了埠狀態快速切換的機制,能夠實現網路拓撲的快速轉換。MSTP(Multiple Spanning Tree Protocol)提出了多生成樹的概念,可以把不同的vlan對映到不同的生成樹,從而達到網路負載均衡的目的。 

  可見,RSTP協議相對於STP協議的確改進了很多。為了支援這些改進,BPDU的格式做了一些修改,但RSTP協議仍然向下相容STP協議,可以混合組網。雖然如此,RSTP和STP一樣同屬於單生成樹SST(Single Spanning Tree),有它自身的諸多缺陷,主要表現在三個方面。

  第一點缺陷:由於整個交換網路只有一棵生成樹,在網路規模比較大的時候會導致較長的收斂時間,拓撲改變的影響面也較大。 

  第二點缺陷:近些年IEEE 802.1Q大行其道,逐漸成為交換機的標準協議。在網路結構對稱的情況下,單生成樹也沒什麼大礙。但是,在網路結構不對稱的時候,單生成樹就會影響網路的連通性。 

圖3 非對稱網路示意圖

  圖3中假設SW1是根橋,實線鏈路是VLAN 10,虛線鏈路是802.1Q的Trunk鏈路,Trunk了VLAN 10 VLAN 20。當SW2的Trunk埠被阻塞的時候,顯然SW1和SW2之間VLAN 20的通路就被切斷了。

  第三點缺陷:當鏈路被阻塞後將不承載任何流量,造成了頻寬的極大浪費,這在環行都會網路的情況下比較明顯。

圖4 SST頻寬利用率低下示意圖

  圖4中假設SW1是根橋,SW4的一個埠被阻塞。在這種情況下,SW2和SW4之間鋪設的光纖將不承載任何流量,所有SW2和SW4之間的業務流量都將經過SW1和SW3轉發,增加了其他幾條鏈路的負擔。

  這些缺陷都是單生成樹SST無法克服的,於是支援VLAN的多生成樹協議出現了。

聰明伶俐的第二代生成樹協議:

  每個VLAN都生成一棵樹是一種比較直接,而且最簡單的解決方法。它能夠保證每一個VLAN都不存在環路。但是由於種種原因,以這種方式工作的生成樹協議並沒有形成標準,而是各個廠商各有一套,尤其是以Cisco的VLAN生成樹PVST(Per VLAN Spanning Tree)為代表。

  為了攜帶更多的資訊,PVST BPDU的格式和STP/RSTP BPDU格式已經不一樣,傳送的目的地址也改成了Cisco保留地址01-00-0C-CC-CC-CD,而且在VLAN Trunk的情況下PVST BPDU被打上了802.1Q VLAN標籤。所以,PVST協議並不相容STP/RSTP協議。

  Cisco很快又推出了經過改進的PVST+協議,併成為了交換機產品的預設生成樹協議。經過改進的PVST+協議在VLAN 1上執行的是普通STP協議,在其他VLAN上執行PVST協議。PVST+協議可以與STP/RSTP互通,在VLAN 1上生成樹狀態按照STP協議計算。在其他VLAN上,普通交換機只會把PVST BPDU當作多播報文按照VLAN號進行轉發。但這並不影響環路的消除,只是有可能VLAN 1和其他VLAN的根橋狀態可能不一致。

圖5 PVST+與SST對接示意圖

  圖5中所有鏈路預設VLAN是VLAN 1,並且都Trunk了VLAN 10和VLAN 20。SW1和SW3執行單生成樹SST協議,而SW2執行PVST+協議。在VLAN 1上,可能SW1是根橋,SW2的埠1被阻塞。在VLAN 10和VLAN 20上,SW2只能看到自己的PVST BPDU,所以在這兩個VLAN上它認為自己是根橋。VLAN 10和VLAN 20的PVST BPDU會被SW1和SW3轉發,所以SW2檢測到這種環路後,會在埠2上阻塞VLAN 10和VLAN 20。這就是PVST+協議提供的STP/RSTP相容性。可以看出,網路中的二層環路能夠被識別並消除,強求根橋的一致性是沒有任何意義的。

  由於每個VLAN都有一棵獨立的生成樹,單生成樹的種種缺陷都被克服了。同時,PVST帶來了新的好處,那就是二層負載均衡。

圖6 PVST+負載均衡示意圖

  圖6中四臺裝置都執行PVST+協議,並且都Trunk了VLAN 10和VLAN 20。假設SW1是所有VLAN的根橋,通過配置可以使得SW4埠1上的VLAN 10和埠2上的VLAN 20阻塞,SW4的埠1所在鏈路仍然可以承載VLAN 20的流量,埠2所在鏈路也可以承載VLAN 10的流量,同時具備鏈路備份的功能。這在以往的單生成樹情況下是無法實現的。

  聰明伶俐的PVST/PVST+協議實現了VLAN認知能力和負載均衡能力,但是新技術也帶來了新問題,PVST/PVST+協議也有它們的“難言之隱”。  

第一點缺陷:由於每個VLAN都需要生成一棵樹,PVST BPDU的通訊量將正比於Trunk的VLAN個數。  

第二點缺陷:在VLAN個數比較多的時候,維護多棵生成樹的計算量和資源佔用量將急劇增長。特別是當Trunk了很多VLAN的介面狀態變化的時候,所有生成樹的狀態都要重新計算,CPU將不堪重負。所以,Cisco交換機限制了VLAN的使用個數,同時不建議在一個埠上Trunk很多VLAN。  

第三點缺陷:由於協議的私有性,PVST/PVST+不能像STP/RSTP一樣得到廣泛的支援,不同廠家的裝置並不能在這種模式下直接互通,只能通過一些變通的方式實現,例如Foundry的IronSpan。IronSpan預設情況下執行的是STP協議,當某個埠收到PVST BPDU時,該埠的生成樹模式會自動切換成PVST/PVST+相容模式。)

  一般情況下,網路的拓撲結構不會頻繁變化,所以PVST/PVST+的這些缺點並不會很致命。但是,埠Trunk大量VLAN這種需求還是存在的。於是,Cisco對PVST/PVST+又做了新的改進,推出了多例項化的MISTP協議。 

多例項化的第三代生成樹協議:MISTP/MSTP

  多例項生成樹協議MISTP(Multi-Instance Spanning Tree Protocol)定義了“例項”(Instance)的概念。簡單的說,STP/RSTP是基於埠的,PVST/PVST+是基於VLAN的,而MISTP就是基於例項的。所謂例項就是多個VLAN的一個集合,通過多個VLAN捆綁到一個例項中去的方法可以節省通訊開銷和資源佔用率。

  在使用的時候可以把多個相同拓撲結構的VLAN對映到一個例項裡,這些VLAN在埠上轉發狀態將取決於對應例項在MISTP裡的狀態。值得注意的是網路裡的所有交換機的VLAN和例項對映關係必須都一致,否則會影響網路連通性。為了檢測這種錯誤,MISTP BPDU裡除了攜帶例項號以外,還要攜帶例項對應的VLAN關係等資訊。MISTP協議不處理STP/RSTP/PVST BPDU,所以不能相容STP/RSTP協議,甚至不能向下相容PVST/PVST+協議,在一起組網的時候會出現環路。為了讓網路能夠平滑地從PVST+模式遷移到MISTP模式,Cisco在交換機產品裡又做了一個可以處理PVST BPDU的混合模式MISTP-PVST+。網路升級的時候需要先把裝置都設定成MISTP-PVST+模式,然後再全部設定成MISTP模式。

  MISTP帶來的好處是顯而易見的。它既有PVST的VLAN認知能力和負載均衡能力,又擁有可以和SST媲美的低CPU佔用率。不過,極差的向下相容性和協議的私有性阻擋了MISTP的大範圍應用。

  多生成樹協議MSTP(Multiple Spanning Tree Protocol)是IEEE 802.1s中定義的一種新型多例項化生成樹協議。這個協議目前仍然在不斷優化過程中,現在只有草案(Draft)版本可以獲得。不過Cisco已經在CatOS 7.1版本里增加了MSTP的支援,華為公司的三層交換機產品Quidway系列交換機也即將推出支援MSTP協議的新版本。

  MSTP協議精妙的地方在於把支援MSTP的交換機和不支援MSTP交換機劃分成不同的區域,分別稱作MST域和SST域。在MST域內部執行多例項化的生成樹,在MST域的邊緣執行RSTP相容的內部生成樹IST(Internal Spanning Tree)。

圖7 MSTP工作原理示意圖

  圖7中間的MST域內的交換機間使用MSTP BPDU交換拓撲資訊, SST域內的交換機使用STP/RSTP/PVST+ BPDU交換拓撲資訊。在MST域與SST域之間的邊緣上,SST裝置會認為對接的裝置也是一臺RSTP裝置。而MST裝置在邊緣埠上的狀態將取決於內部生成樹的狀態,也就是說埠上所有VLAN的生成樹狀態將保持一致。

  MSTP裝置內部需要維護的生成樹包括若干個內部生成樹IST,個數和連線了多少個SST域有關。另外,還有若干個多生成樹例項MSTI(Multiple Spanning Tree Instance)確定的MSTP生成樹,個數由配置了多少個例項決定。) 

  MSTP相對於之前的種種生成樹協議而言,優勢非常明顯。MSTP具有VLAN認知能力,可以實現負載均衡,可以實現類似RSTP的埠狀態快速切換,可以捆綁多個VLAN到一個例項中以降低資源佔用率。最難能可貴的是MSTP可以很好地向下相容STP/RSTP協議。而且,MSTP是IEEE標準協議,推廣的阻力相對小得多。 

  可見,各項全能的MSTP協議能夠成為當今生成樹發展的一致方向是當之無愧的。

生成樹協議的未來之路 

  任何技術的發展都不會因為某項“理想”技術的出現而停滯,生成樹協議的發展歷程本身就說明了這一點。隨著應用的深入,各種新的二層隧道技術不斷湧現,例如Cisco的802.1Q Tunneling,華為Quidway S8016的QinQ,以及基於MPLS的二層VPN技術等。在這種新形勢下,使用者和服務提供商對生成樹協議又會有新的需求。生成樹協議該往何處走?這個問題雖然現在還沒有一個統一的答案,但是各廠商已經開始了這方面的積極探索。也許不久的將來,支援二層隧道技術的生成樹協議將成為交換機的標準協議。