RSTP

網路保護技術之一

RSTP(rapid spanning Tree Protocol ),即快速生成樹協議,最早在IEEE 802.1W-2001中提出,這種協議在網路結構發生變化時,能更快的收斂網路。它比802.1d多了一種埠類型:備份埠(backup port)類型,用來做指定埠的備份。 STP(Spanning Tree Protocol )是生成樹協議的英文縮寫。該協議可應用於環路網路,通過一定的演演算法實現路徑冗餘,同時將環路網路修剪成無環路的樹型網路,從而避免報文在環路網路中的增生和無限循環。

簡介


快速生成協議(Rapid Spanning Tree Protocol ,RSTP)用於在區域網中消除數據鏈路層物理環路,其核心是快速生成樹演演算法。RSTP由IEEE 802.1D-1998標準定義的STP(Spanning Tree Protocol,生成樹協議)改進而來,最早在IEEE 802.1W-2001中提出,並且在IEEE 802.1D-2004標準中替代了原來的STP協議。RSTP完全向下兼容STP協議,除了和傳統的STP協議一樣具有避免迴路、動態管理冗餘鏈路的功能外,RSTP極大的縮短了拓撲收斂時間,在理想的網路拓撲規模下,所有交換設備均支持RSTP協議且配置得當時,拓撲發生變化(鏈路UP/DOWN)后恢復穩定的時間可以控制在秒級,而傳統的拓撲穩定且能正常工作所需時間為50秒。RSTP的主要功能可以歸納如下:
1、發現並生成區域網的一個最佳樹型拓撲結構;
2、發現拓撲故障並隨之進行恢復,自動更新網路拓撲結構,啟用備份鏈路,同時保持最佳樹型結構;
運行RSTP協議的網路交換設備通過對自身網橋信息和接收到的BPDU中來自其他網橋的信息進行比較,利用RSTP演演算法進行計算,更新系統狀態機,選舉埠角色並阻塞某些埠,將環形網路裁剪成樹形網路,防止環形網路中的報文增生和無限循環產生的廣播風暴,避免因此帶來的報文處理能力下降問題的發生。

基本原理


STP協議由IEEE802.1D定義,RSTP由IEEE802.1W定義。
STP的基本原理是,通過交換機之間傳遞一種特殊的協議報文(在IEEE 802.1D中這種協議報文被稱為“配置消息”)來確定網路的拓撲結構。配置消息中包含了足夠的信息來保證交換機完成生成樹計算。
生成樹協議STP/RSTP

技術原理


Rstp是從stp發展過來的,其實現基本思想一致,但它更進一步的處理了網路臨時失去連通性的問題。Rstp規定在某些情況下,處於Blocking狀態的埠不必經歷2倍的Forward Delay時延而可以直接進入轉髮狀態。如網路邊緣埠(即直接與終端相連的埠),可以直接進入轉髮狀態,不需要任何時延。或者是網橋舊的根埠已經進入Blocking狀態,並且新的根埠所連接的對端網橋的指定埠仍處於Forwarding狀態,那麼新的根埠可以立即進入Forwarding狀態。即使是非邊緣的指定埠,也可以通過與相連的網橋進行一次握手,等待對端網橋的贊同報文而快速進入Forwarding狀態。當然,這有可能導致進一步的握手,但握手次數會受到網路直徑的限制。

功能介紹


生成樹協議最主要的應用是為了避免區域網中的網路環回,解決成環乙太網網路的“廣播風暴”問題,從某種意義上說是一種網路保護技術,可以消除由於失誤或者意外帶來的循環連接。STP也提供了為網路提供備份連接的可能,可與SDH保護配合構成以太環網的雙重保護。新型以太單板支持符合ITU-T 802.1d標準的生成樹協議STP及802.1w規定的快速生成樹協議RSTP,收斂速度可達到1s。

埠狀態


