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

第一部分 STP基礎
STP概述
生成樹協議(STP,Spanning-Tree Protocol)是一種2層協議,通過一種專用的算法來發現網絡中的物理環路併產生一個邏輯的無環(loop-free)拓撲結構。
   STP生成了一個無環的樹形結構,包括可以在整個2層網絡範圍內擴展的葉和枝。
 
如上圖這樣一個高冗餘度的網絡,如果沒有 STP 的存在,將會產生大量的廣播環路,嚴重影響性能。生成樹協議和其他協議一樣,是隨着網絡的不斷髮展而不斷更新換代的。在生成樹協議發展過程中,老的缺陷不斷被克服,新的特性不斷被開發出來。
l 廣播環路
當主機 A 發送一個目的地址爲 FF-FF-FF-FF-FF-FF 的廣播幀時,該 frame 將傳至 CAT-1 和 CAT-2,當達到CAT-1 的端口1/1時,CAT-1按照標準透明橋接算法將數據幀從除去入端口,將其泛洪到其他每個端口,包括 CAT-1的1/2端口,從端口1/2發出的數據幀會到達下方以太網中的所有節點,包括CAT-2的端口1/2。同樣CAT-2也做這樣的處理,此後廣播報文就會在CAT-1和CAT-2之間的鏈路成幾何級數的增長。
 
廣播環路比路由環路更危險,在以太網幀結構只包含兩個MAC地址、一個類型字段和一個循環冗餘校驗(CRC),並將網絡層的包作爲數據部分的內容,它沒有像路由器那樣,存在一個 TTL 域,對於一個路由環路而言,一個報文跳過 255 條後,就會被丟棄。而廣播路由環路的報文將永遠不會被丟棄。同時反覆廣播,其報文數量呈幾何級數增長。
 
* 橋接表受損
除了廣播風暴外,單播幀也會引起網絡瓶頸。當主機A 此前已經擁有一條主機B的 ARP條目,希望ping主機B,但主機B臨時從網絡移除,並且交換機上相應於B的橋接表項已經被刪除。假定任何一個交換機都沒有運行STP,則當幀到達CAT-1 1/1後,CAT-1找不到目的地址,則CAT-1 1/2產生泛洪,同時CAT-2收到後,將主機A的位置改變到一個錯誤的端口上。此後幀還沿反方向循環。在端口1/1和1/2之間反覆改變,導致CPU負載極大。
 
生成樹算法
算法(algorithm)就是一個公式或者解決特定問題的一組步驟。算法通常依賴於一組規則,有明確的開始和結束。
l*網橋ID
STP的特徵就是生成樹算法。生成樹算法是根據一組參數來進行判別。網橋ID(BID,Bridge ID)是一個8字節的字段,包含一個數字有序對,如圖,頭2個字節的十進制數成爲網橋優先級(Bridge Priority),後6字節是MAC地址(16進制)。
 
網橋優先級是一個用來衡量網橋在生成樹算法中優先權的十進制數,2的16次方,取值爲0-65535。缺省值爲32768。
BID的MAC地址是交換機的MAC地址之一。每個交換機都有一個MAC地址池,每個STP實例使用一個,作爲按VLAN生成樹實例(每個VLAN一棵)的BID。
具體算法:
BID 的比較方式如下,假設(s,t)和(u,v)分別爲兩個 BID,數對中的第一個值爲優先級,第二個爲MAC地址,則比較規則如下:
If    s < u    then    ( s,t ) < ( u,v )
If    ( s = u )&&( t < v )    then    ( s,t ) < ( u,v )
BID值越小的網橋,其優先級越高
*路徑開銷
路徑開銷用來衡量網橋之間距離的一種方式。路徑開銷是兩個網橋間某條路徑上所有鏈路開銷的總和,IEEE 802.1D最初定義鏈路開銷是使用1000Mbit/s 除以Mbit/s爲單位的鏈路帶寬。例如10BASE-T鏈路的開銷爲 100,快速以太網和 FDDI 爲 10。隨着 Gbit/s 以太網和其它高速技術的出現,反映了該定義的一些缺陷。
鏈路開銷使用整數存儲,爲了解決高帶寬網絡按原有標準計算出現小數的問題(10Gbit/s  按原標準爲0.1)。IEEE改變了原有的反比例模型,按如下2種方式定義新的鏈路開銷。
 
1Gbit/s的CatOS系統使用短整型,10Gbit/s帶寬以上的CatOS和新版的IOS使用長整形
 
