生成樹協議(STP)--BPDU
生成樹協議,分析橋協議數據單元吧
交換機之間通過BPDU(Bridge Protocol Data Unit,橋協議數據單元)來交換網橋ID、根路徑成本等信息,交換機從端口發送出一個BPDU幀,使用該端口本身的MAC地址作為源地址,因為交換機本身並不知道它周圍是否還有其他交換機存在
因此,BPDU利用了一個STP組播地址(00-00-00-00-00-00)作為它的一個目的地址,是之能到達相鄰的並處於STP偵聽狀態的交換機
單播:一對一
組播:一對組
廣播:一對多
每隔2s,便向所有的交換機端口發送一次BPDU報文,以便交換機(或網橋)能交換當前最新的拓撲信息
1.BPDU的2種類型
配置BPDU,用於生成樹計算
拓撲變更通告(TCN,Topology Change Notification)BPDU,用於通告網絡拓撲的變化
2.BPDU的報文字段
根網橋ID、根路徑成本、發送網橋ID、端口ID、計時器
3.STP利用BPDU選擇根網橋的過程
(1)當一台交換機第一次啟動時,假定自己是根網橋,在BPDU報文中的根網橋ID字段填入自己的網橋ID,向外發送
-
交換機比較接收到的BPDU報文中的根網橋ID與自己的網橋ID的值更小
如果接收到的BPDU中的根網橋ID值小於自己的網橋ID值,則用接收到的根網橋ID值替換現有的網橋ID
當所有的交換機互相接收了全部的BPDU后,就能夠選擇出全網公認的唯一一個網橋
-
收斂后,如果有一台網橋1D值更小的交換機加入進來,那么,它首先把自己當作一個根網橋在網絡中通告。由於那台新交換機的網橋ID值的確更小,所以其他的交換機在比較一番后,就會把它當作新的根網橋而記錄下來。
OK,數據單元以分析完,還差最后一個,STP的收斂
STP在交換機中自動運行,在交換機開機的時候可以看到,交換機的指示燈顯示為黃色,並且大約有30的時間不能轉發數據,這時交換機在做SIP計算,直到交換機的STP計算完畢,有些端口可以轉發數據,有些端口被阻塞,也就是網絡收斂后,交換機才開始轉發數據。當網絡的拓撲發生變化的時候,交換機還要重新運行STP計算,形成新的邏輯拓撲結構。這種重新計算STP的過程稱為"收斂"。
1.生成樹接口的狀態
狀 態
用 途
轉發(Forwarding)
發送/接收用戶數據
學習(Learning)
構建網橋表
偵聽(Listening)
構建"活動"拓撲
阻塞(Blocking)
只接收BPDU
禁用(Disabled)
強制關閉
如果一個端口允許轉發數據,它首先從Disabled狀態開始,經過幾個被動狀態,最后進入Active(活動)狀態,現將STP的端口狀態詳細描述如下。
Disabled(禁用):由網絡管理員設定或因網絡故障使系統的端口處於Disabled狀態,這是比較特殊的狀態它並不是端口正常的STP狀態的一部分,
Blocking(阻塞):在端口初始化后,一個端口既不能接收或發送數據,也不能向它的地址表添加MAC地址,相反。這樣的一個端口僅允許接收BDU報文以便能偵聽到其他鄰接交換機的信息,此外,選出指定端口后,非指定端口地處於Blocking狀態。
Listening(偵聽),如果一個交換機認為一個端口可選為根端口或指定端口那么,它就把該端口的Bookirng狀態變為Listening狀態,在Listening狀態,端口仍不能接收或發送數據幀、不過,為了使該端口加入到生成樹的拓撲過程,允許它接收或發送BPDU報文。由於該端口可以通過發送BPOU報文給其他交換機通告該端口的信息這個端口最終可能被允許成為一個根端口或指定端口,如果該端口失去根端口或指定端口的地位,那么它將返回到Blocking狀態.
Learning(學習):一個端口在Learning狀態下經過一段時間(稱為轉發延遲)后,將轉為Learning狀態,該端口仍可像從前一樣發送和接收BPDU、不過這交換機可以學習新的MAC地址、並將該地址添加至交換機的地址表中,正因為如此,才使得交換機可以沉默一定的時間才處理有關地址表的信息。
Forwarding(轉發):在Learning狀態下再經歷一定的轉發延遲時間法瀾口轉人到Forwarding狀態。在Forwarding狀態,該端口既可以發送和接收數據械,也可以收集MAC地址加入到它的地址表,還可以發送和接收對報文在生成樹拓撲中,該端口至此才成為一個全功能的交換機端口2.生成數計時器:控制每個階段的時間長度
STP利用三種計時方法來確保一個網絡正確的收斂
(1)Hello時間:網橋發送配置BPDU報文之間的時間間隔。在根網橋交換機中配置的訪問時間。
(2)轉發延遲:一個交換機端口在Listening狀態和Learning狀態所花費的時間間隔,它的默認值各為15s.
(3)最大老化時間,交換機在丟棄BPDU報文之前儲存它的最大時間。最大老化時間的默認值是20s.
偵聽和學習都是生成樹所實施的過渡狀態,用來強迫端口等待來自其他交換機上的所有BPDU.典型的端口過渡如下。
(1)從阻塞到偵聽(20s)
(2)從偵聽到學習(15s)
(3)從學習到轉發(15s)
當啟用STP時:VLAN上的每台交換機在加電以后都經過從阻塞到偵聽、學習的過渡狀態STP計時器可以用命令予以配置和調整,如果不是經過認真考慮和規划,建議不要輕易改變計時器的默認值