STP生成树协议基础
1、生成樹技術背景
交換機單線路上聯,存在單點故障,上行線路及設備都不具備冗余性,一旦鏈路或上行設備發生故障,業務將會中斷。為了使得網絡更加健壯、更具有冗余性,將拓撲修改為如下圖所示。接入層交換機采用雙鏈路上聯到兩臺匯聚設備,構成一個物理鏈路冗余的二層環境,解決了單鏈路及單設備故障問題。
但是這樣也帶來了一個大問題,就是二層物理環境存在環路。
二層環路的危害是嚴重的,有可能會導致廣播風暴、多幀復制、MAC地址漂移等等多種問題。即使不是人為搭建冗余的物理環境而導致的環路,網絡也有可能因為種種原因出現二層環路引發的故障,那么有沒有什么辦法解決環路的問題呢?生成樹(Spanning-tree)協議就是用于解決這個問題的。
2、環路帶來的問題 – 廣播風暴
?網絡中如若存在二層環路,一旦出現廣播數據幀,這些數據幀幀將被交換機不斷進行泛洪,從而在網絡中造成廣播風暴。
?廣播風暴對網絡的危害是非常大的,將嚴重消耗設備資源及網絡帶寬,最終導致網絡癱瘓,是需要格外注意的問題。
1.PC發送數據幀給Server;
2.SW3的MAC地址表中沒有匹配目的MAC的表項,于是將數據幀進行泛洪;
3.SW1及SW2都會收到這個數據幀并學習源MAC,同時將數據幀進一步泛洪;SW1及SW2又從自己另一個接口收到這個數據幀,于是MAC表又一次發生改變,如此往復。?
3、Spanning-tree的基本概念
?通過在交換網絡中部署生成樹(Spanning-tree)技術,能夠防止網絡中出現二層環路。STP運行后,如果網絡中存在環路,那么STP通過阻塞(Block)特定的接口從而打破環路,并且在網絡出現拓撲變更時及時收斂,以保證網絡的冗余性。
4、Spanning-tree的基本概念(當網絡出現故障)
當拓撲發生變更的時候,生成樹協議能夠探測到這些變化,并且及時自動的調整接口狀態,從而適應網絡拓撲的變化,實現鏈路冗余。
5、生成樹協議
5.1 stp選舉規則
1.每個交換網絡選舉一個根橋(Root Bridge);
2.每個非根橋上選舉一個根端口(Root Port);
3.每個段選舉一個指定端口(Designated Port);
4.阻塞非指定端口(NonDesignated Port)。
5.2 BPDU報文
?STP的正常工作依賴于BPDU報文的泛洪(Bridge Protocol Data Unit,網橋協議數據單元) 。
STP需要網絡設備相互交換消息來檢測橋接環路,該消息稱為網橋協議數據單元BPDU。STP之所以能夠良好的工作并構建一個無環的網絡,是依賴于BPDU報文的泛洪,并根據報文中相關字段計算的結果。要理解STP的工作過程,非常重要的一點是要理解BPDU中各字段的含義,因為這些都是STP賴以工作的根本。
5.3 配置BPDU中的重要參數
比較次序:Root Identifier > Root Path Cost> Bridge Identifier>Port Identifier
值越小越優先
5.4 Bridge ID
?橋ID(Bridge ID)是交換機的STP標示符,一共8個字節,由2個字節的優先級和6個字節的MAC地址構成:
?橋優先級缺省為32768,可以手工修改。
?MAC地址為交換機的背板MAC。
?網絡中Bridge ID最小的交換機將成為根橋。
5.5 Path Cost
?路徑開銷是一個端口量,是STP/RSTP協議用于選擇鏈路的參考值。
?端口路徑開銷的默認值及取值范圍由選定的路徑開銷算法決定,路徑開銷與端口的帶寬成反比。
?華為網絡設備支持的路徑開銷計算標準:802.1d-1998、802.1t、legacy等。
5.6 Port ID
?端口ID (2字節)= 端口優先級(1字節)+ 端口編號(1字節)
?缺省優先級128,范圍0-255,越小越優。
6.選舉過程
下面以一個實例進行說明:
從上圖中可以看到,運行了生成樹算法之后,S4選擇阻塞F0/0,S5選擇阻塞F0/2,應該是看到非根橋轉發的BPDU后做的選擇
6.1 非根橋轉發的BPDU:
傳統生成樹中只有根橋才能產生配置BPDU,非根橋只是轉發根橋產生的BPDU。試想一下如果僅僅只是轉發根橋的BPDU,不對BPDU做任何更改,就像轉發常規數據幀一樣。這樣的話S4和S5怎么判斷阻塞的端口,又憑啥要阻塞我的端口。這就引出了關鍵點——非根橋轉發的BPDU。
可以看出非根橋轉發根橋BPDU時做了如下修改:
1.根路徑開銷
2.發送者網橋ID
3.端口標識
通過三個步驟來分解S4和S5阻塞端口的過程。
l第一步:S2和S3看到的BPDU:
S2和S3看到報文后,發現自己的MAC地址不如人家,就放棄競選根橋了,只好去選根端口了,只要接收不到更小的BID,那我就趕緊定下來根端口,報文中的根路徑開銷決定了S2和S3的根端口。
第二步:S4看到的BPDU:
當S4看到BPDU后發現自己和根橋的ID比,根本不如人家,那我只好來定奪根端口了,S2告訴我到S1的開銷是19,S3告訴我到S1的開銷也是19,當然是選擇S2的那條路了,S3這條路只能堵上了。
網橋ID決定了S4的根端口,路徑開銷決定了阻塞端口
第三步:S5看到的BPDU:
當S5看到圖中的BPDU后也沒什么想法了,MAC地址比根橋的大太多了,只好選根端口了。S5的F0/3和F0/2收到S4發來的BPDU報文里唯一的不同只有端口ID,那就只有比較端口ID了,哪個端口接收到的端口ID大就阻塞該端口。
端口ID決定了S5的根端口,路徑開銷決定了阻塞端口。
7、STP的端口狀態
8、故障處理
但線路出現故障,斷開的端口被激活,恢復通信,起備份線路的作用
交換機開機需要等待30秒時間開始轉發數據
當某個正在使用的鏈路斷掉,阻塞的端口需要50秒時間開始轉發數據
好啦,這就是STP協議的基礎知識,至于更深的知識,之后在慢慢摸索吧~
?
總結
以上是生活随笔為你收集整理的STP生成树协议基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 招商银行校招笔试通过技巧
- 下一篇: 「Odoo 基础教程系列」第七篇——从