*端口ID
端口ID(PID,Port ID),用來確定到根交換機的路徑。由16bit的子串決定,其中包括6bit的端口優先級和10bit的端口號。基於IOS交換機,兩部分都是8位。
 
端口優先級是一個可配置的STP參數。在CatOS交換機上,端口優先級的十進制取值範圍是0-63,默認爲32。基於IOS的交換機上,端口優先級的十進制取值範圍是0-255,默認值爲128。

具體算法:
Port ID的比較方式如下,假設(s,t)和(u,v)分別爲兩個Port ID,數對中的第一個值爲端口優先級,         
第二個值爲MAC 地址,則比較規則如下
If    s < u    then    ( s,t ) < ( u,v )
If    ( s = u )&&( t < v )    then    ( s,t ) < ( u,v )
PID越小的端口優先級越高
案例:
sw2#show spanning-tree interface fa 0/3 detail
    Port 23 (FastEthernet0/23) of VLAN0001 is forwarding  
    Port path cost 100, Port priority 128, Port Identifier 128.23.
    Designated root has priority 32769, address 0008.2059.9e40
    Designated bridge has priority 32769, address 0009.4376.2300
    Designated port id is 128.3, designated path cost 19
    Timers: message age 0, forward delay 0, hold 0
    Number of transitions to forwarding state: 1
    Link type is shared by default
    BPDU: sent 238527, received 0
PID中端口號定義採用數字編號的方式,一般 基於IOS的交換機上端口號空間爲256 個端口。例如slot 0上的2 3 號口,其端口號爲23,則Port ID如上所示爲  128.23
 
STP過程
* STP判定和BPDU交換
Spanning-tree算法主要依靠BID,路徑開銷和端口 ID,在創建一個無環路的拓撲時,STP執行如下 4 個步驟:
1. 選取根交換機
2. 計算到根交換機的最小路徑開銷
3. 確定最小發送者BID
4. 確定最小的端口ID
爲做出最佳判決,STP需要保證所有參與的網橋都獲得正確的信息,網橋間的信息交互採用網橋協議數據單元(BPDU)的基於 2層的frame 來傳遞STP信息。網橋通過如上4 步來選擇每個端口上所看到的“最佳 BPDU”網橋會村除從每個端口收到的最佳BPDU。在判定最優時,網橋會比較在此端口上收到的所有BPDU,以及會此端口上發送的BPDU。每收到一個BPDU,網橋都會根據4步過程進行檢查,以判定是否比目前保存的此端口的最佳BPDU更好,如果有新的BPDU(或者本地生成的BPDU)更好,就會替換舊值。
當一個網橋被激活後,其所有的端口每隔2s(默認hello時間)發送一次BPDU報文 。如果收到其它端口比自己更好的BPDU,則本 BPDU。如果20s(默認最大時間Max Age)的時間沒有從鄰居收到更好的BPDU,則本地端口將重新發送BPDU。最大生存時間是最佳BPDU超時的時間。
 
*STP收斂的步驟
生成樹算法比較複雜,其收斂於一個無拓撲的初始過程包含
1. 選舉根交換機(Root Bridge)
2. 選舉根端口(Root Ports)
3. 選舉指定端口(Designated Ports)
在網絡第1次“初始”的時候,所有的網橋都會泛洪混合的 BPDU 信息。網橋開始執行前面討論過的STP 4個判斷過程。使得網橋追蹤到一組BPDU,形成整個網絡(Cisco 是一個vlan一個STP實例,故cisco的生成樹範圍定義在一個vlan中)。
I. 選舉根橋
STP要求每個網橋分配一個唯一的標識(BID),BID通常由優先級(2bytes)和網橋MAC地址(6bytes)構成。根據 IEEE802.1d 規定,優先級值爲 0-65535,缺省的優先級爲 32768(0x8000)。當交換機最初啓動時,它假定自己就是根交換機,併發送次優的 BPDU,當交換機接收到一個更低的 BID 時,它會把自己正在發送的BPDU的根BDI替換爲這個最低的根BID,所有的網橋都會接收到這些BPDU,並且判定具有最小BID 值的網橋作爲根網橋。
如下圖所示,假定 A,B的優先級均爲32,768,C 的優先級爲40,000。各個交換機如何知道哪個交換機的BID最小呢?這是通過交換BPDU實現的。BPDU是網橋之間用於交換生成樹信息的一種特殊的數據幀。
 
          根據選舉規則,選擇較小的優先級的交換機,則選擇出Cat-A和Cat-B。在A , B優先級相同的時候,查找最小的MAC地址AA-AA-AA-AA-AA-AA.於是Cat-A被選舉成爲根交換機.
 
BPDU的結構:
 
