基本原理
STP協定由IEEE802.1D定義,RSTP由IEEE802.1W定義。
STP的基本原理是,通過交換機之間傳遞一種特殊的協定報文(在IEEE 802.1D中這種協定報文被稱為“配置訊息”)來確定網路的拓撲結構。配置訊息中包含了足夠的信息來保證交換機完成生成樹計算。
生成樹協定STP/RSTP
功能介紹
生成樹協定最主要的套用是為了避免區域網路中的網路環回,解決成環乙太網網路的“廣播風暴”問題,從某種意義上說是一種網路保護技術,可以消除由於失誤或者意外帶來的循環連線。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根據連線埠在活動拓撲中的作用,定義了5種連線埠角色(STP只有3種角色):禁用連線埠(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地址 |
禁止 | 禁止 | No | No |
阻塞 | 禁止 | No | No |
監聽 | 禁止 | Yes | No |
學習 | 學習 | Yes | Yes |
轉發 | 轉發 | Yes | Yes |
類型也是通過比較連線埠中保存的BPDU來確定哪個比其他的更優先。
1)根連線埠
非根橋收到最優的BPDU配置信息的連線埠為根連線埠,即到根橋開銷最小的連線埠,這點和STP一樣。請注意圖8-16上方的交換機,根橋沒有根連線埠。
按照STP的選擇根連線埠的原則,SW-1和SW-2和根連線的連線埠為根連線埠。
圖8-16 RSTP根連線埠 |
2)指定連線埠
與STP一樣,每個乙太網網段段內必須有一個指定連線埠。假設SW-1的BID比SW-2 優先,而且SW-1的P1口連線埠ID比P2優先權高,那么P1為指定連線埠,如圖8-17所示。
圖8-17 指定連線埠的選擇 |
3)替換連線埠
如果一個連線埠收到另外一個網橋的更好的 BPDU,但不是最好的,那么這個連線埠成為替換連線埠,如圖8-18所示。
對於SW-2來說,連線埠P3收到的BPDU比自己優先,自己為次優先,P3為替換連線埠。
4)備份連線埠
如果一個連線埠收到同一個網橋的更好 BPDU,那么這個連線埠成為備份端。當兩個連線埠被一個點到點鏈路的一個環路連在一起時,或者當一個交換機有兩個或多個到共享區域網路段的連線時,一個備份連線埠才能存在。
如圖8-19所示,SW-1的P1和P2口同時接入到乙太網的同一網段,P1為指定連線埠,P2 優先權低,則P2連線埠為備份連線埠。
圖8-18 替換連線埠的選擇 |
圖8-19 備份連線埠的選擇 |
5)禁用連線埠
在快速生成樹協定套用的網路運行中不擔當任何角色。
配置
步驟1:進入全局模式
Switch#configure terminal
步驟2:開啟生成樹協定
Switch(config)#spanning-tree
默認狀態下STP協定是關閉的,需要用命令打開
步驟3:配置生成樹模式
Switch(config)#spanning-tree mode { mstp | rstp | stp }