(一)、RSTP協議原理(RSTP和STP有兼容性的問題)
一、RSTP產生的背景
1.STP的缺陷:STP協議雖然能夠解決環路問題,但是由於網絡拓撲收斂較慢,影響了用戶通信質量,而且如果網絡中的拓撲結構頻繁變化,網絡也會隨之頻繁失去連通性,從而導致用戶通信頻繁中斷,這也是用戶無法忍受的。
2.由於STP的不足,IEEE於2001年發布的802.1w標准定義了RSTP。RSTP在STP基礎上進行了諸多改進優化,使得協議更加清晰、規范,同時也實現了二層網絡拓撲的快速收斂。
二、STP的不足
問題1.收斂慢 設備從初始化,到收斂完成,最少要經歷30s的時間 .為了防止臨時環路的出現,采用被動等待的計時器. STP的計算,必須要等待固定的時長20s

問題2.交換機BP(blocked) 端口,切換到RP的時候,至少要經歷兩個轉發延時(15*2)

問題3.交換機沒有BP端口,RP端口down掉了,DP端口至少要等待50s才能進行切換

##注解 :RP:root port 根端口 DP: 指定端口 BP:阻塞端口
問題4.交換機連接終端的端口,切換時間過長,30-50s

問題5.STP的拓撲變更機制,復雜,而且效率低下

問題6.端口角色划分不充分
*沒有指定面向用戶/終端的端口
*沒有備份的根端口/指定端口(30-50)

問題7.端口的狀態有些重復、而且增加了轉發延時

三、RSTP =》對STP技術的改進:端口角色、狀態等
1.端口角色的重新划分
新增了兩種角色:都是用來做備份的,本質上也是被阻塞的(非block狀態) 去掉了 阻塞端口
backup 端口 :指定端口的備份
alternate端口 :根端口的備份
端口切換不需要等待轉發延時,相當於STP的uplink-fast

2. 端口狀態的重新划分
狀態由5種縮減為三種

3.快速收斂機制
a)、針對問題1:P/A機制



解析:階段一:設備剛剛啟動,RSTP協議剛剛啟用,所有交換機都認為自己是根橋,向其他交換機發送P置位的BPDU,並把發送P消息的端口變成DP口,同時接口處在Discarding狀態。
階段二:交換機SWA收到SWB和SWC的P消息會置之不理,因為他的橋優先級最高。交換機SWB和SWC收到SWA的P消息后,由於認同SWA是最優的根橋,會根據P/A協商流程回復A消息,並把發送端口變成RP端口,同時接口處在Forwarding狀態。(非根橋交換機配合根橋完成PA,進行STNC同步,把除RP端口外的所有端口(不包括邊緣端口,阻塞端口),都阻塞。B,C向A發送A置為的BPDU)
階段三:SWA與SWB,SWA與SWB的P/A協商已經完成,接下來是SWB和SWC的P/A協商。
*SWB和SWC都會發送根橋為SWA的P消息給對方。
*SWC收到SWB的P消息后,發現P消息里雖然根橋和自己認可的一樣,但是發送者的橋優先級比自己高(SWB>SWC),所有馬上停止發送P消息,但是由於已經有端口是RP口,也不會回A消息。
*SWB收到SWC的P消息后,發現P消息里雖然根橋和自己認可的一樣,但是發送者的橋優先級比自己低(SWB>SWC),會不停的發送P消息。 以上狀態在等待2個Forward Delay時間后,SWB端口為DP端口,處在Forwarding狀態, SWC端口為AP端口,處在Discarding狀態。
*實際上SWB與SWC之間的協商等同於退回到STP的模式,但是反正是Discarding狀態,根本不影響其他業務轉發。
##注解:1.快速收斂機制
P/A(proposal/agreement sync機制 ) 一般都是秒級
讓一個指定端口,盡快進入轉發狀態,同時避免環路的發送
三種報文格式:P A SYNC
2.端口的快速切換機制
AP---DP ---針對與問題3
b)、針對問題2.根端口快速切換機制

c)、針對問題3.次等BPDU處理機制

##注釋:次等BPDU的處理機制
當一個接口接收到一個次等BPDU之后,馬上把自身儲存的(最優)BPDU返回給源端口,然后啟動P/A機制,可以實現接口的秒級切換
d)、針對問題4.邊緣端口的引入

4.拓撲變化處理機制
e)、針對問題5.拓撲變更機制優化(扁平化管理)

解析:一旦檢測到拓撲發生變化,將進行如下處理:
*為本交換設備的所有非邊緣指定端口啟動一個TC While Timer,該計時器值是Hello Time的兩倍。在這個時間內,清空狀態發生變化的端口上學習到的MAC地址。同時,由這些端口向外發送RST BPDU,其中TC置位。一旦TC While Timer超時,則停止發送RST BPDU。
*其他交換設備接收到RST BPDU后,清空所有端口學習到MAC地址,除了收到RST BPDU的端口。然后也為自己所有的非邊緣指定端口和根端口啟動TC While Timer,重復上述過程。 如此,網絡中就會產生RST BPDU的泛洪。
5.STP和RSTP的兼容性(RSTP能夠向下兼容)
RSTP協議與STP協議完全兼容
RSTP協議根據收到的BPDU版本號來自動判斷與之相連的交換機支持STP協議還是RSTP協議

解析:a.SW1支持RSTP,發送的報文是STP報文 SW2僅支持STP 發送的報文是STP報文 ===》STP
b.SW1支持RSTP,發送的報文是STP報文 SW3支持RSTP,發送的報文是STP報文 ===》STP
c.SW1支持RSTP,發送的報文是RSTP報文 SW#支持RSTP,發送的報文是RSTP報文 ===》RSTP
6.保護功能
1.BPDU保護
配置邊緣端口的目的:希望這些端口以后組網的時候,連接的都是終端設備
即使邊緣端口連接了交換機,也需要先把這個交換機進行BPDU參數的調試(BID,端口cost值),當交換機接入網絡,即使存在STP的計算,不會再次造成網絡的震盪
如果邊緣端口硬性規定為不允許連接交換機,在這些端口上來配置BPDU-protection。

實現原理:配置BPDU保護功能后,如果邊緣端口收到BPDU報文,邊緣端口將會被立即關閉。
2.根保護
場景1.客戶網絡和運營商網絡之間進行二層對接 ===》 根橋防護主要配置在運營商網絡上
場景2.由於維護人員的錯誤配置或網絡中的惡意攻擊,網絡中合法根橋有可能會收到優先級更高的RST BPDU
實現原理:一旦啟用Root保護功能的指定端口收到優先級更高的RST BPDU時,端口狀態將進入Discarding狀態,不再轉發報文。在經過一段時間,如果端口一直沒有再收到優先級較高的RST BPDU,端口會自動恢復到正常的Forwarding狀態。
Root保護功能只能在指定端口上配置生效

3.TC-BPDU泛洪保護
場景:黑客在邊緣端口接入一台計算機不斷偽造和發送TC-BPDU (對於邊緣端口來說,不希望收到BPDU報文)
解決方法1:強制規定該端口為邊緣端口,禁止這個端口接收BPDU---》BPDU-protection
解決方法2:(如果允許邊緣端口接收BPDU),黑客想這個端口發送TC-bpdu,
在單位時間內,交換設備處理TC-BPDU報文的次數可配置,設備只會處理閾值指定的次數
如果TC-BPDU 超過了閾值設置,交換機將不在對這些TC-BPDU進行處理.

四、RSTP配置實現
1.
*stp enable //全局開啟
*STP stp mode rstp //配置STP模式為RSTP
*stp root primary //配置SWA為根橋
*stp bpdu-protection //全局開啟BPDU防護,配合邊緣端口一起使用
*stp edged-port enable //配置端口為邊緣端口
*display interface brief //查看端口信息
2.