II. 選擇根端口
在選舉根橋結束後,將選舉根端口,一個網橋的根端口是按照路徑開銷最靠近根交換機的端口。  每一個非根交換機都將選出一個根端口。  根交換機每個接口均爲根端口。網橋還是使用開銷(cost)的概念來衡量接近程度。與某些路由協議的度量一樣,STP對接近程度的度量也不使用跳數,而是通過“根路徑開銷”---到達根橋的鏈路開銷之和來衡量。      
其選擇過程如下:
 
1) 根交換機Cat-A發送BPDU,他們所包含的根路徑開銷爲0,當Cat-B收到這些BPDU後,迅速將端口 1/1 的路徑開銷累加到所收到 BPDU 的根路徑開銷。假定爲FastEthernet,則加上端口1/1的開銷19,Cat-B 1/1  到根路徑的開銷爲  19。
2) Cat-B使用內部值19  ,並從端口1/2發送一個根路徑開銷爲19 的BPDU
3) 當Cat-C從Cat-B收到這些BPDU將計算自己到根網橋的開銷爲38(19+19)。
4) Cat-C也在1/1 上收到來自A 的BPDU。同時計算1/1到根網橋的開銷爲19。
5) 根據最靠近根橋原則,C選出根端口爲1/1。
6) Cat-C將繼續向下遊交換機公佈其到根端口的開銷爲19
III. 選擇指定端口
在橋接式的網絡中,每個網段都有一個指定端口。一個網段的指定端口(Designated Port)是連接到網段中的一個橋接端口,它既向根橋發送數據,也通過此網段從根橋接收數據。在選舉根端口的同時,基於到根網橋的的根路徑成本的累加值的指定端口選擇過程也在進行。包含某一網段的指定端口的網橋稱爲該網段的指定網根網橋的所有活動端口都成爲指定端口,指定端口的選擇也是基於到根橋的根路徑開銷。這條規則的例外是:當根網橋自身存在第一層物理環路的情況,例如:根網橋的兩個端口連接到了同一臺集線器上,或者兩個端口通過交叉線連接到了一起。
 
Segment  1 中,根交換機 Cat-A 上 1/1 的路徑開銷爲 0,Cat-B 上 1/1 的開銷爲 19。故 Cat-A 的 1/1爲指定端口。Segment  2 中,同樣 Cat-A 上的 1/2 被選舉爲指定端口。在 Segment  3 中。Cat-B 和 Cat-C上的1/2口,端口路徑開銷均爲19。  此時將根據最小發送者的BID來確定,此時確定B的端口爲指定端口,在某些情況下,例如Cisco的交換機每個vlan一個生成樹實例,此時,將會出現BID 相同的情況,則最後比較端口ID,端口ID 在同一臺交換機上定義是必定不相同的,最小端口ID的端口被定義爲指定端口。
 
STP狀態
在確定根端口,指定端口和非指定端口後,STP準備創建一個無環路拓撲。STP配置根端口和指定端口來轉發流量,非指定端口阻塞流量。STP一共有5種狀態:阻塞、監聽、學習、轉發和禁用。STP狀態可以看作是等級制的,網橋端口從阻塞狀態開始並按照順序到轉發狀態。禁用狀態是管理性的關閉STP狀態。它不是正常STP端口過程的一部分。在交換機初始化之後,所有端口由阻塞狀態開始。
5種狀態:
 
狀態轉換過程:
 
* 阻塞狀態(Blocking)
一個端口處於阻塞狀態將會有如下特徵: 
  # 丟棄所有連接的網段上收到的數據幀,或者通過交換而來內部轉發的幀 。
  #接收到的BPDU直接傳給系統模塊。
  #沒有地址數據庫。 
  #不傳遞從系統模塊收到的BPDU
  #接收響應網絡管理消息,但不傳遞他們
  #需時20s
*偵聽狀態(Listening)
如果一個網橋在啓動或者在一定時間沒有收到BPDU後立即認爲自己是根交換機,端口進入偵聽狀態,偵聽狀態是一種不傳用戶數據的STP狀態,僅在端口發送和接收BPDU報文。努力確定一個活動的拓撲,該狀態有如下特徵: 
  # 丟棄所有連接的網段上收到的數據幀,或者通過交換而來內部轉發的幀 。 
  # 接收到的BPDU直接傳給系統模塊。 
  # 沒有地址數據庫。 
  # 不傳遞從系統模塊收到的BPDU 
  # 接收響應網絡管理消息 
  # 需時15s