802.1d
交換機的埠在STP環境中共有5種狀態:阻塞blocking、監聽listening、學習learning、轉發forwarding、關閉(disable)。
*Blocking:處於這個狀態的埠不能夠參與轉發數據報文,但是可以接收配置消息,並交給CPU進行處理。不過不能發送配置消息,也不進行地址學習。
*Listening:處於這個狀態的埠也不參與數據轉發,不進行地址學習;但是可以接收併發送配置消息。
*Learning:處於這個狀態的埠同樣不能轉發數據,但是開始地址學習,並可以接收、處理和發送配置消息。
*Forwarding:一旦埠進入該狀態,就可以轉發任何數據了,同時也進行地址學習和配置消息的接收、處理和發送。
交換機上一個原來被阻塞掉的埠由於在最大老化時間內沒有收到BPDU,從阻塞狀態轉變為傾聽狀態,傾聽狀態經過一個轉發延遲(15秒)到達學習狀態,經過一個轉發延遲時間的MAC地址學習過程後進入轉髮狀態。
如果到達傾聽狀態后發現本埠在新的生成樹中不應該由此埠轉發數據則直接回到阻塞狀態。
當拓撲發生變化,新的配置消息要經過一定的時延才能傳播到整個網路,這個時延稱為轉發延遲(Forward Delay),協議默認值是15秒。
在所有網橋收到這個變化的消息之前,若舊拓撲結構中處於轉發的埠還沒有發現自己應該在新的拓撲中停止轉發,則可能存在臨時環路。為了解決臨時環路的問題,生成樹使用了一種定時器策略,即在埠從阻塞狀態到轉髮狀態中間加上一個只學習MAC地址但不參與轉發的中間狀態,兩次狀態切換的時間長度都是Forward Delay,這樣就可以保證在拓撲變化的時候不會產生臨時環路。
802.1w
STP定義了5種不同的埠狀態,關閉(disable),監聽(Listening),學習(Learning),阻斷(Blocking)和轉發(Forwarding),其埠狀態表現為在網路拓撲中埠狀態混合(阻斷或轉發),在拓撲中的角色(根埠、指定埠等等)。在操作上看,阻斷狀態和監聽狀態沒有區別,都是丟棄數據幀而且不學習MAC地址,在轉髮狀態下,無法知道該埠是根埠還是指定埠。
在RSTP中只有三種埠狀態,Discarding、Learning和Forwarding。802.1D中的禁止埠,監聽埠,阻塞埠在802.1W中統一合併為禁止埠。
RSTP根據埠在活動拓撲中的作用,定義了3種埠角色(STP有5種角色):禁用埠(Disabled Port)、根埠(Root Port)、指定埠(Designated Port)、為支持RSTP的快速特性規定的替代埠(Alternate Port)和備份埠(Backup Port)。
表8-20 STP和RSTP埠狀態比較
表8-20
RSTP有五種埠類型。根埠和指定埠這兩個角色在RSTP中被保留,阻斷埠分成備份和替換埠角色。生成樹演演算法(STA)使用BPDU來決定埠的角色,埠
STP
Port State
RSTP
Port State
埠是否
為活躍狀態
埠是否
學習MAC地址
禁止禁止NoNo
阻塞禁止NoNo
監聽禁止YesNo
學習學習YesYes
轉發轉發YesYes
類型也是通過比較埠中保存的BPDU來確定哪個比其他的更優先。
1)根埠
非根橋收到最優的BPDU配置信息的埠為根埠,即到根橋開銷最小的埠,這點和STP一樣。請注意圖8-16上方的交換機,根橋沒有根埠。
按照STP的選擇根埠的原則,SW-1和SW-2和根連接的埠為根埠。
RSTP
RSTP
圖8-16 RSTP根埠
2)指定埠
與STP一樣,每個乙太網網段段內必須有一個指定埠。假設SW-1的BID比SW-2 優先,而且SW-1的P1口埠ID比P2優先順序高,那麼P1為指定埠,如圖8-17所示。
RSTP
RSTP
圖8-17 指定埠的選擇
3)替換埠
如果一個埠收到另外一個網橋的更好的 BPDU,但不是最好的,那麼這個埠成為替換埠,如圖8-18所示。
對於SW-2來說,埠P3收到的BPDU比自己優先,自己為次優先,P3為替換埠。
4)備份埠
如果一個埠收到同一個網橋的更好 BPDU,那麼這個埠成為備份端。當兩個埠被一個點到點鏈路的一個環路連在一起時,或者當一個交換機有兩個或多個到共享區域網段的連接時,一個備份埠才能存在。
如圖8-19所示,SW-1的P1和P2口同時接入到乙太網的同一網段,P1為指定埠,P2 優先順序低,則P2埠為備份埠。
RSTP
RSTP
圖8-18 替換埠的選擇
RSTP
RSTP
圖8-19 備份埠的選擇
5)禁用埠
在快速生成樹協議應用的網路運行中不擔當任何角色。

模式配置


步驟1:進入全局模式
Switch#configure terminal
步驟2:開啟生成樹協議
Switch(config)#spanning-tree
默認狀態下STP協議是關閉的,需要用命令打開
步驟3:配置生成樹模式
Switch(config)#spanning-tree mode { mstp | rstp | stp }

機制設置


P/A機制即Proposal/Agreement機制。其目的是使一個指定埠儘快進入Forwarding狀態。其過程的完成根據以下幾個埠變數:
A)Proposing。當一個指定埠處於Discarding或Learning狀態的時候,該變數置位。並向下游交換傳遞Proposal位被置位的BPDU。
B)Proposed。當下游交設備埠收到對端的指定埠發來的攜帶Proposal的BPDU的時候。該變數置位。該變數指示上游網段的指定埠希望進入Forwarding狀態。
C)sync。當Proposed被設置以後,收到Proposal置位信息的根埠會依次為自己的其他埠置位sync變數。如果埠是非邊緣的指定埠是則會進入Discarding狀態。
D)synced。當其它埠完成轉到Discarding后,會設置自己的synced變數(Alternate、Backup和邊緣埠會馬上設置該變數)。根埠監視其他埠的synced,當所有其他埠的synced全被設置,根埠會設置自己的synced,然後傳回BPDU,其中Agreement位被置位。
E)agreed。當指定埠接收到一個BPDU時,如果該BPDU中的Agreement位被置位且埠角色定義是“根埠”,該變數被設置。Agreed變數一旦被置位,指定埠馬上轉入Forwarding狀態。

協議改進


A、STP沒有明確區分埠狀態與埠角色,收斂時主要依賴於埠狀態的切換。RSTP比較明確的區分了埠狀態與埠角色,且其收斂時更多的是依賴於埠角色的切換。
B、STP埠狀態的切換必須被動的等待時間的超時。而RSTP埠狀態的切換卻是一種主動的協商。
C、STP中的非根網橋只能被動的中繼BPDU。而RSTP中的非根網橋對BPDU的中繼具有一定的主動性。