溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

生成樹協(xié)議(STP)工作原理與算法

發(fā)布時間:2020-08-17 05:10:30 來源:網(wǎng)絡 閱讀:3563 作者:代杰豪 欄目:網(wǎng)絡管理

生成樹協(xié)議(STP

一、STP概述

1、交換機網(wǎng)絡環(huán)路的產(chǎn)生

生成樹協(xié)議(STP)工作原理與算法

   如上圖所示,PC1PC2通過交換機相連,網(wǎng)絡初始狀態(tài)時,PC1PC2的通信過程如下。

生成樹協(xié)議(STP)工作原理與算法

   1)、在網(wǎng)絡通信的最初,PC1ARP條目中沒有PC2MAC地址,根據(jù)ARP原理,PC1首先會發(fā)送一個ARP廣播請求(請求PC2MAC地址)交給交換機SW1。

   2)、擋SW1收到ARP的廣播請求時,根據(jù)交換機的轉(zhuǎn)發(fā)原理,SW1交換機將廣播幀從除接收端口之外的所有端口轉(zhuǎn)發(fā)出去(即該廣播會從F0/1F0/2分別轉(zhuǎn)發(fā)給SW2SW3)。

   3)、SW2收到廣播幀后,同樣根據(jù)交換機的轉(zhuǎn)發(fā)原理,將廣播幀從F0/2和連接PC2的端口轉(zhuǎn)發(fā),同樣,SW3收到廣播幀后,將其從F0/2端口轉(zhuǎn)發(fā)。

   4)、SW2F0/2端口收到從SW3發(fā)送的廣播幀后,將其從F0/2和連接PC2的端口轉(zhuǎn)發(fā),同樣,SW3收到從SW2發(fā)送的廣播幀后,將其從F0/1端口轉(zhuǎn)發(fā)。

   5)、SW1分別從SW2、SW3收到廣播幀,然后將從SW2收到的廣播幀轉(zhuǎn)發(fā)給SW3,而將從SW3收到的廣播幀轉(zhuǎn)發(fā)給SW2。

   SW1、SW2SW3會將廣播幀相互轉(zhuǎn)發(fā),這是網(wǎng)絡就形成了一個環(huán)路,而交換機之間并不知道,這將導致廣播幀在這個環(huán)路中永遠循環(huán)下去,如下圖所示:

生成樹協(xié)議(STP)工作原理與算法

  在實際網(wǎng)路環(huán)境中,情況要復雜得多,擋廣播幀經(jīng)過交換機時,交換機就以指數(shù)的形式生成廣播幀(交換機除收到該廣播幀之外的所有端口轉(zhuǎn)發(fā)廣播幀)。這種廣播幀會越來越多。最終形成廣播風暴,導致網(wǎng)絡癱瘓。

  但是環(huán)狀的物理線路能夠為公司提供備份喜愛南路,增強網(wǎng)絡的可靠性,因此有一種解決方法,一方面能夠保證網(wǎng)絡的可靠性,另一方面還可以防止廣播風暴的產(chǎn)生。

  STP(生成樹協(xié)議):并不是斷掉物理環(huán)路,而是在邏輯上斷開環(huán)路,防止廣播風暴產(chǎn)生。

 

 

 

 1.2STP簡介

   STP(生成樹協(xié)議):就是把一個環(huán)形的結構改變成一個樹形的結構。STP協(xié)議就是用來講物理上存在環(huán)路的網(wǎng)絡,通過一種算法,在邏輯上阻塞一些端口,來生成一個邏輯上的樹形結構。

邏輯上斷開環(huán)路,防止廣播風暴的產(chǎn)生。

當線路故障,阻塞接口被激活,恢復通信,起備份線路的作用。

 

 

三臺交換機正常使用STP邏輯上斷開一個端口之后的通信過程,如下圖

生成樹協(xié)議(STP)工作原理與算法

 

 

SW1SW2的鏈路發(fā)生故障時,會將邏輯堵塞的端口自動開啟,如下如:

生成樹協(xié)議(STP)工作原理與算法

二、STP的工作原理

1、生成樹算法

   生成樹算法可以歸納為以下三個步驟:

   1)、選擇根網(wǎng)橋(boot bridge

   2)、選擇根端口(root ports

   3)、選擇指定端口(designated ports

 

 

      1)、選擇根網(wǎng)橋的算法

          選擇根網(wǎng)橋的依據(jù)是網(wǎng)橋ID,網(wǎng)橋ID是一個8字節(jié)的字段,其組成結構圖如下圖所示,