選舉根橋,根端口和指定端口發生在偵聽狀態期間。 在指定端口選舉中失敗的端口成爲非指定端口,並回到阻塞狀態,剩下的指定端口或者根端口在15s後進入學習狀態。
*學習狀態(Learning)
學習狀態是網橋不傳遞用戶數據幀但構建橋接表並收集諸如數據幀源vlan等信息的一種STP狀態。當網橋收到一個幀, 他將源MAC地址和端口放入橋接表, 當數據轉發開始後學習狀態減少了所需的泛洪次數需求。學習狀態的生存時間同樣受轉發延遲定時器的控制,默認爲15s 一個處於學習狀態的端口特性:
  #丟棄所有連接的網段上收到的數據幀。 
  #  丟棄從其它端口交換來的需要轉發的幀 
  #接收到的BPDU直接傳給系統模塊。 
  #接收,處理傳遞從系統模塊收到的BPDU 
  # 接收響應網絡管理消息 
  #需時15s
*轉發狀態(Forwarding)
處於一個學習狀態端口在轉發延遲定時器超時後仍然是根端口或者指定端口,則將進入轉發狀態,轉發狀態特性如下: 
  # 轉發所有連接的網段上收到的數據幀。 
  # 轉發從其它端口交換來的需要轉發的幀 
  # 將位置狀態信息包含進自己的地址數據庫 
  # 接收到的BPDU直接傳給系統模塊。 
  # 處理從系統模塊收到的BPDU 
  # 接收響應網絡管理消息

案例:
sw1#debug spanning-tree events  (打開調試生成樹狀態信息)
我們將交換機1的fa0/24端口的開銷調整爲8,使得fa0/24爲指定端口
sw1(config)#interface f0/24
sw1(config-if)#spanning-tree vlan 200 cost 8
sw1(config-if)#end
----------------------------------------------------------
03:51:32: STP: VLAN0200 new root port Fa0/24, cost 8
03:51:32: STP: VLAN0200 Fa0/24 -> listening  
(f0/24原來處於blocking狀態)
03:51:32: STP: VLAN0200 sent Topology Change Notice on Fa0/24
03:51:32: STP: VLAN0200 Fa0/23 -> blocking
03:51:47: STP: VLAN0200 Fa0/24 -> learning
(listening ->learning 15s時間)
03:52:02: STP: VLAN0200 Fa0/24 -> forwarding   
(learning時間爲15s)
 
STP時間
    STP運作受3個定時器的控制:
 
· HELLO時間(根網橋發送配置BPDU的時間間隔) 缺省2s 這個值實際上只控制配置BPDU在根網橋上生成的時間,其他網橋則把它們從根網橋接收到的BPDU向外通告。換言之,如果在2-20秒內由於網絡故障而沒有收到新的BPDU,非根網橋在這段時間內就停止發送週期BPDU。如果這種情況持續超過20s,也就是超過最大存活期,非根網橋就使原來存儲的BPDU無效,並開始尋找新的根端口。
· 轉發延遲(偵聽狀態或學習狀態的持續時間) 缺省15s 網橋在偵聽狀態和學習狀態所花費的時間。只用轉發延遲就控制了轉發和學習兩個狀態。15秒這個值是假定網絡的最大規模爲7段網橋跳數;BPDU的最大丟失個數爲3以及HELLO時間間隔爲2秒的情況下得到的。這個轉發延遲計時器同樣可以用來控制網橋表在網絡拓撲發生變化後的生存時間。
· 最大存活期(存儲BPDU的時間) 缺省20s 就是網橋在丟棄BPDU前用來備份存儲它的時間。
 
STP的BPDU格式
STP BPDU幀格式隨着所使用的協議類型變化。下圖顯示了IEEE 802.1D生成樹協議的BPDU幀格式。
 
Cisco專有的BPDU幀格式:
 
標準幀格式
n 幀控制域總是01
n 目的地址域指定了在橋街租地址表中所規定的目的地址,在IEEE STP BPDU 幀中,這個
n 地址爲0x800143000000
n 原地址域指明瞭交換機所使用的基本MAC 地址
n 路由選擇信息域僅在Cisco STP BPDU中有,RIF必須爲0x0200
n 邏輯鏈路控制域控制所有STP BPDU的幀類型,這個域被設置爲0x424203
BPDU內各域的格式。除端口ID域外,兩種STP的BPDU內所有的域都是共同的。在IEEE和Cisco STP BPDU幀中,端口ID域定義了起源網橋的傳送端口。
協議標誌(2) 版本(1) 消息類型(1) 標誌(1) 根ID(8) 根路徑開銷(4) 網橋ID(8) 端口ID(2) 消息生存時間(2) 最大生存時間(2) Hello週期(2) 轉發延遲(2)
協議標誌、版本和消息類型域總是被置爲0
標誌域包括下列的一種:
n 拓撲變化(TC)位,該信號指示拓撲變化並指明該BPDU是一個拓撲變化通告(TCN)BPDU。該位沒有置位,則說明BPDU是一個配置BPDU。
n 拓撲變化確認(TCA)位,該位被置位表示確認收到一個TC位被置位的配置信息
   其他域包括:
