生成樹協議--STP


                                                   生成樹協議——STP

引入:

為了消除鏈路層的環路,即二層環路,並實現鏈路的冗余備份(就是當主鏈路出現故障,能有一條備用鏈路保證網絡不受影響),STP生成樹協議誕生了!!

 

一.基礎

STP,Spanning Tree Protocol,生成樹協議

作用:→通過阻斷冗余鏈路來消除橋接網絡中可能存在的路徑回環,即網絡環路。

           →當前鏈路發生故障時激活冗余備份鏈路,恢復網絡連通性。

通過在橋(這里的橋是指連接兩個物理段的設備,在生成樹協議中一般為交換機)之間交換BPDU,來保證設備完成生成樹的計算過程。

BPDU,Bridge Protocol Data Unit,橋協議數據單元,就是生成樹設備之間交換報文的報文類型。BID,橋ID,即生成樹網絡中交換機的ID,由優先級和MAC地址構成,例:0.0000-0000-0001,開頭的0表示橋優先級,默認為32768,可通過命令修改,范圍在0-65535之間,且取值只能是0或4096的倍數。

 

(1)配置BPDU包含的信息

根橋ID(RootID)(在生成樹協議網絡的眾多交換機中會選舉出一個老大作為根橋,這個老大叫Root,用來交換拓撲信息)

根路徑開銷(Root Path Cost)(其他設備到根橋的的開銷,路徑開銷:網橋間距離的度量值)

指定橋ID(DBID,Designated Bridge ID)(每個物理段都會選舉出一個指定橋,如上圖①與②物理段因為SW1被選舉為整個網絡的根橋,所以不用選指定橋,③物理段則會選擇一個指定橋,通過BID可知指定橋為SW2,因為其BID較小)

指定端口ID(什么是指定端口后面會說)

 

(2)根橋的選舉:

①.通過比較BID,先比較優先級,優先級值越小越優先,優先級大的被選為根橋。

②.如果優先級相同,則比較MAC地址,MAC地址小的優先。

(3)端口角色:

 

 

→DP——指定端口,根橋上所有端口為指定端口,連接指定橋的端口為指定端口。每個物理段,有只有一個DP,DP的對端必定是RP或者AP,RP和AP的對端必定是DP。

→RP——根端口,在非根橋上選舉根路徑開銷最小的端口為根端口。每個非根橋必須選擇一個端口作為根端口。

→AP——阻塞端口,既不是根端口也不是指定端口的其他端口被STP置為阻塞狀態。也可以說是RP的備用端口,當RP所在鏈路故障時,AP轉變為RP.

 

(4)路徑開銷COST

STP以IEEE802.1D為標准計算開銷:

帶寬 STP開銷
4Mbit/s 250
10Mbit/s 100
100Mbit/s 19
1 Gbit/s 4
10 Gbit/s 2

 

 

 

 

 

 

 

 

(5)通過橋ID決定端口角色

 

→在根路徑開銷相同時,所連網段指定橋ID最小的端口為根端口RP。

 

→在根路徑開銷相同時,橋ID最小的橋被選為物理段上的指定橋,連接指定橋的端口為指定端口DP

 

(6)通過端口ID決定端口角色

 

 →當兩條鏈路開銷相同時,端口ID小的一方為根端口。

 

(7)端口狀態

端口角色 端口狀態 端口行為
未啟用STP功能的端口 Disabled 不收發BPDU,不收發數據,不學習MAC地址
非指定端口或根端口 Blocking 收但不發BPDU,不收發數據,不學習MAC地址
         —— Listening 收發BPDU,不收發數據,不學習MAC地址
         —— Learning 收發BPDU,不收發數據,學習MAC地址
指定端口或根端口 Forwarding 收發BPDU,收發數據

 

 

 

 

 

 

 

 

 

 

 

(8)端口遷移

 →端口被選為指定端口或根端口后,狀態變化

Blocking →Listening →(Forward Delay time=15s)→Learning →(Forward Delay time=15s)→Forwarding           

Forward Delay time:狀態轉換需要的時間

 

二.深入

 

(1)STP中BPDU報文格式

→PID:協議ID

→PIV:版本

→BPDU Type:BPDU類型,有配置BPDU和TCN(用於清除MAC表)