生成樹協(xié)議(STP)工作原理與算法

 

2字節(jié)的十進制數(shù)成為網(wǎng)橋優(yōu)先級,后6字節(jié)是網(wǎng)橋的MAC地址。

網(wǎng)橋優(yōu)先級是用于衡量網(wǎng)橋在生成樹算法中優(yōu)先級的十進制數(shù),取值范圍為0~65535,,默認值是32768。

網(wǎng)橋ID中的MAC地址是交換機自身的MAC地址,使用show ver可查看。

交換機顯示MAC的地址如下:

生成樹協(xié)議(STP)工作原理與算法

按照生成樹算法的定義:交換機網(wǎng)橋ID值最小,優(yōu)先級小的被選擇為根網(wǎng)橋;優(yōu)先級相同情況下,MAC地址小的為根網(wǎng)橋。

 

      2)、選擇根端口

          根端口存在于非網(wǎng)橋上,需要在每個非根網(wǎng)橋上選擇一個根端口。

選擇根端口時,順序如下:

a、到根網(wǎng)橋最低的根路徑成本

b、直連的網(wǎng)橋ID最小

c、 端口ID最小

 

帶寬與路徑成本的關系

鏈路帶寬(Mbps

路徑成本

10

100

16

62

45

39

100

19

155

14

622

6

1000

4

10000

2

 

端口ID是一個2字節(jié)的STP參數(shù),由1字節(jié)端口優(yōu)先級和1字節(jié)端口編號組成。

生成樹協(xié)議(STP)工作原理與算法

 

端口優(yōu)先級是一個可配置的STP參數(shù),在基于IOS的交換機上,端口優(yōu)先級的十進制值范圍是0~255,默認值是128.

端口編號Catalyst用于列舉各個端口的數(shù)字標識符。在基于IOS的交換機上,可以支持256個端口。端口編號不是端口號,但是端口號低的端口,端口編號也小。

STP選擇根端口的時候,首先比較交換機端口的根路徑成本,根路徑成本低的為根端口。擋根路徑成本相同的時候,比較連接的交換機的網(wǎng)橋ID值,選擇網(wǎng)橋ID值小的最為根端口;當網(wǎng)橋ID相同的時候,比較端口ID值,選擇較小的最為根端口。(注:在比較端口ID值時,比較的是接收到的對端的端口ID值)

 

 

      3)、選擇指定端口

          為了消除環(huán)路形成的可能,STP進行最后的計算,在每一個網(wǎng)段上選擇一個指定端口。

選擇指定端口順序如下:

a、 根路徑成本較低;

b、所在的交換機的網(wǎng)橋ID值較小;

c、  端口ID值較小

STP選擇指定端口的時候,首先比較同一網(wǎng)段上端口中根路徑成本最低的,也就是將到達根網(wǎng)橋最近的端口作為指定端口。另外,根網(wǎng)橋上的接口都是指定端口,因為根網(wǎng)橋上端口的根路徑成為為0。(注意:和選擇根端口不同,在比較端口ID值時,比較的是自身的端口ID值)。

生成樹協(xié)議(STP)工作原理與算法

 

 

 

 

生成樹算法驗證:

生成樹協(xié)議(STP)工作原理與算法

 

 

查看SW1生成樹狀態(tài)

生成樹協(xié)議(STP)工作原理與算法

查看SW2生成樹狀態(tài)

生成樹協(xié)議(STP)工作原理與算法

查看SW3生成樹狀態(tài)

生成樹協(xié)議(STP)工作原理與算法

 

 

 

2、橋協(xié)議數(shù)據(jù)單元(BPDU

     交換機之間通過BPDU(橋協(xié)議數(shù)據(jù)單元)來交換網(wǎng)橋ID、根路徑成本等信息。BPDU幀利用了一個STP組播地址(01-80-c2-00-00-00)作為它的一個目的地址,使之能到達相鄰的、并處于STP偵聽狀態(tài)的交換機。

     BPDU報文每隔2S向所有的交換機端口發(fā)送一次報文,以便交換機能交換當前最新的拓撲信息,并迅速識別和檢測其中的環(huán)路。

   2.1、BPDU的兩種類型

       配置BPDU,用于生成樹計算。

       拓撲變更通告topology change notification,TCN),BPDU用于通告網(wǎng)絡拓撲的變化

   2.2BPDU報文字段

       BPDU中包含根網(wǎng)橋ID、根路徑成本、發(fā)送網(wǎng)橋ID、端口ID和計時器等,對BPDU幾個關鍵字段作用的解釋如下。

       根網(wǎng)橋ID:有一個2字節(jié)優(yōu)先級和一個6字節(jié)網(wǎng)橋MAC地址組成。這個信息組合表明已經(jīng)被選定為根網(wǎng)橋的設備標識

       根路徑成本:說明這個BPDU從根網(wǎng)橋傳輸了多遠、成本是多少。這個字段的值決定哪些端口進行轉(zhuǎn)發(fā),哪些端口將被阻斷。

       發(fā)送網(wǎng)橋ID這是發(fā)送該BPDU網(wǎng)橋信息,由網(wǎng)橋的優(yōu)先級和網(wǎng)橋的MAC地址組成。

       端口ID由一字節(jié)的端口優(yōu)先級和一字節(jié)的端口編號組成。

       計時器:用于說明生成樹用多長時間能完成它的每項功能。這些功能包括報文老化時間、最大老化時間、訪問時間和轉(zhuǎn)發(fā)延遲。

 

 

    2.3、STP利用BPDU選擇根網(wǎng)橋的過程

        當一臺交換機第一次啟動時,假設自己是根網(wǎng)橋,在BPDU報文中的根網(wǎng)橋字段填入自己的網(wǎng)橋ID,如下所示:


 

生成樹協(xié)議(STP)工作原理與算法


生成樹協(xié)議(STP)工作原理與算法

 

 

 

當接收到其他交換機發(fā)出的BPDU后,比較網(wǎng)橋ID,選擇較小的添加到根網(wǎng)橋ID

生成樹協(xié)議(STP)工作原理與算法

生成樹協(xié)議(STP)工作原理與算法


當全網(wǎng)所有的交換機接收到全部的BPDU并作比較后,就可以選擇出唯一的一個根網(wǎng)橋。

 

 

 

 

 

 

3、STP的收斂

       STP運算過程中,交換機的每一個端口都必須經(jīng)歷好幾種狀態(tài)。

       如下列出了交換機端口的五種STP狀態(tài)

狀  態(tài)

用  途

轉(zhuǎn)發(fā)(Forwarding

發(fā)送/接收用戶數(shù)據(jù)

學習(Learning

構建網(wǎng)橋表

偵聽(Listening

構建“活動”拓撲

阻塞(Blocking

只接收BPDU

禁用(Disabled

強制關閉

 

STP端口狀態(tài)詳細描述如下:

Disabled(禁用):由管理員關閉或網(wǎng)絡故障使端口處于Disabled狀態(tài),他不屬于正常的STP狀態(tài)的一部分。

Blocking(阻塞):在端口初始化后,一個端口既不能接受或發(fā)送數(shù)據(jù),也不能向它地址表添加MAC地址。相反,這樣的一個端口僅允許接收BPDU報文,以便能偵聽到其他鄰接交換機的信息。此外,選出指定端口后,非指定端口也處于阻塞狀態(tài)。

Listening(偵聽):如果一個交換機認為一個端口可選為根端口或指定端口,他就會把該端口的Blocking狀態(tài)變?yōu)?/span>Listening狀態(tài),在Listening狀態(tài),端口仍然不能接收或發(fā)送數(shù)據(jù)幀。不過,為了使該端口加入到生成樹的拓撲過程,允許他接收或發(fā)送BPDU報文。由于該端口可以通過發(fā)送BPDU報文給其他交換機通告該端口的信息,這個端口最終可能被允許成為一個根端口或指定端口。如果該端口失去根端口或指定端口的地位,將返回Disabled狀態(tài)。

Learning(學習):一個端口在Listening狀態(tài)下經(jīng)過一段時間后,將轉(zhuǎn)為Learning狀態(tài)。該端口仍可像從前一樣發(fā)送和接收BPDU報文。不過,該交換機可以學習到新的MAC地址,并將改地址添加到交換機的地址表中。正因如此,才使得交換機可以沉默一定的時間才處理有關地址表的信息。

Forwarding(轉(zhuǎn)發(fā)):在Learning狀態(tài)下載經(jīng)過一段時間的學習和轉(zhuǎn)發(fā),該端口轉(zhuǎn)入到Forwarding狀態(tài)。在Forwarding狀態(tài),該端口既可以發(fā)送和接收數(shù)據(jù)幀,也可以手機MAC地址表加入到他的地址表,還可以發(fā)送和接收BPDU報文。再生成樹拓撲中,該端口以此才成為一個全功能的交換機端口。

 


STP利用三種計時方法來確保一個網(wǎng)絡正常的收斂。

a、Hello時間:網(wǎng)橋發(fā)送配置BPDU報文之間的時間間隔。在根網(wǎng)橋交換機中配置的訪問時間值將決定所有的非跟交換機的訪問時間,這是因為這些交換機在收到發(fā)自根網(wǎng)橋的配置BPDU報文時,僅僅中繼他們。不過,所有的交換機都有一個本地配置的訪問時間,他用于確定重新發(fā)送TCN BPDU(拓撲變化提示)報文的時間。IEEE 902.1d標準規(guī)定的默認訪問時間為2S。

    b、轉(zhuǎn)發(fā)延遲:一個交換機端口在ListeningLearning狀態(tài)所花費的時間間隔,它的默認值各為15S。

    c、最大老化時間:交換機在丟棄BPDU報文之前存儲它的最大時間。在執(zhí)行STP時,每一個交換端口都保存一份它所偵聽到的“最好的”BPDU備份。如果源BPDU失去了與交換機端口的聯(lián)系,交換機則在最大老化時間之后通知網(wǎng)絡發(fā)生了拓撲結構方面的變化。最大老化時間默認值是20S。

偵聽和學習都是生成樹所實施的過渡狀態(tài),用來強迫端口等待來自其他交換機上所有BPDU。典型的端口過渡如下。

生成樹協(xié)議(STP)工作原理與算法

 

 

 

三、STPVLAN的關系

生成樹與vlan之間的關系主要有以下幾種:

  a、IEEECSTCommon Spanning Tree,通用生成樹)。

  b、CiscoPVSTPer vlan spanning Tree,每個vlan生成樹)。

  cCiscoPVST+Per vlan spanning Tree Plus,增強的每個vlan生成樹)。

  dIEEEMSTMultiple spanning Tree,多生成樹)。

 

 