n 根ID域通過列出2字節的優先級和緊跟的6字節ID指明根交換機
n 根路經開銷域指明從網橋發送該配置消息的網橋到跟交換機的路徑開銷
n BID域指明發送該消息的網橋的優先級和ID
n 端口ID域表明該配置消息的發送端口號(IEEE或者Cisco)。該域使得由於多個網橋相連而產生的環路可以被檢測並糾正
n 消息生存時間域指示自從根發送完當前配置消息已經過了多長時間
n 最大生存時間指示當前配置消息何時被刪除
n hello時間域指示根網橋配置消息的時間間隔
n 轉發延遲域指示在拓撲變化後網橋在轉到新狀態之前需要等待多長時間。如果網橋轉換的過快,可能並非所有網絡鏈路都已經準備好了改變狀態,於是會導致環路。
 
拓撲變化和STP
STP通過使用一組定時器來避免在網絡中出現橋接環路,如果一個穩定的STP進程出現變化可能需要30~50s 的時間才能收斂到新的拓撲(Max Age 20s + 2次forward delay 15s)。當網絡在收斂過程時,那些已經不可達的物理地址仍舊存在於交換表中,交換機仍然會嘗試向無法達到的設備轉發數據幀。STP在拓撲變化的機制中,要求迅速清空交換表以刪除不可達的物理地址。防止交換機將一些數據幀轉發到那些不可達的設備。
下圖爲一個拓撲變化過程:
 
1. 交換機D注意到拓撲變化
2. 交換機D從根端口發出一個拓撲變化通知(TCN,Topology Change Notice)BPDU,最終目的地爲根交換機。TCN BPDU通過 BPDU中值爲 0x80 的一個字節類型域表明。網橋持續發送 TCN  BPDU直到該網段的指定網橋響應一個TCA“拓撲變更響應(Topology Change Acknoledgment)”配置BPDU,類型TCA是通過1字節標誌域中的最高比特位指明的。
3. 該網段的指定網橋(Cat-B)發送一個 TCA 配置 BPDU 到源網橋(Cat-D)。交換機 B 也從根端口發送一個目的地爲根交換機的TCN BPDU
4. 當根交換機收到(上游)TCN BPDU,就發送配置BPDU通告發生了一個拓撲變化。根交換機在配置中保持拓撲變化的時間等於轉發延遲加最大生存時間.(15s+15s+20s)
5. 一個網橋收到(下游)從根交換機發出的拓撲變化配置消息,用轉發延遲定時器(15s)使全部地址表項超時。這使得比默認設備通常需要5分鐘更快的時間來使整張表超時快了很多。網橋將持續這一個過程知道不再從根交換機收到拓撲變化配置消息
 
* 備份根交換機
通常拓撲變化中,如果根橋出現問題,將會極大地影響網絡的 STP 收斂時間,此時,cisco 採用了一種備份根橋的策略。如下圖:
其實質上是根據根網橋選舉規則進行處理的,配置命令爲:
Spaning-tree vlan vlan-id root  primay
Spaning-tree vlan vlan-id root  secondary
這2條命令的作用是修改BID中的 Priority 值,該命令僅在Catalyst 6500,4500,3750,3550,2950上支持
 
 
配置STP
l 默認配置:
特性                                                   默認設置
---------------------------------------------------------------------------
使能狀態                                             只有vlan1
生成樹模式                                          PVST+(RSTP和MSTP不啓動)
交換機優先級                                      32768
生成樹端口優先級(基於每個端口) 128
生成樹端口開銷                                 1000Mbps:4
                                                              100Mbps:19
                                                                10Mbps:100
生成樹VLAN優先級(基於每個VLAN) 128
生成樹VLAN開銷                              1000Mbps:4
                                                               100Mbps:19
                                                                 10Mbps:100
生成樹定時器                                      Hello時間: 2秒
                                                              轉發延遲時間: 15秒
                                                              最大生存時間: 20秒
                                                             傳輸數據包: 6個BPDUs包
案例:
sw1#show spann vlan 1
VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     000b.5f2c.2080
             Cost        19
             Port        23 (FastEthernet0/23)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     000d.6564.0280
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/18           Desg FWD 19        128.18   P2p
Fa0/23           Root FWD 19        128.23   P2p
Fa0/24           Altn BLK 19        128.24   P2p
 
配置STP的模式
交換機支持3種模式:PVST+、RSTP和MSTP,默認設置爲PVST+
配置過程:
1) 進入全局配置模式  configure terminal
2) 設置STP模式
spanning-tree mode [pvst|rapid-pvst|mst]
3) 驗證結果
show spanning-tree summary
show spanning-tree interface 接口
show running-config
 
 配置根交換機
配置過程:
1) 全局模式 configure terminal
2) 設置STP根交換機
spanning-tree vlan vlan號 root primary
[diameter 網絡直徑|hello-time 秒]
         diameter:用來指定網絡的直徑。指定了網絡直徑後,交換機會自動針對此直徑設定最優的
                  hello時間、轉發延遲和最大時間,這能大大減少收斂時間。
         Hello-time:人工指定hello時間覆蓋自動計算值
     3) 驗證配置
         show spanning-tree detail
案例:
sw1(config)#do show span vlan 200         (查看vlan 200的生成樹狀態)
VLAN0200
  Spanning tree enabled protocol ieee
  Root ID    Priority    32968
             Address     000b.5f2c.2080
             Cost        19
             Port        23 (FastEthernet0/23)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
  Bridge ID  Priority    32968  (priority 32768 sys-id-ext 200)
             Address     000d.6564.0280
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23           Root FWD 19        128.23   P2p
Fa0/24           Altn BLK 19        128.24   P2p
可以看出這臺交換機sw1不是根交換機,它的fa0/23端口是根端口,fa0/24處於阻塞,它的優先級爲32768+vlan號200=32968
我們現在開始配置,將sw1調整爲根交換機
sw1(config)#spanning-tree vlan 200 root primary
sw1#show span vlan 200
VLAN0200
  Spanning tree enabled protocol ieee
  Root ID    Priority    24776
             Address     000d.6564.0280
             This bridge is the root         (這裏顯示是Vlan200的根交換機)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
  Bridge ID  Priority    24776  (priority 24576 sys-id-ext 200)
                        (它會自動調整交換機優先級爲24576)
             Address     000d.6564.0280
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 15
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23           Desg FWD 19        128.23   P2p
Fa0/24           Desg FWD 19        128.24   P2p
 
 配置備份根交換機
會將默認的交換機的優先級32768變爲28762,作爲根交換機的一種備份
配置過程:
1) 全局模式 configure terminal
2) 設置STP根交換機
spanning-tree vlan vlan號 root second
[diameter 網絡直徑|hello-time 秒]
diameter:用來指定網絡的直徑。指定了網絡直徑後,交換機會自動針對此直徑設定最優的hello時間、轉發延遲和最大時間,這能大大減少收斂時間。取值範圍爲2到7
Hello-time:人工指定hello時間覆蓋自動計算值,取值範圍爲1到10
3) 驗證配置
show spanning-tree detail
 
 配置端口優先級
配置過程:
1) 進入全局模式 configure terminal
2) 進入接口模式 interface 接口
3) 如果接入端口
spanning-tree port-priority 優先級
優先級:取值範圍0-240,默認爲128,可以使用0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240
           如果是中繼接口
spanning-tree vlan vlan號 port-priority 優先級
4) 驗證配置
show spanning-tree interface 端口
show spanning-tree vlan vlan號
案例:
sw2#show span vlan 200
VLAN0200
  Spanning tree enabled protocol ieee
  Root ID    Priority    32968
             Address     000b.5f2c.2080
             This bridge is the root   
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
  Bridge ID  Priority    32968  (priority 32768 sys-id-ext 200)
             Address     000b.5f2c.2080
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23           Desg FWD 19        128.23   P2p
Fa0/24           Desg FWD 19        128.24   P2p
可以看到sw2是根交換機,因爲它的MAC地址低
sw1#show span vlan 200
VLAN0200
  Spanning tree enabled protocol ieee
  Root ID    Priority    32968
             Address     000b.5f2c.2080
             Cost        19
             Port        23 (FastEthernet0/23)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
  Bridge ID  Priority    32968  (priority 32768 sys-id-ext 200)
             Address     000d.6564.0280
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23           Root FWD 19        128.23   P2p
Fa0/24           Altn BLK 19        128.24   P2p
我們同時也看到交換機sw1的vlan200的情況,其中fa0/23是根端口,fa0/24是處於阻塞狀態
Sw1#conf  t
Sw1(config)#interface f0/24
Sw1(config-if)#spanning-tree vlan 200 port-priority 64
我們將端口fa0/24的優先級調整爲64,默認爲128
Sw2#conf  t
Sw2(config)#interface f0/24
Sw2(config-if)#spanning-tree vlan 200 port-priority 64
查看修改後的情況
sw1#show span vlan 200
VLAN0200
  Spanning tree enabled protocol ieee
  Root ID    Priority    32968
             Address     000b.5f2c.2080
             Cost        19
             Port        24 (FastEthernet0/24)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
  Bridge ID  Priority    32968  (priority 32768 sys-id-ext 200)
             Address     000d.6564.0280
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23           Altn BLK 19        128.23   P2p
Fa0/24           Root FWD 19         64.24   P2p
發現現在fa0/24是根端口,它的端口優先級爲64,而fa0/23處於了阻塞狀態了
 
 配置路徑開銷
