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

以下內容摘自正在噹噹網、京東網、卓越網、互動出版網預售即將正式發售的《華爲交換機學習指南一書(全書近千頁)。本書是由華爲官方授權,國內第一本,也是唯一一本華爲交換機權威學習指南,是華爲ICT認證培訓指定教材。

噹噹網鏈接:http://product.dangdang.com/23372225.html
京東網鏈接:http://item.jd.com/11355972.html

卓越網上的鏈接:http://www.amazon.cn/dp/B00GT743ME/ref=sr_1_1

互動出版網上的鏈接:http://product.china-pub.com/3768908#ml首家正式發貨了

在這裏可以在線試讀
本書兩章完整的內容http://book.51cto.com/art/201312/422749.htm


8.2.1 生成樹初始化階段的角色選舉

  網絡中所有的橋設備在使能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秒。

10659021_1387155725LGvZ.jpg



圖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將選舉作爲根橋。

10659021_1387155743b49D.jpg

圖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。

10659021_1387155758KdDX.jpg

圖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端口爲阻塞端口了。

10659021_1387155776IqPI.jpg

圖8-13  指定端口選舉示例


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章