CST:不考慮VLAN,以交換機為單位運行STP(整個交換網(wǎng)絡生成一個STP實例),所以經(jīng)過STP計算后,對阻塞一個端口,那么vlan3將無法通信。

如下圖:

生成樹協(xié)議(STP)工作原理與算法

 

 

PVSTCisco私有協(xié)議,為每個vlan運行單獨的生成樹實例(每個vlan生成一個生成樹實例)。如下圖:

生成樹協(xié)議(STP)工作原理與算法

PVST優(yōu)化根網(wǎng)橋的位置,為所有vlan提供最后路徑(因為vlan的拓撲結構各不相同)。

PVST主要缺點如下:

為了維護每個vlan生成的生成樹,交換機的利用率(如CPU負載)會更高。

為了支持各個vlanBPDU,需要真用更多的trunk鏈路帶寬。

PVSTIEEECST不兼容,不能與其他廠家的交換機進行互操作。

 

為了解決與其他廠家的交換機進行互操作,Cisco開發(fā)了PVST+PVST+允許CST的信息傳給PVST,以便于其他廠商在vlan上運行生成樹的實現(xiàn)方法進行互操作。如下圖:

生成樹協(xié)議(STP)工作原理與算法

PVST+為每一個vlan生成一個生成樹實例。

 

 

 

四、PVST+的配置命令

 

啟用生成樹命令

Switch(config)#spanning-tree  vlan  vlan-list

 

指定根網(wǎng)橋

Switch(config)#spanning-tree  vlan vlan-list  priority  Bridge-priority

Switch(config)#spanning-tree vlan vlan-list  root { primary|secondary }

 

修改端口成本

Switch(config-if)#spanning-tree vlan vlan-list cost cost

 

修改端口優(yōu)先級

Switch(config-if)#spanning-tree vlan vlan-list port-priority priority

 

將端口配置為速端口

Switch(config-if)#spanning-tree portfast

 

例如:

使用下面命令指定根網(wǎng)橋

Switch(config)#spanning-tree  vlan  2  priority  4096

或使用下列命令指定根網(wǎng)橋

Switch(config)#spanning-tree  vlan  2  root   primary

 

使用下面命令修改F0/1端口的成本和優(yōu)先級

Switch(config-if)#spanning-tree vlan  2  cost  10

Switch(config-if)#spanning-tree vlan  2  port-priority  96

 

 

使用下面命令查看生成樹的配置

Switch#show  spanning-tree

 

使用下面命令查看某個vlan的生成樹詳細信息

Switch#show  spanning-tree  vlan  2

 

 

 

 


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI