STP 生成樹協定
分享今日:
參考部落格連結:
RSTP協定
STP 協定
MSTP
文章目錄
- STP 生成樹協定
-
- 1. 環路問題
-
- 1.1 廣播風暴
- 1.2 MAC位址表翻轉
- 1.3 多幀複制
- 2. STP 作用
-
- 2.1 作用
- 2.2 基本術語
-
- 2.2.1 橋(Bridge)
- 2.2.2 橋MAC位址
- 2.2.3 橋 ID(BID)
- 2.2.4 端口 ID(PID)
- 3. STP 樹的生成
-
- 3.1 選舉根橋
- 3.2 确定根端口
-
- 3.2.1思科選取根端口優先順序:
- 3.2.2 華為選取根端口優先順序:
- 3.3 确定指定端口
-
- 3.3.1 思科裝置指定端口比較
- 3.3.2 華為裝置指定端口比較
- 3.4 阻塞備用端口
- 4. STP 封包格式
-
- 4.1 Configuration BPDU
-
- 4.1.1 BPDU封包格式:
- 4.1.2 STP 計時器
- 4.2 TCN BPDU
- 5. STP 端口狀态
-
- 5.1 端口狀态
- 5.2端口狀态遷移
- 5.3 端口狀态轉換舉例
- 6. STP 故障問題
-
- 6.1 根橋故障
- 6.2直連鍊路故障
- 6.3 非直連鍊路故障
- 6.4 拓撲改變導緻MAC位址表錯誤
- 6.5 拓撲改變導緻MAC位址表變化
- 7. RSTP(STP 優化)
-
- 7.1 STP缺陷
- 7.2 RSTP
-
- 7.2.1 RSTP端口角色
- 7.2.2 三種端口狀态
- 7.2.3 P/A機制
- 7.2.4 邊緣端口
- 7.2.5 RSTP收斂過程
- 7.2.6 鍊路故障/根橋失效
- 7.2.6 鍊路故障/根橋失效
思維導圖:

