1. 程式人生 > >STP生成樹協議的理解

STP生成樹協議的理解

---這裡主要是關於生成樹的原理的講解(主要應用於二層交換技術即區域網交換技術),明白的就很簡單。我的知識比較淺薄,這裡的生成樹是基於在同一個valn裡面的。多個VLAN的解決協議則是MSTP的能夠解決的。

1.STP存在的意義:

     樹與圖的最大不同則是,圖是有環路的,樹則是沒有環路的。用樹的特性來解決網路環路的問題是再合適不過的啦。在實際的網路配置當中,交換機與另一臺交換機的鏈路是不可能只有一條鏈路。就像高速公路發生塌方,我們則會此路不通再找另一路。但是這樣會出現一個問題,各個交換機裝置都有鏈路連線,資料報到達目的主機的路線機會增多,從而使資料報在交換機之間不斷轉發,形成一個環路。如果我們給各個資料幀指定一條到達目的主機的最短路徑,那麼就不會形成環路,因為資料幀就會沿著我們給定的路線傳輸

     多鏈路形成的環路問題;1.廣播風暴 2.多重複幀複製 3.mac地址表不穩定(可以自行百度)

2.STP是根據什麼依據來指定到達目的主機的最短路徑的(選擇標準是什麼?):

     2.1 選擇最低的BID;

     2.2 選擇最低的路徑開銷(一定是到跟橋的路徑);

     2.3 選擇最低傳送者的BID;

     2.4 選擇最低埠優先順序;

     2.5 選擇最低埠的ID;

3.STP選擇的步驟:

    3.1 選擇根橋;

    3.2 選擇根埠(RP);

    3.3 選擇指定埠(DP),而非指定埠進入阻塞狀態;

    3.4 RP,DP設定為轉發狀態,其他埠為阻塞狀態;

值得注意的是:STP是交換機自帶的,可以自我生成。

                            在每個接受埠累加開銷值(比如A----->B     路徑開銷為19 ,初始值為0    在B的埠接受時初始值累加為19 而從A—>B的途中初始值依舊為0)

                            每個非根橋交換機都選出一個根埠

                            每一個vlan都有一個生成樹

                            VLAN1是刪不掉的,因為所以的埠都在裡面

名詞解釋:1.根橋:樹的特點則是有根節點的,而這裡的根橋就是相當於樹的根節點。以根橋為起始點發散出去。

                     2.BID:選擇根橋就需要交換機自我選擇,需要交換機們的通訊,這些資訊被稱為BPDU(橋協議資料單元),每兩秒傳送一次,BPDU的包含資訊比較多,BID就是                                      其中的一種。BID最小的就是根交換機ID。BID=橋優先順序+橋Mac地址,一般交換機的橋優先順序都是一樣的,所以一般比較Mac地址的大小。

                     3.根埠:不是根橋的交換機,選擇一個埠用來連線根橋。根埠只能在非根交換機上選取。

                     4.指定埠:每兩個交換機之間的鏈路上選擇一個埠。

4.例項:

 4.1 路徑值如圖:乙太網 19 ,百兆網  4.

         BID如圖:列如:32769 0001.635C.D3A5

         A,B,C,D,E為交換機的名字

         檢視BID的命令為:show spanning-tree

        在同一個vlan裡面:


4.2  STP的流程:

1.選擇根橋:

     如圖:比較全部裝置的BID,其中E的BID最小(由於都是32769, 所以比較的Mac地址,得出數字最小的),所以E為根橋

2.選擇根埠

     為每一個非根橋的交換機(這裡指A,B,C,D)選擇一個距離根橋的最短路徑。

     即:C---->E :根埠為C的F0/3     路徑為 19 最小。

             D---->E :根埠為D的F0/5     路徑為 19 最小。

             B---->E :根埠為B的F0/3      路徑為 19 最小。

             A---->E :他不能直接到達,需要第三方,他有兩天路徑;

                               A---->B---->E :路徑為19+4

                               A---->C---->E :路徑為19+4

                               路徑開銷一致進行第三條判斷依據:最低傳送者的BID(對於A來說,B,C為傳送者),

                               因為C的BID小於B的BID,所以選擇  A---->C---->E這條路徑,所以

                               根埠為A的G0/2  路徑為19+4 最小。

3.選擇指定埠:

       為一對交換機之間選擇指定埠(即路徑最小的為指定埠):這裡就舉幾個例子,主要是太多了難得寫。

       注意;這裡是在接受的埠累加路徑的開銷值。從E出來的路徑開銷值初始值都為0

       3.1 D------------------E:   路徑開銷為19  (在E的埠初始值為0,在D的埠初始值為19,在中間的那條線上初始值為0)

       如何判斷:     站在D,E的中間,  前往D的方向,到達D的埠,開銷值為19.      前往E的方向,開銷的初始值為0.   0<19 

       所以指定的埠為 E的F0/5;

      3.2   B-----------------D:   路徑開銷為4   (在B的埠初始值為19,在D的埠初始值為19  ;路徑開銷值是到達根橋的路徑值)

        如何判斷:  站在B,D的中間,由於路徑開銷相等,進行第三條判斷(比較傳送端的BID)因為B的BID(0060.3EEE.3E25)>D的BID(000C.CFD1.67BA)

         所以指定的埠為 D的G0/2;

      3.3 其他大都是在這樣判斷的。

4.根埠與指定埠設定為轉發狀態,其他埠為阻塞狀態:

    交換機自動設定,也可以管理員再次設定。(如何配置,我會寫到其他的篇的地方)

5.特殊情況:

    在前面我們只用到了前三條選擇指標,其實前三條已經可以判斷出80%~90%的情況,還有極個別情況如圖:

     

1.BID最小 :A為根橋

2.B----->A的根埠:

 由於路徑一樣,路徑開銷都為19 ,只有一個非根裝置,不用比較(這是第三條判斷)。

用show spaning-tree 其中F0/5與F0/3的埠優先順序都為128.(這是第四條判斷)。

比較傳送者的埠ID(對於B來說   A為傳送者)

    因為 A的F0/9 < A的F0/10 

所以連線在F0/9的那條線上的B的指定埠為F0/5.