如果想改變幀從某個交換機到根所經過的路徑,需要仔細地計算當前的路徑開銷,然後改變目標路徑上的端口開銷。路徑開銷是通過配置STP路徑上的各個端口開銷來規定的。端口開銷值小的端口被選做用於幀的轉發,如果開銷相同的,就選擇端口號小的端口
選擇過程:(優先級依次遞減)
路徑開銷(path cost)
網橋ID (Bridge ID)
端口優先級(Port Priority)
配置過程:
1) 全局模式 configure terminal
2) 進入接口模式
interface 接口
3) 設置STP端口路徑開銷
接入接口
   spanning-tree cost 開銷值
   開銷值爲:1-200000000
中繼接口
   spanning-tree vlan vlan號 cost 開銷值
   vlan號:1-4094
   開銷值:1-200000000
spanning-tree vlan vlan號 root second
4) 驗證配置
show spanning-tree interface 接口
show spanning-tree vlan vlan號
show running-config
案例:
我們接着前面的例子繼續,前面我們修改了sw1的fa0/24的端口優先級從128調整爲64,使其成爲了轉發端口,現在我們配置端口路徑開銷
sw1(config)#interface f0/23
sw1(config-if)#spanning-tree vlan 200 cost 8  我們將vlan 200的端口開銷調整爲8)
sw1(config-if)#end
sw1#show spanning-tree vlan 200
VLAN0200
  Spanning tree enabled protocol ieee
  Root ID    Priority    32968
             Address     000b.5f2c.2080
             Cost        8
Port        23 (FastEthernet0/23)    (發現端口轉變爲fa0/23)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
  Bridge ID  Priority    32968  (priority 32768 sys-id-ext 200)
             Address     000d.6564.0280
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 15
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23           Root FWD 8         128.23   P2p
Fa0/24           Altn BLK 19         64.24   P2p
我們可以看到雖然fa0/24的端口優先級爲64,但因爲fa0/23端口的路徑開銷小,所以選擇了fa0/23
 
 配置vlan的優先級
先要了解mac地址縮減(MAC address reduction)和網橋ID優先級(Bridge ID Priority)的概念(和網橋優先級有區別)。有些交換機支持4096個VLAN,MAC地址縮減將STP的MAC地址需求從每個VLAN或者每個MISTP實例一個減少爲一臺交換機一個,在PVST+下最多支持4096個VLAN,或者16個有唯一標識符的MISTP實例,而且不需要增加交換機所需的MAC地址的數量。
啓用MAC縮減後,存儲在生成樹BPDU中的網橋標識符就包含了被稱爲系統ID擴展的額外字段,它和網橋優先級組合後,系統ID擴展作爲VLAN或者MISTP實例的唯一標識符。
未啓用MAC地址縮減的網橋標識符
       ----------------------------------------------------------------
       |    網橋優先級(2字節)    |  MAC地址(6字節) |
       -----------------------------------------------------------------
啓用MAC地址縮減的網橋標識符
       ------------------------------------------------------------------------------------------------
       |   網橋優先級(高4位)  |  系統ID擴展(低12位) |   MAC地址(6字節) |
       ------------------------------------------------------------------------------------------------
       |                                                 網橋ID優先級                                                      |
      -------------------------------------------------------------------------------------------------
   所以要注意,當啓用了MAC地址縮減時,高4位用於確認網橋的優先級,這就意味着有16種可能的網橋ID優先級:0,4096,8192,12288,16384,20480,24576,28672,32768,36864,40960,45056,49152,53248,57344,61440。
