STP详细笔记
STP詳細筆記
產生的背景
由于網絡的冗余性(關鍵設備冗余、關鍵鏈路冗余)帶來的問題,可能帶來二層環路問題,從而引發廣播風暴,設備MAC地址紊亂、以及MAC地址漂移等一系列問題。而STP可以保持網絡冗余的前提下打破網絡二層環路。
生成樹協議一共有三種:STP(802.1d)、RSTP(802.1w)、MSTP(802.1s)
注:生成樹具有向下兼容性,如果全網中有一臺設備運行低版本協議,網絡中運行高版本的協議會自動降級向低版本兼容。如果2倍的hello time 時間沒收到低版本協議的BPDU報文則會切換為高版本。
基本概念:
1、橋ID(bridge identification)BID
每臺運行STP的交換機都會擁有全網唯一的橋ID。BID共8byte,包含16bit的橋優先級和48bit的橋MAC地址。優先級缺省值32768,范圍是0-655535,使用時數值必須為4096倍數。MAC地址為背板最小地址。
2、根橋(root bridgr)RB
根橋在全網中只會有一個。STP運行的第一件事就是選舉根橋。選舉規則為全網中擁有最小的橋ID為根橋。BID由優先級和MAC地址組成,選舉規則為先比較優先級再比較MAC地址,兩者皆是小優。缺省值為32768,可以進行修改從而干涉根橋選舉。
3.開銷(cost)
每個運行了STP的接口,都有一個cost值,接口的缺省cost值不但和接口速率和工作模式有關,還與所使用的計算方法有關。
4、根路徑開銷(root path cost)RPC
RPC值是主要計算某接口到達RB的沿途累加cost值。也就是從該接口到RB需要多少的開銷。數值越小越優。
5、接口ID(port identification)PID
運行stp的交換機使用PID來標記每一個接口。PID的長度為16bit,由4bit的接口優先級和12bit的接口編號組成。缺省為128,范圍為0-240,調整時必須是16的倍數。
6、STP的選舉流程
1、選舉根橋
比較BID,優者為根橋。首先比較優先級,若相同比較MAC,都是小優。
2、選舉根端口
? 比較RPC值,小者勝出。若相同進行下一項比較。
? 在比較對端BID,小者優
? 比較對端PID,小者優
3、選舉指定端口
? 一般情況下,根橋下所有的端口為指定端口
? 比較RPC值,小者勝出。若相同進行下一項比較
? 比較本端BID,小者優
? 比較本端PID,小者優
4、既不是根端口也不是指定端口的接口則為阻塞接口
思考:為什么選舉根端口比較對端信息而指定端口比較本端信息。
為什么橋ID的優先級為0-65535?
STP報文
BPDU報文分為兩中類型:分別為配置BPDU(configuration BPDU)、拓撲改變BPDU(topology change notification)。
BPDU發送方式:組播,組播MAC地址為0180-c200-0000
配置BPDU
在網絡初始化過程中,每臺交換機都會從自己激活了STP的接口發送配置BPDU報文。當STP收斂完成后,只有根橋才會周期的發送配置BPDU(缺省發送時間為2秒),而非根網橋的RP口收到上游發送的配置BPDU后,立即觸發產生自己的配置BPDU,并從指定端口發出。
配置BPDU的報文格式
| 2 | 協議ID(protocol identifier) | 在stp中該值總為0 |
| 1 | 協議版本ID(protocol version identifier、) | 在stp中該值總為0;生成樹的版本 |
| 1 | BPDU類型(BPDU type) | 值為0x00為配置BPDU;值為0x80為TCN BPDU |
| 1 | 標志(Flage) | 在STP中該字段用于網絡拓撲變化標志。STP僅使用了最低位(TC,拓撲變更),最高位是TCA(拓撲變更確認)標志 |
| 8 | 根橋ID | 根橋的橋ID |
| 4 | 根路徑開銷 | 到達根橋STP路徑開銷 |
| 8 | 網橋ID | 發送本BPDU的橋ID |
| 2 | 接口ID | 發送本BPDU的接口ID |
| 2 | 消息壽命(message age) | 根橋所發送的BPDU中,該字段值為0,此后每經過一個交換設備,該字段值加一,本質上指BPDU所經過的交換設備個數。 |
| 2 | 最大壽命(Max age) | BPDU的最大存活時間,也被稱為老化時間,缺省20S |
| 2 | Hello時間 | BPDU所發送的時間間隔 |
| 2 | 轉發延遲(forward delay) | 接口在偵聽和學習狀態所停留的時間 |
TCN BPDU
格式:協議ID、協議版本ID、BPDU類型。
作用:當網絡中拓撲發生改變時,該交換機的根端口逐級向根橋通知變化的發生,使全網交換機盡快老化自己的MAC地址表項,以便快速適應新網絡。在網絡穩定時只會產生配置BPDU。
兩種特殊的BPDU
1、“標志”字段中TCA比特位被設置為1的配置BPDU
為了保證STP從拓撲變更的交換機傳遞到根橋的過程是可靠的,當收到下游發送的TCN BPDU后,需使用“標志”字段中TCA比特位被置位為1 的配置BPDU回應對方并向自己的上游發送TCN BPDU。一直持續到根橋收到該TCN BPDU。
2、“標志”字段中TC比特位被設置為1的配置BPDU
當根橋收到TCN BPDU后,意味者網絡拓撲發生改變,它將向網絡中泛洪“標志”字段中TC比特位被設置為1的配置BPDU,網絡中交換機收到該報文后,會將自己的MAC老化時間改為轉發延時,使得MAC表盡快刷新。
STP時間參數
Hello time:發送配置BPDU的時間間隔。修改必須在根橋上進行修改,修改后所有非根網橋會向根橋對齊該時間值。
forward time:接口從偵聽狀態到學習狀態,或者學習狀態到轉發狀態的延遲時間,缺省15秒。這兩種狀態分別為了避免臨時環路和數據幀的泛洪現象。
Max age:BPDU老化時間,缺省20S.在非根網橋的接口上保存這來自上游的最優BPDU,如過在老化時間之前收到這個BPDU,則該計時器會被重置,若未收到,該BPDU被老化,將會從新選舉根端口。
從阻塞進入轉發狀態需要花費30 -50s
STP的接口狀態
| 禁用狀態 disable | 不能收發BPDU,也不能轉發數據幀 |
| 阻塞狀態 blocking | 不發送BPDU,但會持續偵聽。不能轉發業務數據幀,不進行MAC學習 |
| 偵聽狀態 listening | 可以收發BPDU報文,但是不能轉發業務幀,不進行MAC地址學習 |
| 學習狀態 learning | 可以收發BPDU報文,但是不能轉發業務幀,進行MAC地址學習 |
| 轉發狀態 forwarding | 可以正常收發業務幀,也會進行BPDU處理。 |
STP配置
總結
- 上一篇: 软件工程复习题库(2)
- 下一篇: 第十章 STP