1. 環路問題
1.1 廣播風暴
産生原因:根據交換機的轉發原則,如果交換機從一個端口上接收到的是一個
廣播幀
,或者是一個
目的MAC位址未知的單點傳播幀
,則會将這個幀向除源端口之外的所有其他端口轉發。如果交換網絡中有環路,則這個幀會被無限轉發,此時便會形成廣播風暴,網絡中也會充斥着重複的資料幀。
本例中,主機A向外發送了一個單點傳播幀,假設此單點傳播幀的目的MAC位址在網絡中所有交換機的MAC位址表中都暫時不存在。SWB接收到此幀後,将其轉發到SWA和SWC,SWA和SWC也會将此幀轉發到除了接收此幀的其他所有端口,結果此幀又會被再次轉發給SWB,這種循環會一直持續,于是便産生了廣播風暴。交換機性能會是以急速下降,并會導緻業務中斷。
1.2 MAC位址表翻轉
産生原因:交換機是根據所接收到的資料幀的源位址和接收端口生成MAC位址表項的。
- 主機A向外發送一個單點傳播幀,假設此單點傳播幀的目的MAC位址在網絡中所有交換機的MAC位址表中都暫時不存在。SWB收到此資料幀之後,在MAC位址表中生成一個MAC位址表項,00-05-06-07-08-AA,對應端口為G0/0/3,并将其從G0/0/1和G0/0/2端口轉發。
此例僅以SWB從G0/0/1端口轉發此幀為例進行說明。
- SWA接收到此幀後,由于MAC位址表中沒有對應此幀目的MAC位址的表項,是以SWA會将此幀從G0/0/2轉發出去。
- SWC接收到此幀後,由于MAC位址表中也沒有對應此幀目的MAC位址的表項,是以SWC會将此幀從G0/0/2端口發送回SWB,也會發給主機B。
- SWB從G0/0/2接口接收到此資料幀之後,會在MAC位址表中删除原有的相關表項,生成一個新的表項,,00-05-06-07-08-AA,對應端口為G0/0/2。此過程會不斷重複,進而導緻MAC位址表震蕩。
1.3 多幀複制
PC2向PC1發送一個單點傳播幀Y,假設S2的MAC位址表中不存在關于PC1的MAC位址表項,是以S2會對Y幀進行泛洪。假設S1的MAC位址表項中存在“
PC1的MAC位址<——>port 3
” ,S3的MAC位址表項中存在“
PC1的MAC位址<——>port 1
” ,顯然,S1,S3都會對Y幀進行點對點轉發操作。最後的結果是PC1 會收到兩份Y幀的拷貝。
2. STP 作用
STP通過阻塞端口來消除環路,并能夠實作鍊路備份的目的。
2.1 作用
消除環路:通過阻斷備援鍊路來消除網絡中可能存在的環路。
鍊路備份:當活動路徑發生故障時,激活備份鍊路,及時恢複網絡連通性。
2.2 基本術語
2.2.1 橋(Bridge)
橋和交換機這兩個術語是互用的。
2.2.2 橋MAC位址
一個橋有多個轉發端口,一個端口有一個MAC位址。通常把編号最小的那個端口MAC位址作為橋的MAC位址。
2.2.3 橋 ID(BID)
- 一個橋的橋ID由兩部分組成,2位元組的橋優先級和6位元組的橋MAC位址。
- 橋優先級可以人為指定,預設值為0x8000(相當于32768)。
2.2.4 端口 ID(PID)
端口ID有兩種定義方式,不同廠家采用的 PID 定義方式不同,同樣端口優先級也是可以人為指定的,預設情況下,端口優先級是128。。
- PID 由兩位元組組成,第一個位元組表示端口優先級,後一個位元組是端口編号;
- PID 由16bits組成,前4bit表示端口優先級,後12bit表示端口編号;
3. STP 樹的生成
STP通過構造一棵樹來消除交換網絡中的環路。
- 每個STP網絡中,都會存在一個根橋,其他交換機為非根橋。根橋或者根交換機位于整個邏輯樹的根部,是STP網絡的邏輯中心,非根橋是根橋的下遊裝置。當現有根橋産生故障時,非根橋之間會互動資訊并重新選舉根橋,互動的這種資訊被稱為BPDU。BPDU中包含交換機在參加生成樹計算時的各種參數資訊;
- STP中定義了三種端口角色:指定端口,根端口和預備端口。
- 指定端口是交換機向所連網段轉發配置BPDU的端口,
。一般情況下,根橋的每個端口總是指定端口。每個網段有且隻能有一個指定端口
- 根端口是非根交換機去往根橋路徑最優的端口。在一個運作STP協定的交換機上最多隻有一個根端口,但
。根橋上沒有根端口
- 如果一個端口既不是指定端口也不是根端口,則此端口為預備端口。
。預備端口将被阻塞
STP樹生成過程:
- 選舉一個根橋。
- 每個非根交換機選舉一個 根端口。
- 每個網段選舉一個指定端口。
- 阻塞非根、非指定端口。
3.1 選舉根橋
選取原則:橋優先級是可以配置的,取值範圍是0~65535,預設值為32768。
優先級最高的裝置(數值越小越優先)
會被選舉為根橋。如果優先級相同,則會比較MAC位址,
MAC位址越小則越優先
。
交換機啟動後就自動開始進行生成樹收斂計算。**預設情況下,所有交換機啟動時都認為自己是根橋,自己的所有端口都為指定端口,這樣BPDU封包就可以通過所有端口轉發。**對端交換機收到BPDU封包後,會比較BPDU中的根橋ID和自己的橋ID。如果收到的BPDU封包中的橋ID優先級低,接收交換機會繼續通告自己的配置BPDU封包給鄰居交換機。如果收到的BPDU封包中的橋ID優先級高,則交換機會修改自己的BPDU封包的根橋ID字段,宣告新的根橋。
3.2 确定根端口
- 根橋确定後,其他沒有稱為根橋的交換機都被稱為非根橋。
- 非根交換機在選舉根端口時分别依據該端口的根路徑開銷、對端BID(Bridge ID)、對端PID(Port ID)和本端PID。
- 每個非根橋都要選舉一個根端口。根端口是距離根橋最近的端口,這個最近的衡量标準是靠路徑開銷來判定的,即路徑開銷最小的端口就是根端口。
- 根端口是根橋與非根橋之間進行封包互動的端口。一台非根橋裝置上隻有一個根端口。
根路徑開銷: 交換機的某個端口到根橋的累計路徑開銷(即從該端口到根橋所經過的所有鍊路的路徑開銷的和)稱為這個端口的根路徑開銷(Root Path Cost,RPC)
思科路徑開銷:
Link Speed | Cost (New IEEE Specification) | Cost (Old IEEE Specification) |
---|---|---|
10 Gb/s | 2 | 1 |
1 Gb/s | 4 | 1 |
100 Mb/s | 19 | 10 |
10 Mb/s | 100 | 100 |
華為路徑開銷:
端口速率 | 路徑開銷(IEEE 802.1t标準) |
---|---|
10 Mbit/s | 2 000 000 |
100 Mbit/s | 200 000 |
1 Gbit/s | 20 000 |
10 Gbit/s | 2 000 |
3.2.1思科選取根端口優先順序:
- 選擇最低的BID;
- 選擇最低的路徑開銷(一定是到跟橋的路徑);
- 選擇最低發送者的BID;
- 選擇最低端口優先級;
- 選擇最低端口的ID;、
3.2.2 華為選取根端口優先順序:
- 端口收到一個BPDU封包後,抽取該BPDU封包中根路徑開銷字段的值,加上該端口本身的端口開銷即為本端口路徑開銷。如果有兩個或兩個以上的端口計算得到的
相同,那麼選擇收到累計路徑開銷
作為根端口。發送者BID最小的那個端口
- 如果兩個或兩個以上的端口連接配接到同一台交換機上,則選擇
作為根端口。如果兩個或兩個以上的端口通過Hub連接配接到同一台交換機的同一個接口上,則選擇本交換機的發送者PID最小的那個端口
的作為根端口。這些端口中的PID最小
3.3 确定指定端口
每個網段都應該有一個指定端口,根橋的所有端口都是指定端口(除非根橋在實體上存在環路)。
3.3.1 思科裝置指定端口比較
- 最低的根橋ID
- 最低的根路徑代價
- 最低發送者橋ID
- 最低端口ID
3.3.2 華為裝置指定端口比較
- 根路徑開銷
- 端口所在交換機橋ID(BID)
- 端口ID(PID)
指定端口的選舉也是首先比較累計路徑開銷,累計路徑開銷最小的端口就是指定端口。如果累計路徑開銷相同,則比較端口所在交換機的橋ID,所在橋ID最小的端口被選舉為指定端口。如果通過累計路徑開銷和所在橋ID選舉不出來,則比較端口ID,端口ID最小的被選舉為指定端口。
3.4 阻塞備用端口
未被選舉為根端口或指定端口的端口為預備端口,将會被阻塞。
網絡收斂後,
隻有指定端口和根端口可以轉發資料
。其他端口為預備端口,被阻塞,不能轉發由終端計算機産生并發送的資料幀,但是可以接受并處理STP協定幀。隻能夠從所連網段的指定交換機接收到BPDU封包,并以此來監視鍊路的狀态。
4. STP 封包格式
- STP通過交換STP協定幀來建立和維護STP樹,在網絡拓撲發生變化的時候重建新的STP樹。
- STP協定幀是多點傳播幀,多點傳播位址為01-80-c2-00-00-00
- STP協定幀有采用IEEE802.3封裝,有兩種格式:Configuration BPDU和TCN BPDU
4.1 Configuration BPDU
初始STP樹的過程中,各STP交換機都會周期性(2s)主動發送Configuration BPDU。
在STP 穩定後隻有根橋周期性發送Configuration BPDU;非根橋會在
根端口收
到根橋發來的Configuration BPDU,并觸發産生自己的Configuration BPDU,且從
指定端口發
出。(根端口接收,指定端口發出)
4.1.1 BPDU封包格式:
BPDU攜帶的參數可以分為三類:
- 第一類BPDU自身辨別,包括協定辨別、版本号、、BPDU類型和flags;
- 第二類是用于STP計算的參數,包括交換機BID,點前根橋BID,發送BPDU的PID和RPC;
- 第三類是時間參數;
字段 | 位元組數 | 說明 |
---|---|---|
protocol identifier | 2 | 總是 0x0000 |
protocol version identifier | 1 | 總是 0x00 |
BPDU type | 1 | 0x00:Configuration BPDU 0x80:TCN BPDU |
Flags | 1 | 網絡拓撲變化标志:僅使用了最高(TCA)最低(TC) |
根橋ID | 8 | 由根橋的優先級和MAC位址組成,每個STP網絡中有且僅有一個根橋 |
根路徑開銷 | 4 | 到根橋的最短路徑開銷 |
指定橋ID | 8 | 由指定橋的優先級和MAC位址組成 |
指定端口ID | 2 | 由指定端口的優先級和端口号組成 |
Message Age | 2 | 配置BPDU在網絡中傳播的生存期(每經過一個橋,-1) |
Max Age | 2 | 配置BPDU在裝置中能夠儲存的最大生存期(預設20s) |
Hello Time | 2 | 配置BPDU發送的周期(2s) |
Forward Delay | 2 | 端口狀态遷移的延時(預設15s)。控制端口Listening和Learning狀态持續時間,預設15s |
4.1.2 STP 計時器
- Hello Time是指運作STP協定的裝置發送配置BPDU的時間間隔,用于檢測鍊路是否存在故障。交換機每隔Hello Time時間會向周圍的交換機發送配置BPDU封包,以确認鍊路是否存在故障。
。當網絡拓撲穩定後,該值隻有在根橋上修改才有效
- Message Age是從根橋發送到目前交換機接收到BPDU的總時間,包括傳輸延時等。如果配置BPDU是根橋發出的,則Message Age為0。實際實作中,配置BPDU封包
。每經過一個交換機,Message Age增加1
- Forward Delay是指端口狀态遷移時間。STP生成樹需要一定的時間,如果選出來的根端口或者指定端口馬上進入轉發狀态的話,可能就會總成臨時工作環路。forward delay機制:
,保證此時工作拓撲已無環路。新選出來的根端口和指定端口需要經過兩倍的forward delay時間延時後才可以進入使用者資料幀的轉發狀态
- Max Age是指BPDU封包的老化時間,可在根橋上通過指令人為改動這個值。Max Age通過配置BPDU封包的傳遞,可以保證Max Age在整網中一緻。非根橋裝置收到配置BPDU封包後,會将封包中的Message Age和Max Age進行比較:如果Message Age小于等于Max Age,則該非根橋裝置會繼續轉發配置BPDU封包。如果Message Age大于Max Age,則該配置BPDU封包将被老化掉。該非根橋裝置将直接丢棄該配置BPDU,并認為是網絡直徑過大,導緻了根橋連接配接失敗。
4.2 TCN BPDU
TCN BPDU是指下遊交換機感覺到拓撲發生變化時向上遊發送的拓撲變化通知。
TCN BPDU 隻有三個字段:協定辨別,協定版本号和類型。
TCN BPDU工作流程:
如果網絡中某條鍊路發生故障,導緻拓撲發上變化,位于故障點的交換機可以感覺到變化,但是其他交換機無法感覺。
- 位于故障點的交換機會以Hello Time為周期通過
不斷向上遊交換機發送TCN BPDU,直到從上遊交換機收到TCA 标志置1的configuration BPDU;根端口
- 上遊交換機收到TCN BPDU後,一方面通過指定端口回複下遊交換機TCA置1的configuration BPDU,一方面以hello time為周期向上遊交換機發送TCN BPDU;
- 根橋收到TCN BPDU後,發送TC 置1 的configuration BPDU通告所有交換機網絡拓撲發生變化;
- 交換機收到TC标志置1的configuration BPDU,便意識到網絡拓撲已經發生變化,說明自己MAC位址表項可能已經不正确。此時交換機會将MAC位址表的老化周期(預設300s)置縮短為Forward relay時間長度(預設15s)。
5. STP 端口狀态
5.1 端口狀态
STP定義了五種端口狀态:去能狀态、阻塞狀态、偵聽狀态、學習狀态和轉發狀态。
端口狀态 | 說明 |
---|---|
去能(Disabled) | 無法接受發送任何幀,端口處于關閉狀态(Down) |
阻塞(Blocking) | 可以接受并分析STP協定幀,但是不能發送STP協定幀,也不能轉發使用者資料幀 |
偵聽(Listening) | 可以接受并發送STP協定幀,但是不能學習MAC位址,也不能轉發使用者資料幀 |
學習(Learning) | 可以接受并發送STP協定幀,可以學習MAC位址,也不能轉發使用者資料幀 |
轉發(Forwarding) | 可以接受并發送STP協定幀,可以學習MAC位址,同時也能轉發使用者資料幀 |
5.2端口狀态遷移
- 端口初始化或使能;
- 端口被選為根端口或指定端口。
- 端口不再是根端口或指定端口。
- forward delay計時器逾時。
- 端口禁用或鍊路失效。
- STP在啟動的時候,端口狀态由
,此時端口指定接收分析BPDU,不能發送;Disabled轉為Blocking
- 如果Blocking狀态端口被選為根端口或者指定端口,會
狀态,此時端口接收并發送BPDU,這種狀态會持續一個進入Listening
;Forward Delay時間(預設15s)
- 沒有意外情況回到Blocking,端口會
狀态,并持續一個進入Learning
,此時端口可以收發BPDU,同時建構MAC位址表,為轉發使用者資料幀做準備;Forward Delay時間(預設15s)
- 沒有意外,端口
狀态,開始使用者資料幀轉發工作;進入Forwarding
- 狀态遷移過程中,一旦端口被關閉或者出現鍊路故障,進入去能狀态;
- 狀态遷移過程中,一旦端口不再是根端口或者指定端口,進入阻塞狀态;
5.3 端口狀态轉換舉例
- 假設交換機S1,S2,S3同一時間啟動。各個交換機從Disabled進入Blocking狀态。由于處于Blocking狀态隻能接受分析BPDU,不能發送,是以任何端口都收不到BPDU。
時間後,每台交換機都會認為自己是根橋,每個端口都是指定端口,端口狀态遷移為Listening;
等待MAX Age(預設20s)
- 交換機進入learning狀态後就會開始發送自己的Configuration BPDU,同時也會受到其他交換機發送的Configuration BPDU。
- 假設S2先發送Configuration BPDU,S3從自己的G 0/0/2端口收到後,發現S2 的BID逼自己的小,于是認為S2是根橋,将G0/0/2設定為根端口,然後将自己重新産生的根橋設定為S2的Configuration BPDU從G0/0/1端口發給S1;
- S1收到S3發來的BPDU後,發現自己的BID是最小的,認為自己就是根橋。于是向S3發送Configuration BPDU,同樣的也會在G0/0/2 端口受到S2 的Configuration BPDU,也會從G0/0/2端口發送自己的BPDU給S2;
- 端口在listening狀态下持續15s,進入learning。此時S3的G0/0/2接口已經被阻塞。
- 各個端口相繼進入Learning,持續Forward time(15s)後進入。在這段時間内建構MAC位址轉發表,為使用者資料幀轉發做準備;
- 各端口進入Forwarding狀态,開始轉發使用者資料幀。
6. STP 故障問題
6.1 根橋故障
- 在穩定的STP拓撲裡,非根橋會定期收到來自根橋的BPDU封包。
- 如果根橋發生了故障,停止發送BPDU封包,下遊交換機就無法收到來自根橋的BPDU封包。
- 如果下遊交換機一直收不到BPDU封包,
,進而導緻已經收到的BPDU封包失效,此時,非根交換機會互相發送配置BPDU封包,重新選舉新的根橋。根橋故障會導緻50秒左右的恢複時間,恢複時間約等于Max Age加上兩倍的Forward Delay收斂時間。(max age + 2*Forwarding relay)Max Age定時器就會逾時(Max Age的預設值為20秒)
6.2直連鍊路故障
- SWB檢測到直連鍊路實體故障後,會将預備端口轉換為根端口;
- SWB新的根端口會在30 秒後恢複到轉發狀态。
此例中,SWA和SWB使用了兩條鍊路互連,其中一條是主用鍊路,另外一條是備份鍊路。生成樹正常收斂之後,如果SWB檢測到根端口的鍊路發生實體故障,則其Alternate端口會遷移到Listening、Learning、Forwarding狀态,經過兩倍的Forward Delay後恢複到轉發狀态。
6.3 非直連鍊路故障
非直連鍊路故障後,由于需要等待Max Age加上兩倍的Forward Delay時間,端口需要大約50秒才能恢複到轉發狀态。
本例中,SWB與SWA之間的鍊路發生了某種故障(非實體層故障),SWB是以一直收不到來自SWA的BPDU封包。
- 等待
,SWB會認為根橋SWA不再有效,并認為自己是根橋,于是開始發送自己的BPDU封包給SWC,通知SWC自己作為新的根橋。
Max Age定時器逾時後
- 在此期間,由于SWC的Alternate端口再也不能收到包含原根橋ID的BPDU封包。其
後,SWC會切換Alternate端口為指定端口并且轉發來自其根端口的BPDU封包給SWB。
Max Age定時器逾時
- 是以,Max Age定時器逾時後,SWB、SWC幾乎同時會收到對方發來的BPDU。經過STP重新計算後,SWB放棄宣稱自己是根橋并重新确定端口角色。
- 非直連鍊路故障後,SWC的預備端口恢複到轉發狀态大約需要50秒。
6.4 拓撲改變導緻MAC位址表錯誤
在交換網絡中,交換機依賴MAC位址表轉發資料幀。預設情況下,MAC位址表項的老化時間是300秒。如果生成樹拓撲發生變化,交換機轉發資料的路徑也會随着發生改變,此時MAC位址表中未及時老化掉的表項會導緻資料轉發錯誤,是以
在拓撲發生變化後需要及時更新MAC位址表項。
本例中,SWB中的MAC位址表項定義了通過端口GigabitEthernet 0/0/3可以到達主機A,通過端口GigabitEthernet 0/0/1可以到達主機B。由于SWC的根端口産生故障,導緻生成樹拓撲重新收斂,在生成樹拓撲完成收斂之後,從主機A到主機B的幀仍然不能到達目的地。這是因為MAC位址表項老化時間是300秒,主機A發往主機B的幀到達SWB後,SWB會繼續通過端口GigabitEthernet 0/0/1轉發該資料幀。
6.5 拓撲改變導緻MAC位址表變化
拓撲變化過程中,根橋通過TCN BPDU封包獲知生成樹拓撲裡發生了故障。根橋生成TC用來
通知其他交換機加速老化現有的MAC位址表項。
拓撲變更以及MAC位址表項更新的具體過程如下:
- SWC感覺到網絡拓撲發生變化後,會不間斷地向SWB發送TCN BPDU封包。
- SWB收到SWC發來的TCN BPDU封包後,會把配置BPDU封包中的Flags的TCA位設定1,然後發送給SWC,告知SWC停止發送TCN BPDU封包。
- SWB向根橋轉發TCN BPDU封包。
-
SWA把配置BPDU封包中的Flags的TC位設定為1後發送,**通知下遊裝置把MAC位址表項的老化時間由預設的300秒修改為Forward Delay的時間(預設為15秒)。**☆
最多等待15秒之後,SWB中的錯誤MAC位址表項會被自動清除。此後,SWB就能重新開始MAC表項的學習及轉發操作。
7. RSTP(STP 優化)
7.1 STP缺陷
STP生成樹收斂需要依賴定時器計時,端口狀态從Blocking到Forwarding至少需要兩個forward relay的時間長度,收斂時間太長,一般都需要幾十秒。IEEE 802.1w定義了RSTP(Rapid Spanning Tree Protocol)彌補了STP收斂時間慢的缺陷。
7.2 RSTP
7.2.1 RSTP端口角色
角色 | 描述 |
---|---|
Backup | Backup端口作為指定端口的備份,提供了另外一條從根橋到非根橋的備份鍊路。 |
Alternate | Alternate端口作為根端口的備份端口,提供了從指定橋到根橋的另一條備份路徑。 |
7.2.2 三種端口狀态
RSTP中定義了三種端口狀态:Discarding、Learning、Forwarding。
RSTP 端口狀态 | 對應STP端口狀态 | 說明 |
---|---|---|
Forwarding | Forwarding | 可以轉發使用者資料幀,可以學習MAC位址 |
Learning | Learning | 不可以轉發使用者資料幀,但是可以學習MAC位址 |
Discarding | Listening、Blocking、Disabled | 不可以轉發使用者資料幀,不可以學習MAC位址 |
7.2.3 P/A機制
在RSTP中,一個端口被指定成為指定端口後,此端口會先進入discarding,然後通過**P/A(Proposal/Agreement)**機制主動與對端端口協商,通過協商後,就可以立即進入Forwarding狀态。
7.2.4 邊緣端口
- RSTP裡,位于網絡邊緣的指定端口被稱為邊緣端口。
- 邊緣端口一般與使用者終端裝置直接連接配接,不與任何交換裝置連接配接。邊緣端口不接收配置BPDU封包,不參與RSTP運算,可以由Disabled狀态直接轉到Forwarding狀态,且不經曆時延,就像在端口上将STP禁用了一樣。但是,一旦邊緣端口收到配置BPDU封包,就喪失了邊緣端口屬性,成為普通STP端口,并重新進行生成樹計算,進而引起網絡震蕩。
7.2.5 RSTP收斂過程
RSTP BPDU:RSTP對此進行了改進,即在拓撲穩定後,無論非根橋裝置是否接收到根橋傳來的配置BPDU封包,非根橋裝置都會仍然按照Hello Timer規定的時間間隔發送配置BPDU,該行為完全由每台裝置自主進行。
- 每一台交換機啟動RSTP後,都認為自己是“根橋”,并且發送RST BPDU。所有端口都為指定端口,
。處于Discarding狀态
- 交換機互相發送Proposal置位的RST BPDU。每個認為自己是“根橋”的交換機生成一個RST BPDU封包來協商指定網段的端口狀态,此RST BPDU封包的Flags字段裡面的Proposal位需要置位。當一個端口收到RST BPDU封包時,此端口會比較收到的RST BPDU封包和本地的RST BPDU封包。如果本地的RST BPDU封包優于接收的RST BPDU封包,則端口會丢棄接收的RST BPDU封包,并發送Proposal置位的本地RST BPDU封包來回複對端裝置。
- 交換機使用同步機制來實作端口角色協商管理。當收到Proposal置位并且優先級高的BPDU封包時,接收交換機必須設定所有下遊指定端口為Discarding狀态。
。如果下遊端口是Alternate端口或者邊緣端口,則端口狀态保持不變
- 當确認下遊指定端口遷移到Discarding狀态後,裝置發送RST BPDU封包回複上遊交換機發送的Proposal消息。在此過程中,端口已經确認為根端口,是以RST BPDU封包Flags字段裡面設定了Agreement标記位和根端口角色。
- 在P/A程序的最後階段,上遊交換機收到Agreement置位的RST BPDU封包後,指定端口立即從Discarding狀态遷移為Forwarding狀态。然後,下遊網段開始使用同樣的P/A程序協商端口角色。
7.2.6 鍊路故障/根橋失效
-
在STP中,當出現鍊路故障或根橋失效導緻交換機收不到BPDU時,交換機需要等待Max Age時間後才能确認出現了故障。
g狀态。
。如果下遊端口是Alternate端口或者邊緣端口,則端口狀态保持不變
- 當确認下遊指定端口遷移到Discarding狀态後,裝置發送RST BPDU封包回複上遊交換機發送的Proposal消息。在此過程中,端口已經确認為根端口,是以RST BPDU封包Flags字段裡面設定了Agreement标記位和根端口角色。
- 在P/A程序的最後階段,上遊交換機收到Agreement置位的RST BPDU封包後,指定端口立即從Discarding狀态遷移為Forwarding狀态。然後,下遊網段開始使用同樣的P/A程序協商端口角色。
7.2.6 鍊路故障/根橋失效
- 在STP中,當出現鍊路故障或根橋失效導緻交換機收不到BPDU時,交換機需要等待Max Age時間後才能确認出現了故障。
- 而在RSTP中,如果交換機的端口在連續3次Hello Timer規定的時間間隔内沒有收到上遊交換機發送的RST BPDU,便會确認本端口和對端端口的通信失敗,進而需要重新進行RSTP的計算來确定交換機及端口角色。