配置過程:
1) 進入全局模式 configure terminal
2) 進入接口模式 interface 接口
3) 配置某vlan的優先級
spanning-tree vlan vlan號 priority 優先級
優先級取值:4096,8192,12288,16384,20480,24576,28672,32768,36864,40960,45056,49152,53248,57344,61440
案例:
我們一般還是通過spanning-tree vlan vlan號 root primary命令來設置
 
配置STP定時器
在根交換機上可以配置hello、最大生存時間、轉發延遲時間和傳輸延遲計數
配置過程:
1) 進入全局配置模式 configure terminal
2) 配置hello時間,默認爲2秒
spanning-tree vlan vlan號 hello 秒數
秒數取值:1-10秒,默認爲2秒
3) 配置轉發延遲時間
spanning-tree vlan vlan號 forward-time 秒數
秒數取值:4-30秒,默認爲15秒
4) 配置最大生存時間
spanning-tree vlan vlan號 max-age 秒數
秒數取值:6-40秒,默認爲20秒
5) 配置傳輸延遲計數
spanning-tree transmit hold-count bpdu數
bpdu數:是指1秒鐘內傳輸bpdu數據包數,取值爲1-20,默認爲6
6) 驗證配置
show spanning-tree vlan vlan號
show spanning-tree detail
案例:
sw1(config)#spanning-tree vlan 200 hello-time 1
sw1(config)#spanning-tree vlan 200 forward-time 10
sw1(config)#spanning-tree vlan 200 max-age 15
sw1#show spann vlan 200
VLAN0200
  Spanning tree enabled protocol ieee
  Root ID    Priority    24776
             Address     000d.6564.0280
             This bridge is the root
             Hello Time   1 sec  Max Age 15 sec  Forward Delay 10 sec
  Bridge ID  Priority    24776  (priority 24576 sys-id-ext 200)
             Address     000d.6564.0280
             Hello Time   1 sec  Max Age 15 sec  Forward Delay 10 sec
             Aging Time 300
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23           Desg FWD 19        128.23   P2p
Fa0/24           Desg FWD 19        128.24   P2p
案例:
­ CCIE-LAB題目(YY)
在SW1上把fa0/7劃分到vlan14中,並且把SW1指定爲VLAN14的根交換機,且VLAN14的max-age爲16秒,forward-delay爲14秒,hello爲2秒
配置命令
SW1
   Conf t
   Interface fa0/7
Switchport access vlan 14
Exit
   Spanning-tree vlan 14 root primary
   Spanning-tree vlan 14 hello-time 2
   Spanning-tree vlan 14 max-age 16
   Spanning-tree vlan 14 forward-time 14
驗證
   show spanning-tree vlan 14
-----------------------------------------------------
CCIE-LAB題目(V148)
High-priority traffic is running on VLAN_C. Make sure, once the corresponding switch ports have been activated, the time spent listening for a topology change is shortened to 5 seconds.
配置:
spanning-tree vlan 22 forward 5
 
 配置負載
可以根據STP的一些特性實現基於STP的負載均衡,如下圖:
 
方法一:修改端口優先級
我們按照如上圖,進行配置:
1) 進入全局模式 config terminal
2) 進入中繼接口 interface 接口1
3) 修改端口優先級
spanning-tree vlan 8-10 port-priority 10
4) 進入另中繼接口 interface 接口2
5) 修改中繼端口的優先級
spanning-tree vlan 3-6 port-priority 10
方法二:修改端口路徑開銷
 
我們按照如上圖,進行配置:
1) 進入全局模式 config terminal
2) 進入中繼接口 interface 接口1
3) 修改端口路徑開銷
spanning-tree vlan 2-4 cost 30
4) 進入另中繼接口 interface 接口2
5) 修改中繼端口的優先級
6) spanning-tree vlan 8-10 cost 30
案例:
CCIE-LAB(版本148)
題目要求:
Load balance between the trunks, meeting the following requirements:
· Use trunk 1 for VLAN_BB1(VLAN 10) and VLAN_BB2(VLAN 40) traffic.
· Use trunk 2 for VLAN_B(VLAN 22) and VLAN_C(VLAN 62).
If one of the trunks should fail, all VLAN traffic should still be send across the trunk.
Restrict the traffic crossing the trunk to the VLANs used in this lab.
Do NOT change the path cost.
配置:SW1和SW2
interface f0/23
  switch trunk allowed vlan 10,22,40,62
  spanning-tree vlan 10 port-priority 64
  spanning-tree vlan 40 port-priority 64
interface f0/24
  switchport trunk allowed vlan 10,22,40,62
  spanning-tree vlan 22 port-priority 64
  spannint-tree vlan 42 port-priority 64
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章