→Flags:標志位,共8個bit,對應8個位,即Flags字段有8位,標准STP中只使用了第七位TCA與第0位TC,而RSTP,MSTP中8位都用到了。

→Root ID,RPC,Bridge ID,Port ID分別對應根橋ID,路徑開銷,本橋ID,端口ID。

→Message Age,當前消息年齡,每經過一台設備,這個值+1,這個值大於Max Age時,則該報文被老化。

→Max Age,最大老化時間,默認為20s

→Hello Time,默認為2s

→FWD Delay,傳輸時延。

 

 

(2)STP中的TCN BPDU

 

STP的TCN BPDU,主要用於清除設備的MAC地址表。

當網絡拓撲發生變化,例如:

 

當SWA與SWC之間出現故障,因為MAC地址表項的老化時間默認為300s,所以00-05-06-07-08-BB   G0/1這條錯誤的MAC表項會存在300s后才會轉換成備用鏈路的G0/2接口,在這段時間之內,SWB是無法將數據從G0/2接口轉發給SWC的。

300s恢復正常轉發肯定是無法接受的,所以有了TCN BPDU,用來清除MAC以重新獲取正確的MAC地址。

 

 (靈魂畫師)

 

→TCN,用於通知

→TCA,用於確認TCN,位於BPDU報文中Flags位的第7位

→TC,  清除MAC,位於BPDU報文中Flags位的第0位

 

(3)STP保護

 

→STP根保護

話不多說 看圖

 

當網絡中新加入一個交換機且優先級大於當前根橋,如果沒有開啟根保護,那么新來的SW會被選為根橋,這會導致PC間的互訪不能用最優路徑。即沒有新加入SW時PC間的互訪線路為:②→③,而新來的SW被選為根橋后的線路為:②→④→④→③。

當開啟的根保護時,即在根橋上配置root-protection,當收到更高優先級的BPDU,即對於G0/3接口的BPDU不進行計算,並配置為狀態Listening狀態。

→STP BPDU保護

STP的BPDU保護是針對於邊緣端口的,即如果確認邊緣端口所連接的是一台PC,如果這台PC發送STP報文,會導致STP網絡發生變化,如果PC是攻擊者會導致STP網絡癱瘓,所以要開啟STP的BPDU保護,即一旦接收到PC發來的BPDU,則立刻將這個邊緣端口shutdown,如果想要恢復,可以網管手工恢復或配置成一定時間內未收到BPDU自動恢復。

→STP環路保護

圖來~

 

當AP接口(Blockig狀態)一直收不到來自上游的BPDU使他繼續阻塞,那么它會在20S(BPDU老化時間)后從AD轉變為DP從而形成環路,所以可通過在AP接口上配置stp loop-protection開啟環路保護。

 

 

(4)常用命令

[SW]stp global enable                                                                      !全局開啟STP特性

[SW]stp mode stp/rstp/mstp                                                           !設置STP模式(默認為MSTP)

[SW]stp pathcost-standard  dot1d-1998/dot1t/legacy                    !配置路徑開銷標准,dot1d-1998已被淘汰,常用dot1t。

[SW]stp priority 0/4096的倍數                                                         !設置當前設備的STP優先級(默認32768)

[SW]stp timer hello [100-1000ms]                                                  !配置STP Hello時間,單位為毫秒,默認為200ms,即2s

[SW]stp timer max-age [600-4000ms]                                            !配置STP最大老化時間,默認為20s

[SW]stp root-protection                                                                   !開啟STP根保護

[SW]stp bpdu-protection                                                                 !開啟BPDU保護

[SW]stp loop-protection                                                                  !開啟環路保護

[SW-GigabitEthernet1/0/1]stp edged-port                                      !配置端口為邊緣端口

[SW-GigabitEthernet1/0/1]stp cost  [1-200000]                              !STP接口開銷

[SW]display stp                                                                                !查看STP信息

[SW]display stp root                                                                        !顯示所有生成樹根橋信息

[SW]display stp bpdu-statistics                                                       !顯示端口BPDU統計信息

 

!!!!!

STP先講到這,后面更新RSTP(快速生成樹協議)與MSTP(多生成樹協議)

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM