生成樹協議(STP)基本知識及實驗(使用eNSP)

2022-06-28 10:57:11 字數 3762 閱讀 9383

(1)生成樹的作用:在鏈路層消除環路上可能出現的廣播風暴。

(2)生成樹的工作由三部分組成:選舉過程、拓撲計算、埠行為確定。

選舉過程:在二層網路中選舉乙個網橋作為根橋,用於指揮整網裝置協同工作。根橋只是負責統一計算的規則。

根橋統一網路中所有網橋的行為準則的原理:通過在某個恰當位置阻塞埠來阻止環路的發生。從一台網橋的角度來說,它通過這樣的法則進行判斷,如果到達網路中的某一網橋只有一條路徑,那麼必定不存在環路;如果到達某一網橋的路徑有兩條或者多條,那麼這兩台網橋之間存在環路,只能保持一條通路。

(3)根橋的選舉方式

根橋是通過網路中所有網橋間相互比較產生的。根橋只能由網路中橋id最小者擔當。一開始時把自己當作根橋,根橋id就是自己的橋id,然後通過bpdu和自己的鄰居交換拓撲資訊,如果鄰居的根橋id小於自己的橋id,則把鄰居當作自己的根橋,然後向其他鄰居通告這個新的根橋資訊,直到網路中所有網橋的根橋id都一樣時,根橋就被選舉了出來。

橋id有8個位元組,由兩部分組成,分別是2位元組的橋優先順序欄位和6位元組的橋mac欄位。橋優先順序欄位可手工設定,預設為0x8000;橋mac即網橋的物理mac。

(4)使網路中的網橋和根橋保持統一的方式

通過乙個獨特的訊息機制實現,當根橋被選舉出來後,根橋會週期性的向所有鄰居傳送bpdu報文,這個週期被稱為hello time,預設設定為2s。鄰居收到根橋傳送來的bpdu時,會更新自己的狀態和定時器,然後**出去。在生成樹協議中(stp)只有根橋有主動傳送bpdu的權力。快速生成樹協議(rstp)中所有網橋都會按照hello time的時間間隔主動從指定埠傳送bpdu。

生成樹協議中的bpdu報文有兩種,乙個被稱為配置bpdu(configuration bpdu),一種被稱為拓撲變化通知bpdu(topology change notification bpdu 或叫 tcn bpdu)

配置bpdu報文格式如下:

埠id佔2個位元組,和橋id類似分為兩個部分,前8bits為優先順序,預設值為0x80,可手工修改,後8bits為埠號,由裝置指定,保證每個埠都不一樣。

tcn bpdu報文只有前三個字段,其中前兩個欄位和配置bpdu一樣,bpdu type欄位的值為0x80。

root path cost(根橋路徑開銷)代表了這個網橋到根橋的距離,對根橋而言,這個值被設定為0。當網橋收到乙個bpdu,其中的根橋id比自己當前的根橋id小時,這個網橋會將bpdu中的root paath cost加上接收到這個bpdu的埠的cost值作為自己的root path cost。

message age是用來衡量當前網橋所收到的bpdu在網路內傳播時間的乙個引數,根橋在構造傳送bpdu的時候,會將這個字段設定為0,但下游網橋在傳遞從根橋發來的bpdu時,會在bpdu報文的message age欄位中把這一跳**過程中可能引入的時延上限加到裡面。

max age是乙個預先設定的值,這個值可以看作是乙個門限,用來配合message age定時器。

message age和max age是生成樹協議用於判斷拓撲是否變化的重要指標。網橋在根埠上設定了乙個定時器,如果通往根橋的路徑完好,根埠會定時收到bpdu,並更新這個定時器。如果一直不能收到bpdu,每過1s定時器就自動加1,但這個定時器超過某一門限(max age)之後,網橋會認為原根埠通往根橋的路徑已經出現了故障,拓撲發生了變化。

(5)連線到乙個lan的埠的優先順序比較

每個網橋都各自儲存著一套資訊,包括當前的根橋id、root path cost和自己的橋id,每個埠還儲存著自己的埠id。

當埠收到bpdu後,先判斷根橋id,如果相同繼續比較根橋路徑開銷,再相同則比較橋id,如果再相同,則比較埠id。比較之後,比較失敗的埠停止向lan中**bpdu。這樣比較之後,最終獲勝的埠成為這個lan的指定埠。

在同一台網橋中,網橋會從在優先順序比較中失敗的埠中選擇乙個開銷最小的埠作為自己的根埠,作為網橋通往根橋的唯一出口,其他埠成為alternate埠進入blocking狀態,既不接收或**資料報文,也不**bpdu。根埠的選擇方式是依次比較root path cost(要先加上埠自身的cost)、橋id和埠id、本身的埠id。

(6)生成樹協議中埠的五種狀態

分別為:disable、blocking、listening、learning、forwarding。當埠沒有連線上或被shutdown時,處於disable狀態,一旦up起來後就進入blocking狀態,如果沒有收到優先順序更高的bpdu或本身被網橋選舉為根埠,會進入listening狀態,然後等待乙個forward delay的時間,進入learning狀態,再等待乙個forward delay的時間,如果埠沒有因為新的選擇過程而成為alternate的話,進入forwarding狀態。

blocking狀態下的埠不會**任何報文,或者學習mac位址;埠在listening狀態時即不**資料報文,也不會根據監聽到的資料報文學習mac位址; 在learning狀態時不**資料報文,但會學習mac位址;在forwarding狀態時即學習mac,也**資料報文。

埠狀態目的說明

forwarding  

埠既**使用者流量也處理bpdu報文

只有根埠或指定埠才能進入forwarding狀態

learning 

裝置會根據收到的使用者流量構建mac位址表,但不**使用者流量  

過渡狀態

listening 

確認埠角色,將選舉根橋、根埠和指定埠

指定埠blocking 

埠僅僅接收並處理bpdu,不**使用者流量

阻塞埠的最終狀態

2、實驗

實驗拓撲結構如下:

下面進行簡單的配置說明:

1.將lsw1、lsw2、lsw3、lsw4都設定為stp模式(預設為mstp)

2.使用display stp brief 命令檢視每個網橋的埠模式

對以上幾種介面角色進行一下簡單的說明:有4種介面角色:

可以看出上面的拓撲中把lsw3當作了根橋。lws1的根埠為eth 0/0/3、lsw2的根埠為eth 0/0/2、lsw4的根埠為eth 0/0/2。

在lsw3的eth 0/0/3埠抓取stp報文的格式如下:

STP生成樹協議(原理 實驗)

交換機工作原理回顧 1.基於源mac位址學習 2.基於已知目標mac位址 3.當目標mac位址未知時,泛洪處理 4.交換機收到廣播 組播幀時,無條件泛洪處理 5.交換機乙個介面可以學習多個mac位址 6.交換機學習到同乙個mac位址,但是是從不同的埠學習到的,此時,將此mac與後學習到的埠繫結起來 ...

STP生成樹協議

stp生成樹協議主要用來解決二層環路問題。2個交換機之間只有一條鏈路,造成網路可靠性不高,因此新增一條線路提高可靠性。但是這樣會帶來環路問題,環路又帶來二層廣播風暴和mac表紊亂等問題。為了解決這些問題,sip協議應運而生。stp根據一定的演算法將環路的某處進行堵塞,在單鏈路出現故障時,再將該處的堵...

生成樹 STP協議

stp協議主要是保證網路中不會出現環路,防止廣播風暴產生 stp協議主要進行的執行過程是 1.選舉根交換機 所有交換機而言 2.選舉根埠 非根交換機 3.選舉指定埠 不同網段交換機 選舉步驟 說明 網橋 交換機id 下面我都直接稱網橋id 交換機的優先順序和mac位址的組合 比較方式 先比較交換機a...