讓你徹底理解STP的各種角色選舉

2021-09-04 11:20:45 字數 4098 閱讀 8318

首家正式發貨了)

本書兩章完整的內容

網路中所有的橋裝置在使能stp協議後,每乙個橋裝置都認為自己是根橋。此時每台裝置僅僅收發配置bpdu,而不**使用者流量,所有的埠都處於listening狀態。所有橋裝置通過交換配置bpdu後才進行根橋、根埠和指定埠的選舉工作。

1.    

根橋的選舉

「根橋的選舉」就是在交換網路中所有執行stp協議的交換機上選舉出乙個唯一的根橋。「根橋」是stp生成樹的最頂端交換裝置,是stp生成樹的「樹根」。根橋的選舉依據是各橋的配置bpdu報文中bid(橋id)字段值,bid字段值最小的交換機將成為根橋。而橋配置bpdu報文中bid欄位共有8個位元組,即2個位元組的橋優先順序和6個位元組的橋背板mac,其中橋優先順序的取值範圍是0~65535,預設值是32768。在進行bid比較時,先比較橋優先順序,優先順序值小的為根橋;當橋優先順序值相等時,再比較橋的背板mac位址,mac位址小的為根橋。

在初始化過程中,根橋的選舉要經歷兩個主要過程:一是每橋上確定自己的配置bpdu;二是在整個交換網路中通過各橋自己傳送的配置bpdu進行比較選舉整個交換網路中的根橋。

l  橋配置bpdu的確定

一開始每個橋都認為自己是根橋,所以在每個埠所發出的配置bpdu報文中,「根id」欄位都是用各自的bid,「根路徑開銷」字段值均為0,「傳送者bid」欄位是自己的bid,「傳送埠pid」欄位是傳送該bpdu埠的埠id。

每個橋都向外傳送自己的配置

bpdu

的同時也會收到其它橋傳送的配置

bpdu

。但橋埠並不會對收到的所有配置

bpdu

都用來更新自己的配置

bpdu

,而是先會進行配置

bpdu

優先順序比較。當埠收到的配置

bpdu

比本埠的配置

bpdu

的優先順序低時,將丟棄所收到的這個配置

bpdu

,仍保留自己原來的配置

bpdu

,否則橋將收到的配置

bpdu

作為該埠的配置

bpdu

。然後,橋再將自己所有埠的配置

bpdu

進行比較,選出最優的

bpdu

作為本橋的配置

bpdu

。有關bpdu

優先順序的比較參見本章

8.1.4

節。 l  根橋的確定

每個橋的最優配置bpdu確定後,以後各橋間交換的配置bpdu都是各自最優的配置bpdu了。如圖8-10所示,用{}標註的四元組表示了由根橋bid(圖中以s1_mac和s2_mac代表兩台裝置的bid)、累計根路徑開銷、傳送者bid(sbid)、傳送埠pid構成的有序組。配置bpdu會按照hello timer規定的時間間隔來傳送,預設的時間是2秒。

圖8-10

初始資訊互動過程示例

一旦某個埠收到比自己優的配置bpdu報文,此埠就提取該配置bpdu報文中的某些資訊更新自己的資訊。該埠儲存更新後的配置bpdu報文後,並立即停止傳送自己的配置bpdu報文。在圖中,如果s2的埠b由於接收到了來自s1的更好的配置bpdu,從而認為此時s1是根橋,然後s2的其他埠再傳送bpdu的時候,在根橋id欄位裡面填充的就是s1_bid了。此過程不斷互動進行,直到所有交換裝置的所有埠都認為根橋是相同的,說明根橋已經選擇完畢。

在如圖8-11所示的交換網路中列出了s1、s2和s3的橋優先順序和橋mac位址。通過比較發現三颱交換機的橋優先順序都一樣,均為預設的32768,這時就要進一步比較各交換機的mac位址,通過比較可以發現s1的mac位址最小,所以最終s1將選舉作為根橋。

圖8-11 根橋選舉示例

2.    

根埠的選舉

「根埠的選舉」就是在所有非根橋上的不同埠之間選舉出乙個到根橋最近的埠當然這個「最近」的衡量標準不是根據到達根橋所經過的橋數,而是根據端口到根橋的累計根路徑開銷最小來判定的。實質上是非根橋上接收到最優配置bpdu的那個埠即為根埠。每個非根橋裝置都要選擇乙個根埠,根埠對於乙個裝置來說有且只有乙個

累計根路徑開銷的計算方法是累加從埠到達根橋所路經的各埠(除根橋上的指定埠外)的各段鏈路的路徑開銷值(也稱鏈路開銷值)。這裡要特別注意的是,同一交換機上不同埠之間的路徑開銷值為0。如果同一橋上有兩個以上的埠計算得到的累計根路徑開銷相同,那麼選擇收到傳送者bid最小的那個埠作為根埠。

在如圖8-12所示的交換網路中,s1為根橋,就時就需要選舉s2和s3非根橋的根埠。s2到達根橋s1有兩條路徑:一條是通過port5埠直接到達s1的port1埠,其累計根路徑開銷很容易得出,就是port5埠自身的路徑開銷值,即圖中標的是19。另一條是從port6埠出發,經過s3的port3和port4埠,到達根橋s1的port2埠,其累計根路徑開銷就是port6、port3和port4埠的路徑開銷值之和。從圖中的標註可以知道,port6埠的路徑開銷值為也為19,但因為port3到port4埠在同一交換機s3上,所以路port3到port4埠的路徑開銷值為0,port4到s1的port2埠的路徑開銷值也為19,這樣port6埠累計根路徑開銷值就是19+0+19=38,很明顯高於port5埠的累計根路開銷值19,所以port5埠最終選舉為s2的根埠。用同樣的方法可以得出s3橋上的根埠為port4。

圖8-12 根埠選舉示例

3.    

指定埠的選舉

「指定埠的選舉」是在每乙個物理網段的不同埠之間選舉出乙個指定埠。「指定埠」與前面所說的「根埠」相對,它可以理解為離下游裝置最近的埠,是本物理網段(這裡的「網段」是指乙個交換機埠所連線的所有裝置)中唯一可以接收下游裝置資料的埠。它是依次根據以下三項條件來判定的:

1)某網段到根橋的路徑開銷最小。

2)接收資料時傳送方(也就是鏈路對端的橋)的橋id最小

(3)傳送方埠id最小(埠id有16位,它是由8位埠優先順序和8位埠編號組成的,其中埠優先順序的取值範圍是0~240,預設值是128,可以修改,但必須是16的倍數)。

如圖8-10所示,假定s1的mac位址小於s2的mac位址,則s1為根橋。根據上面的第一項指定埠判定原則可以得出s1的埠a會成為指定埠。在乙個物理網段上擁有指定埠的裝置被稱作該網段的指定橋,由此可以得出圖8-10所示的s1-s2間網段的指定橋是s1。

網路收斂後,只有指定埠和根埠可以處於**狀態。其他埠都是blocking狀態,不**使用者流量。根橋的所有埠都是指定埠(除根橋物理上存在環路)。

現在再來看如圖8-13所示交換網路中指定埠的選舉。s1為根橋,這樣很容易根據前面列出的指定埠判定條件中的第一項得出在s2-s1網段,以及s3-s1網段中的指定埠分別為s1的port1和port2埠。而在s3-s2網段中,由於s3和s2橋到達根橋的路徑開銷均為19,所以這裡要比較前面提到的第二項條件,即傳送方的橋id(即圖中標識的sbid)大小了。s3的port3的傳送方的橋id為32768.000-0c12-3457,而s2的port6的傳送方的橋id為32768.000-0c12-3458,經過比較發現s3的port3的傳送方的橋id更小,所以最終選舉為s3-s2網段的提定埠。這樣一來就可確定port6埠為阻塞埠了。

圖8-13  指定埠選舉示例

讓你徹底理解STP的各種角色選舉

首家正式發貨了 本書兩章完整的內容 網路中所有的橋裝置在使能stp協議後,每乙個橋裝置都認為自己是根橋。此時每台裝置僅僅收發配置bpdu,而不 使用者流量,所有的埠都處於listening狀態。所有橋裝置通過交換配置bpdu後才進行根橋 根埠和指定埠的選舉工作。1.根橋的選舉 根橋的選舉 就是在交換...

讓你徹底理解STP的各種角色選舉

首家正式發貨了 本書兩章完整的內容 網路中所有的橋裝置在使能stp協議後,每乙個橋裝置都認為自己是根橋。此時每台裝置僅僅收發配置bpdu,而不 使用者流量,所有的埠都處於listening狀態。所有橋裝置通過交換配置bpdu後才進行根橋 根埠和指定埠的選舉工作。1.根橋的選舉 根橋的選舉 就是在交換...

親自實驗讓你徹底理解表連線

1.表連線的根本條件是共同字段,也叫關聯欄位也叫冗餘字段,有關聯字段 冗餘字段 才能將兩張表的記錄匹配起來嘛。其中關聯字段,也即形成了表之間的關係,即1對1,還是1對多,還是多對多。這些表之間的關係,就是通過關聯字段形成的1對1,還是1對多,還是多對多關係。也正因為表通過關聯字段,聯絡起來了。關聯字...