CCIE試驗備考之交換STP(3)

第三部分  生成樹模式
部署VLAN使得一個重要決定是在交換機上使用哪種生成樹模式。STP模式決定了STP將如何與VLAN交互。缺省的Cisco STP模式下,每個VLAN定義一個STP。IEEE802.1Q標準是在整個交換VLAN網絡中使用一個STP,但不排除在每個VLAN中實現一個STP。
>> PVST、PVST+和單生成樹模式
公共生成樹(CST,Commone Spanning Tree)是在IEEE802.1Q標準中規定的。CST定義了一棵用於所有VLAN的生成樹,BPDU在VLAN1上傳遞。
按VLAN的生成樹(PVST,Per-VLAN Spanning tree)是Cisco專用的一種實現方式,需要使用ISL trunk封裝。在PVST中,每個VLAN一棵STP,能爲每個VLAN配置不同的根交換機,並配置第2層的負載均衡。
每個VLAN一棵生成數減少了每個STP重新計算時的恢復時間,並且在下述方面增強了網絡的可靠性:
* 減少整個生成樹拓撲的規模
* 提高擴展性,減少收斂時間
* 提供更快的恢復過程和更強的可靠性
每個VLAN一棵生成樹的缺點包括:
* 爲了維護多個VLAN的多顆生成樹,交換機的利用率(如CPU負載)會更高
* 爲了支持各個VLAN的BPDU,需要佔用更多的Trunk鏈路帶寬
爲了攜帶更多的信息,PVST BPDU的格式和STP/RSTP BPDU 格式已經不一樣,發送的目的地址也改成了Cisco保留地址01-00-0C-CC-CC-CD,而且在VLAN  Trunk的情況下PVST  BPDU被打上了 802.1Q  VLAN
標籤。所以,PVST協議並不兼容STP/RSTP協議。
PVST+是一種Cisco專用的STP模式,支持在相同網絡中同時存在CST和PVST。PVST+支持802.1Q trunk並且能將多棵生成樹映射成非Cisco的802.1Q交換機上的一棵生成樹。PVST+在交換劑802.1Q trunk上是自動啓動的。在PVST+中,如果交換機通過802.1Q trunk相連,則每個VLAN一棵STP。還支持在其運行的VLAN上提供2層的負載均衡。在網絡中,可以用VLAN來創建不同的邏輯拓撲結構,以保證所有的的鏈路都被使用,而不會出現一條鏈路過載的情況。
每個生成樹都有唯一的根交換機。根交換機負責向網絡中其他的交換機傳播與此VLAN相關的生成樹信息。因爲每個交換機對網絡的理解是相同的,所以這個過程維護了網絡拓撲
PVST+體系結構區分了3種類型的區域:
* PVST區域
* PVST+區域
* 單生成樹(MST,Mono Spanning tree)區域
單生成樹是非Cisco的802.1Q交換機使用的生成樹實現方法,一個STP負責所有VLAN的通信。
每個區域(Zone或region)都有同種類型的交換機組成。PVST區域和PVST+的連接可以通過連通兩個ISL接口實現。類似地,PVST+區域和MST區域的連接可以通過連通兩個802.1Q端口實現。注意,MST和PVST區域不能通過trunk鏈路連接。
 
在PVST區域和PVST+區域的分界處,生成樹的映射是一對一的。在MST區域和PVST+區域的分界處,MST區域的生成樹映射到PVST+區域的一個PVST上。這個PVST就是CST,缺省的CST是VLAN1。
所有的PVST,除了CST都是通過隧道穿越MST區域的。隧道(Tunneling)意味着BPDU沿着MST區域內當別的單棵生成樹,在整個MST區域內泛洪。
>> MISTP模式
MISTP 模式是在一些 Catalyst 交換機上 Cisco 私有的一種MST實現,能在一棵生成樹實例下將VLAN進行分組。MISTP綜合了PVST+支持2層負載均衡的優點和IEEE 802.1Q低CPU負載的特點。
MISTP是一種可選的運行在交換機4000和交換機6000系列上的STP模式。多實例生成樹協議是通過一組網橋參數和端口參數定義的虛擬的邏輯拓撲結構。簡單的說,STP/RSTP 是基於端口的,PVST/PVST+是基於 VLAN 的,而 MISTP 就是基於實例的。所謂實例就是多個VLAN的一個集合,通過多個VLAN捆綁到一個實例中去的方法可以節省通信開銷和資源佔用率。如果將VLAN映射到MISTP上,這個MISTP實例就變成了真正的拓撲結構。每個MISTP實例都有自己的根交換機和各自的轉發狀態鏈路組(也就是說,不同的網橋參數和端口參數)。根交換機負責向網絡中所有其他交換機傳播與此MISTP實例相關的信息。
在使用的時候可以把多個相同拓撲結構的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的大範圍應用。
>> MST多生成樹模式(Multiple Spanning Tree)
多生成樹協議MSTP(Multiple Spanning Tree Protocol)是IEEE 802.1s中定義的一種新型多實例化生成樹協議。這個協議目前仍然在不斷優化過程中,現在只有草案(Draft)版本可以 Cisco 已經在CatOS 7.1 版本 MSTP的支持,華爲公司的三層交換機產品Quidway系列交換機也即將推出支持MSTP協議的新版本MSTP 協議精妙的地方在於把支持 MSTP 的交換機和不支持 MSTP 交換機劃分成不同的區域,分別
稱作 MST 域和 SST 域。在 MST 域內部運行多實例化的生成樹,在 MST 域的邊緣運行 RSTP 兼容的內部生成樹MST(Internal Spanning Tree)。
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標準協議,推廣的阻力相對小得多。 MISTP就是Cisco對MST的私有實現:
 
快速生成樹RSTP(Rapid Spanning Tree)

生成樹協議IEEE 802.1d雖可在50秒內恢復連接,但已不能滿足現代交換式網絡和應用的需要,在 802.1w中定義的RSTP協議可解決802.1d的自恢復問題。快速生成樹協議(RSTP)是從生成樹算法的基礎上發展而來的,通過配置消息來傳遞生成樹信息,並通過優先級比較來進行計算。快速生成樹能夠完成生成樹的所有功能,優異之處在於快速生成樹減小了端口從阻塞到轉發的延時,快速恢復網絡的正常工作狀態。它採用橋-橋握手機制,並不採用802.1d中根橋所指定的計時器。
快速生成樹協議與生成樹協議的區別不少:如端口狀態遷移方式不同;配置消息的格式不同;拓樸改變消息的傳播方式不同。
RSTP和802.1D狀態對比
 
     802.1D的禁用、阻塞和監聽狀態在802.1W中合併爲一種丟棄狀態,如上表
     能夠快速進入到轉發狀態是802.1W引入的最重要特性。傳統的生成樹算法在將一個端口轉入到轉發狀態是在被動地等待網絡拓撲收斂。爲達到快速收斂要做的就是調整那些保守的默認參數(轉發延遲和最大生存時間),這經常以網絡穩定性爲賭注的。RSTP可以主動地區確認一個端口是否可以安全進入轉發狀態而不依賴於任何定時器配置。RSTP在兩個遵守RSTP的網橋之間提供一種實時的反饋機制。爲讓一個端口快速收斂,協議依賴兩個新的參數---邊緣端口和鏈路類型。
     RSTP的邊緣端口(edge port)基本上相當於PortFast特性,不同的是邊緣端口收到了一個BPDU後,立即離開邊緣端口狀態成爲一個正常的生成樹端口。此刻,邊緣端口狀態有一個用戶配置值和一個運行值。
    RSTP鏈路類型(點對點或共享),只有在邊緣端口上和點對點鏈路上能快速進入轉發狀態。鏈路類型是自動來源於端口的雙工模式。一個運行於全雙工模式的端口被假設爲點對點的,然而一個半雙工端口就被默認爲共享端口。這種自動鏈路類型設置可以免去詳細的配置。
RSTP端口角色
除了對根端口和802.1d中的指定端口進行了定義之外,但阻塞端口角色現在被分爲備份和替代端口角社。備份端口,指定端口向生成樹提供的路徑備份。替代端口,爲當前根端口所提供的根橋提供了替代路徑。RSTP中新定義的端口作用使替代端口可以進行快速轉換,能轉發根端口的故障。
     與標準的STP中一樣,網橋上收到最佳BPDU的端口成爲根端口。這是按照路徑開銷最接近根網橋的端口,如上圖。
    如果一個端口能發送最佳BPDU到其所連接的網段上,該端口被認爲是一個指定端口。和802.1D一樣,網橋通過連接不同的網段創建一個橋接域。一個給定網段只能有一個路徑到根交換機。多條路徑將在網絡中產生一個環。
   替代端口和備份端口角色相當於802.1D的阻塞狀態。沒有成爲指定端口或者根端口的端口被定義爲阻塞端口。阻塞端口收到比從這個網橋上發送出去更有用的BPDU。記住一個端口一定需要接收BPDU才能停留在阻塞狀態。替代端口指該端口是因爲從其他網橋收到了更有用的BPDU才處於阻塞狀態。
    備份端口是因爲從同一網橋收到更有用的BPDU而處於阻塞狀態的端口(如上圖)。
RSTP定時器
RSTP 旨在儘快地將根端口和指定端口轉成轉發狀態,以及將替代和備份端口轉成阻塞狀態。爲防止生成轉發環路, RSTP 在網橋間採用了明確的“握手”功能,以確保端口作用在網絡中分配的一致性。
下圖介紹了將端口轉換成轉發前達成的協定 / 建議握手。當鏈接激活時,“P1”和“P2”都成爲處於放棄狀態的指定端口。
 
在這種情況下,“ P1 ”將向交換機 A 發送一個建議 BPDU 。收到新 BPDU 後,交換機 A 將確認根交換機有較優根成本。因爲 BPDU 包含較高的根優先級,交換機 A 在將新的根端口“ P2 ”轉入轉發狀態前,會先啓動同步機制。如果一個端口處於阻塞狀態或是一個邊緣端口(位於網橋 LAN 邊緣或連接到終端工作站),該端口與根信息同步。
端口 3 (“ P3 ”)已滿足上述要求,因爲它已經是阻塞的。因此,不會對該端口採取任何行動。但是,“ P4 ”是一種指定端口,需要阻塞。一旦交換機 A 上的所有接口處於同步狀態,“ P2 ”就會承認從前從根接收的建議,並可以安全地轉入轉發狀態。在收到交換機 A 的認可後,根交換機將立即將“ P1 ”轉入轉發。建議 / 協定信息的類似傳送波將從“ P4 ”傳播至網絡枝葉部分。
由於這種握手機制不依賴計時器,因此它可以快速地傳播至網絡邊緣,並在拓撲結構變更後迅速恢復連接。如果協定並未複製建議信息,端口會轉換成 802.1D 模式,並通過傳統聽學順序轉入轉發狀態。需要說明的是, 802.1w 協議只適用於點到點鏈接。在媒體共享的情況下, 802.1w 協議將轉換成 802.1D 運行。
UplinkFast RSTP
Uplinkfast是IEEE對cisco私有的Uplinkfast機制的擴展,他不需要像cisco那樣清空CAM表的所有條目,而只需要清空上游交換機中的CAM表部分條目即可,此時也不需要UplinkFast的僞多播分組生成過程。
邊緣端口
邊緣端口類似於以前Cisco實現的PortFast功能。新的根端口從阻塞到轉發的實現:原有根端口已經知道自己不再是根端口了,進入阻塞狀態。新的根端口連接的網段的指定端口處於轉發狀態,這個新的根端口就可以無延時地進入轉發狀態。非邊緣指定端口從阻塞到轉發:此個端口連接着其他網橋。等待進入轉發狀態的指定端口向下遊網橋發送一個握手請求報文,若下游的網橋響應了,則這個指定端口就可以無延時地進入轉發狀態。 邊緣端口從阻塞到轉發:邊緣端口直接和終端設備相連,不再連接任何網橋的端口。網橋啓動後這些端口即無延時地快速進入轉發狀態。
RSTP拓撲變化
RSTP拓撲變化僅在邊緣端口進入轉發狀態纔會導致。當RSTP網橋檢測到拓撲變化,會發生下列事件:
l 如果必要,RSTP網橋可以對其所有的非邊緣指定端口和根端口上啓動一個TC當型定時器(TC while timer),其時間是2倍的Hello-time
l RSTP網橋刷新所有與這些端口相關的MAC。
l 只要在端口上運行TC while定時器期間,該端口發送TC位被置位的BPDU,該定時器激活期間根端口也發送BPDU
RSTP的拓撲變化擴散處理與STP不同,當一個網橋從鄰居受到一個TC位置位的BPDU的時候,發生下列事件:
l 網橋清除從其他所有端口上學習到的MAC地址(收到拓撲變化的端口除外)
l 網橋在所有指定端口和根端口上啓動TC While定時器併發送TC位置位的BPDU(RSTP不再使用老式的TCN BPDU,除非有老式網橋需要被通告)
 
RSTP BPDU格式
RSTP在BPDU格式中引入了一些新變化。
 
位 含義
---------------------------------
0 拓撲變化Topology Change
1 建議
2-3 端口角色:  00:未知端口  01:替代端口  10:根端口  11:指定端口
4 學習
5 轉發
6 協商
7 拓撲變化確認ACK
802.1w中網橋每隔hello時間(默認爲2秒)發送一個攜帶當前信息的BPSU,即使他沒有從根網橋收到任何BPDU。在一個指定端口上,如果在3個連續週期內沒有收到hello(或者最大生存時間超時),協議信息立即超時。因爲前面提到的協議修改,BPDU現在在網橋之間用來作爲保持活動(keepalive)機制。一個網橋如果已經連續錯過了3個BPDU,就認爲自己已經丟失了到直連鄰接根或指定網橋的連接。這種信息的快速老化使得錯誤可以被快速檢測。如果一個網橋從鄰居接收BPDU失敗,他就能確定到鄰居的連接丟失,這和802.1d相反,802.1d在根的路徑中的任何一個地方都會出現問題。
     當一個網橋從它的指定或者根交換機上收到次級信息,就會立即接受它,並替代先前存儲的。
 
配置MST
啓用RSTP和MSTP
4) 進入全局模式  configure terminal
5) 進入mst配置模式
   spanning-tree mst configuration
3) 映射vlan到mst實例
   instance 實例號 vlan vlan範圍
   實例號:取值爲0-4094
4) 配置名稱
   name 名稱
5) 配置mst版本號
   revision 版本號
版本號:取值爲0-65535
6) 顯示pending狀態
   show pending
案例:
switch(config)#spanning-tree mode mst
switch(config)#spanning-tree mst configuration
switch(config-mst)#instance 1 vlan 20 -30
switch(config-mst)#name test1
Switch(config-mst)#show current
Current MST configuration
Name      [test1]
Revision  0
Instance  Vlans mapped
--------  -----------------------------------------------------------------
0         1-19,31-4094
1         20-30
----------------------------------------------------------------------------
Switch(config-mst)#show pending
Pending MST configuration
Name      [test1]
Revision  0
Instance  Vlans mapped
--------  -----------------------------------------------------------------
0         1-19,31-4094
1         20-30
----------------------------------------------------------------------------
switch#show spanning-tree mst
###### MST00        vlans mapped:   1-19,31-4094
Bridge      address 000d.6564.0280  priority  32768 (32768 sysid 0)
Root        this switch for CST and IST
Configured  hello time 2, forward delay 15, max age 20, max hops 20
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/2            Desg FWD 2000000   128.2    Edge Shr
Fa0/3            Desg FWD 2000000   128.3    Shr
Fa0/4            Desg FWD 2000000   128.4    Shr
Fa0/18           Desg FWD 200000    128.18   P2p
Fa0/21           Desg FWD 200000    128.21   P2p
Fa0/23           Desg FWD 200000    128.23   P2p Bound(PVST)
Fa0/24           Desg FWD 200000    128.24   P2p Bound(PVST)
###### MST01        vlans mapped:   20-30
Bridge      address 000d.6564.0280  priority  32769 (32768 sysid 1)
Root        this switch for MST01
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23           Boun FWD 200000    128.23   P2p Bound(PVST)
Fa0/24           Boun FWD 200000    128.24   P2p Bound(PVST)
配置MST的根交換機
配置過程:
1) 進入全局模式  configure terminal
2) 配置MST根交換機
    spanning-tree mst 實例號 root primary
案例:
switch(config)#spanning-tree mst 1 root primary
Switch#show span mst 1
###### MST01        vlans mapped:   20-30
Bridge      address 000d.6564.0280  priority  24577 (24576 sysid 1)
Root        this switch for MST01
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23           Boun FWD 200000    128.23   P2p Bound(PVST)
Fa0/24           Boun FWD 200000    128.24   P2p Bound(PVST)
交換機優先級
配置過程:
1) 進入全局模式  configure terminal
2) 修改交換機的優先級
   spanning-tree mst 1 priority 優先級
   優先級:取值爲0-61440,優先級爲4096的倍數
案例:
Switch(config)#spanning-tree mst 1 priority 36864
Switch#show spanning-tree mst 1
###### MST01        vlans mapped:   20-30
Bridge      address 000d.6564.0280  priority  36865 (36864 sysid 1)
Root        this switch for MST01
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23           Boun FWD 200000    128.23   P2p Bound(PVST)
Fa0/24           Boun FWD 200000    128.24   P2p Bound(PVST)

配置MST的開銷
1) 進入全局模式  configure terminal
2) 進入接口模式  interface 接口
3) 配置端口的MST開銷
    spanning-tree mst 實例號 cost 成本
案例:
sw2(config)#show span mst 1
###### MST01        vlans mapped:   20-30
Bridge      address 000b.5f2c.2080  priority  32769 (32768 sysid 1)
Root        this switch for MST01
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23           Desg FWD 200000    128.23   P2p
Fa0/24           Desg FWD 200000    128.24   P2p
Sw2(config)#interface f0/23
sw2(config-if)#span mst 1 cost 20000
sw2(config-if)#do show span mst 1
###### MST01        vlans mapped:   20-30
Bridge      address 000b.5f2c.2080  priority  32769 (32768 sysid 1)
Root        this switch for MST01
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23           Desg FWD 200000    128.23   P2p
Fa0/24           Desg FWD 20000     128.24   P2p

端口優先級
配置過程:
1) 進入全局模式  configure terminal
2) 進入接口模式  interface 接口
3) 配置端口的優先級
    spanning-tree mst 實例號 port-priority 優先級
   優先級默認爲128
案例:
sw2(config)#interface f0/24
sw2(config-if)#spann mst 1 port-priority 64
sw2(config-if)#end
sw2#show spanning mst 1
###### MST01        vlans mapped:   20-30
Bridge      address 000b.5f2c.2080  priority  32769 (32768 sysid 1)
Root        this switch for MST01
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23           Desg FWD 200000    128.23   P2p
Fa0/24           Desg FWD 20000      64.24   P2p
修改時間器
sw2(config)#spann mst hello-time ?
  <1-10>  number of seconds between generation of config BPDUs
sw2(config)#span mst forward-time ?
  <4-30>  number of seconds for the forward delay timer
sw2(config)#span mst max-age ?
  <6-40>  maximum number of seconds the information in a BPDU is valid
sw2#show span mst
###### MST00        vlans mapped:   1-19,31-4094
Bridge      address 000b.5f2c.2080  priority  32768 (32768 sysid 0)
Root        this switch for CST and IST
Configured  hello time 1, forward delay 15, max age 20, max hops 20
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23           Desg FWD 200000    128.23   P2p
Fa0/24           Desg FWD 200000    128.24   P2p
案例:
CCIE-LAB(V160)
題目要求:
在SW1、SW2、SW3上配置MST,要求偶數VLAN加入實例1,奇數VLAN加入實例2
配置:
SW1
   config terminal
   spanning-tree mode mst
   spanning-tree mst configuration
      instance 1 vlan 20,40,60
      instance 2 vlan 30,50,70
      name cisco
      revision 1
sw2
   config terminal
   spanning-tree mode mst
   spanning-tree mst configuration
     instance 1 vlan 20,40,60
     instance 2 vlan 30,50,70
     name cisco
     revision 1
SW3
   config terminal
   spanning-tree mode mst
   spanning-tree mst configuration
      instance 1 vlan 20,40,60
     instance 2 vlan 30,50,70
     name cisco
     revision 1
案例:
CCIE-LAB(V210)
題目要求:
配置sw1上的生成樹MST,要求將除了vlan_BBX的vlan定義在實例1,vlan_BBx定義在實例2,並將實例2作爲根。
Vlan 30  name vlan30
Vlan 31  name vlan31
Vlan 33  name vlan33
Vlan 44  name vlan44
Vlan 50  name vlan50
Vlan 60  name vlan60
Vlan 100 name vlan_BB1
Vlan 200 name vlan_BB2
Vlan 300 name vlan_BB3
配置:
sw1
   configure terminal
   spanning-tree mode mst
   spanning-tree mst configuration
instance 1 vlan 30,31,33,44,50,60
instance 2 vlan 100,200,300
name cisco
revision 1
   spanning mst 2 root primary
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章