<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺析STP/RSTP協議(一)

網絡技術干貨圈 ? 來源:網絡技術干貨圈 ? 2023-12-08 13:37 ? 次閱讀

一.STP定義

生成樹協議STP(Spanning Tree Protocol)將環形網絡修剪成為一個無環的樹型網絡,避免報文在環形網絡中的增生和無限循環。

STP可以解決的問題

1.廣播風暴——沒有STP,則網絡中會出現環路,一臺交換機若從接口收到一個廣播幀,那么交換機會將這個廣播幀從除收到這個廣播幀的接口外所有的接口發送,另一臺交換機若收到這個廣播幀,會以同樣的方法進行泛洪,而這些數據幀就會一直在環路中傳輸,占用網絡資源。

2.重復幀傳輸——目的站點可能會收到同一數據幀的多份拷貝,可能會造成一些無法挽回的影響。

3.MAC地址表不穩定——交換機從某一接口收到了數據幀A,因為有環路存在,又從另一接口收到了數據幀A的拷貝,這樣同一MAC地址就對應了兩個接口存放在MAC表中,這一現象叫做漂移MAC地址。

二.STP的基本原理

交換機運行該協議時,通過彼此交互STP幀來發現網絡中的環路,并有選擇的對某個端口進行阻塞,阻斷冗余鏈路,最終將環形網絡結構修剪成無環路的樹形網絡結構,從而防止報文在環形網絡中不斷循環,避免設備由于重復接收相同的報文造成處理能力下降,并在網絡的物理拓撲發生變化時重新建立STP樹。

三.STP的各類選舉

名詞引入

根橋
對于一個STP/RSTP網絡,根橋有且只有一個,它是整個網絡的邏輯中心,根據網絡拓撲的變化,根橋可能改變。

網橋ID (BID)=橋優先級+Mac
默認優先級 32768 8*4096
橋的MAC地址0016-0016-3333
BID= 8000-0016-0016-3333 8字節(兩字節優先級六字節MAC地址) 16個十六進制數
橋的MAC地址為交換機中網卡中MAC地址最小的

端口ID (PID)=端口優先級+端口編號
默認優先級 128
PID(16位) = 端口優先級(4位) + 端口號(12位)16個比特位組成

路徑開銷(RPC)

路徑開銷是STP/RSTP協議用于選擇鏈路的參考值。STP/RSTP協議通過計算路徑開銷,阻塞多余的鏈路,將網絡修剪成無環路的樹形網絡結構。

在一個STP/RSTP網絡中,某端口到根橋累計的路徑開銷就是所經過的各個橋上的各端口的開銷。

根交換機的端口的路徑開銷都為0

STP將一個環形網絡生成無環拓撲的步驟:

1.選擇根橋——RootBridge每個廣播域只有一個根橋
2.選擇根端口——RootPorts
3.選擇指定端口——DesignatedPorts
4.網絡中冗余的接口將被阻止

根橋的選舉

過程:生成樹中只有一個交換機能夠成為根橋,首先交換機根據自己的STP邏輯拓撲,向相鄰交換機發送HELLO BPDU,聲稱自己是根交換機。交換機將收到的HELLO BPDU進行比較,選舉出最優的BPDU。若收到的HELLO包的根ID比自身發出的HELLO包BID要優,則該交換機就會停止產生和發送HELLO包,即停止聲明自己是最優的根,然后交換機開始轉發收到的更優的BPDU。不斷經過此過程,直到除根交換機之外,所有的交換機都將停止產生并發送自身的HELLO包。

選舉:

1.BID是不會重復的,通過比較BID選舉,優選BID小的。

BID由優先級+MAC地址組成。

2.首先比較優先級,優先級越小越優。

3.如果優先級一樣,比較MAC地址,MAC地址越小越優。

根端口的選舉——確定交換機和根橋之間工作的唯一性和最優性

根端口用來與根橋之間進行報文交換的端口,是到根橋工作路徑最優的端口,一臺非根橋設備上只能有一個根端口。

過程: 選舉出根交換機之后,其他交換機需要確定他們各自唯一的根端口。

1.根交換機每隔HELLO計時器(默認是2s),就會創建并發送一個HELLO,HELLO中的RBID(根橋的BID)和SBID(發送方BID)都設置為根ID,RPC設置為0,SPID設置為出端口的標識符

2.每臺非根交換機在每個端口上收到一個BPDU后,就會將端口的RPC加到這個BPDU中,形成(Result BPDU)結果BPDU,交換機會比較所有的結果BPDU,收到最優BPDU的端口將成為根端口

注意:

非根交換機在根端口上收到HELLO,在更新其完成的RPC,SBID,SPID和信息老化字段之后,會通過其他指定端口發送這個HELLO,非根交換機在其他端口上收到的HELLO只會被處理,不會被轉發。

交換機的根端口和阻塞端口總是不發送HELLO包的,因為在該網段中,對端鄰居的指定端口的HELLO包一定是本端優先級要高的。

選舉:

根端口是非根橋交換機用來接收來自根橋交換機方向的BPDU,因此首先需要計算流量從根交換機到達非根交換機上的哪個端口開銷(Cost)最小,通俗點說就是,如果根交換機要發送BPDU到某臺非根交換機,發送到該非根橋交換機的哪個端口最省時省力。

非根橋交換機上,哪個端口到根橋的開銷(確切來說,應該是從根橋到達非根交換機的每個端口的開銷,這才是正確的方向)最小,開銷最小的端口,即為該非根交換機的根端口。

開銷越小越優

如果到達根橋開銷一樣,此時再比較上一級(接收BPDU方向)發送者的橋ID。選出發送者橋ID最小的對應的端口。

上行的BID越小越優

如果上一級發送者橋ID也一樣,在比較發送端口的優先級。選出優先級最小的對應的端口。

發送者PID越小越優

如果發送端口優先級也一樣,在比較發送端口的端口號(比如f0/0、f0/1)。

發送者端口號越小越優

PS:比較過程中選出的端口為非根交換機上的根端口,該根端口主要用來接收來自根橋方向的BPDU。拓撲發生變化時也發送TCN。

指定端口的選舉——確定每個網段與根橋之間的的最優唯一路徑

當一個網段有兩條及兩條以上的路徑通往根橋時(該網段連接了不同的交換機或者該網段與同一交換機有多個接口),這時就必須確定出一個唯一的指定端口。

根橋的所有接口都是指定端口

網段中發送最優BPDU的端口將成為指定端口

通過選舉的指定端口轉發來自根交換機的BPDU到其他非根交換機效率最高(其實根端口對端的端口肯定是指定端口

當指定端口所在鏈路發送故障時,通過此指定端口所屬的交換機發送TCN到根交換機效率最高。cost小即效率高。

指定端口的重要作用還是為了考慮鏈路發生改變的情況。以此選指定端口可以只參考這條依據:當一條鏈路物理故障時,通過鏈路兩端的哪個端口所屬交換機發回TCN到根橋的開銷最小,則那個端口就是這條鏈路的指定端口。(到根橋途中不要經過該鏈路上的另一個端口)

選舉:

根橋上的所有端口都是指定端口。

每條鏈路上有兩個端口,那個端口到根橋的開銷最小,最小的是指定端口。

開銷最小

若開銷相同,則比較上行(靠近根橋的一側)設備的BID,上行設備BID較小的端口作為根端口。

上行BID最小

若上行設備的BID相同,則比較上行設備的PID,較小的作為根端口。

上行PID最小

如果發送端口優先級也一樣,在比較發送端口的端口號(比如f0/0、f0/1)。

發送者的端口號最小

阻塞備用端口

確定了根端口和指定端口后,交換機上剩余的非根端口和非指定端口統稱為備用端口。

四.STP報文

Configuration BPDU

①Configuration BPDU

在初始形成STP樹的過程中,各STP交換機都會周期性的(缺省為2s)主動產生并發送Configuration BPDU。在STP樹形成后的穩定期,只有根橋才會周期性的(缺省2S)主動產生并發送BPDU,相應地非根交換機會從自己的根端口周期性地接收到Configuration BPDU ,并立即觸發而產生自己的Configuration BPDU,且從自己的指定端口發送出去。這一過程看起來就像是根橋發出的Configuration BPDU 逐跳地經過了其他的交換機。

STP和RSTP的配置BPDU的區別

1.在802.1D里,配置BPDU在生成樹初始化時由各Bridge自己生成,當接收到更優的BPDU時,改用更優的BPDU,當STP域收斂時,全網的配置BPDU都是由Root Bridge的配置BPDU。每臺Bridge都有可能修改BPDU的內容,例如TCA標記,開銷

2.在802.1W里該BPDU改為全部由Bridge自己生成,只是在Root ID里填上了已知Root Bridge 的Bridge ID 。配置BPDU由本機產生這點非常重要,這直接使得RSTP在拓撲變更時無需等待Root Bridge的配置BPDU,即可刷新MAC表。

②TCN BPDU

TCNBPDU報文:拓撲改變通知。TCNBPDU報文只能由非根橋發出,通告給根橋。
TCABPDU報文:用于確認接收到的TCNPBDU報文。
TCBPDU報文:只能由根橋發起,連續發送35s(MAXage+Forwardingdelay)。

非根橋收到TC BPDU報文后會將MAC地址的老化時間設置為15s,加速老化。

五.STP的拓撲變化

STP觸發拓撲改變條件:

一個端口從forwarding狀態過渡到disable或blocking狀態。
一個非根橋如果從指定端口接收到TCNBPDU包,需要向根橋裝發TCNBPDU包。
一個端口進入轉發狀態,并且本地已存在一個指端端口。

發生拓撲變更的三種情況

直接拓撲變更

端口可以直接檢測到的變更。直接發送TCN BPDU給根橋,收斂時間大約是轉發延遲的兩倍。

間接拓撲變更

鏈路狀態仍未UP,鏈路狀態正常但是數據傳輸出現了問題,端口無法直接識別。這種間接性的變更,拓撲不會直接發送變化,等到一端在計時器范圍內沒有收到來自根橋的消息時,才會通告拓撲變化,因為計時器的關系,要比直接拓撲變更收斂要慢。

無意義拓撲變更

終端關機,連接到PC端的端口發送TCN BPDU,但不會影響其他交換機之間的通信,結果為所有交換機將關機主機的MAC地址從(CAM)表中抹去,所以可以在連接終端用戶的交換機端口上啟用PortFast特性。PortFast端口的up或down不會導致TCN消息的產生。

當STP樹穩定后,如果某條鏈路發生了改變,導致拓撲發生了改變,感知到拓撲變化的交換機會以HELLO TIME為間隔向上游交換機發送TCN BPDU,直至收到來自上游的帶有TC為1的Configuration BPDU。上游交換機接收到TCN BPDU會通過指定端口回復TCA為1的Configuration BPDU。

一方面繼續向上游發送TCN BPDU,直到根橋接收到TCN BPDU根橋向各個端口通告帶有TC為1的 Configuration BPDU,通知所有交換機網路拓撲發生了變化。。交換機收到TC為1的Configuration BPDU后便意識到網絡拓撲已經發生了變化,這說明自己的MAC表可能已經不是正確的了,這時交換機會將自己的MAC地址老化周期(缺省為30S)縮短為Forward Delay的時間長度,以加速老化掉原來的地址表項。

1028e246-9582-11ee-8b88-92fbcf53809c.png

例如,本來網橋A和根橋之間是沒有直連鏈路的,現在有了一條直連鏈路,該鏈路上兩個接口首先經過20S的BPDU最大超時時長,隨后進入Listening狀態,可以發送和接收BPDU,此時比較之下A就會將與ROOT直連的端口變為根端口(開銷較?。?,端口狀態由Blocking變為了Forwarding狀態,拓撲發生改變,通過這條鏈路發送一個TCN BPDU給根橋,根橋接收到之后發送帶有 TC標記的BPDU通告網絡內其余交換機活動拓撲發生改變,包括自己在內的交換機加速老化MAC地址表。

什么時候STP收斂時間是30s,什么時候是50s?

RP (根端口(Root Port) )接口down時,STP收斂為30S。

DP (指定端口(Designated Port) )接口down時,STP收斂為50S。

六.STP的端口狀態

按狀態劃分端口共有五種,去能狀態,阻塞狀態,偵聽狀態,學習狀態,轉發狀態。

去能狀態(Disabled):端口無法接收和發送任何幀,端口處于down狀態。

阻塞狀態(Blocking):只能接收STP幀,不能發送STP幀,也不能轉發用戶數據幀。

偵聽狀態(Listening):可以接收并發送STP協議幀,但不能進行MAC地址學習,也不能轉發用戶數據幀。

學習狀態(Learning):可以接收并發送STP協議幀,也可以進行MAC地址學習接收數據幀,不能轉發用戶數據幀

轉發狀態(Forward):可以接收并發送STP協議幀,可以進行MAC地址學習,可以轉發用戶數據幀。

七.STP的端口遷移

20s(Max age讓交換機都開機運行STP的準備時間)+15s(穩定端口角色狀態)+15s(學習MAC地址表)

過程:

交換機在同一時刻啟動時,各個交換機的端口立即從去能狀態變為阻塞狀態,這個狀態只可以接收STP數據包,無法發送STP數據包。所以任何端口都收不到BPDU。經過MAX AGE時間(默認為20S)后,每臺交換機都會認為自己是根橋,各個端口變為為偵聽模式,可以發送并接收數據包。

交換機的端口進入監聽模式后,開始發送自己的Configuration BPDU ,同時也接收來自其他交換機的Configuration BPDU。若交換機A接收到的來自交換機B的BPDU中的BID,比自身的BID小,則認為交換機B為根橋,并將發送的Configuration BPDU中的根橋BID改為B交換機的BID。若交換機C接收到來自交換機B的BPDU中的BID,比自身要大,則還是認為自身為根橋,并向來源方交換機B發送Configuration BPDU,交換機B就會知道,交換機C為根橋,重復至所有都同步即可。

交換機會將接收到根橋BID信息的端口設為根端口。同時通過比較BID,和PID,可以確定指定端口。

端口在經過持續時間為Forward Delay(15S)的時間后,根端口和指定端口會進入學習狀態,其余端口會進入Blocking狀態。

端口進入Learning狀態后,在Forward Delay(15S)的時間內,在此時間內交換機可以開始學習MAC地址與這些端口的映射關系,同時希望STP樹在這段時間內能夠完全收斂。

然后端口會相繼進入Forward狀態,開始用戶數據幀的轉發工作。

八.STP端口特性

Portfast

功能:這個特性的功能就是讓一個阻塞的端口快速的進入到轉發狀態。而不用經過中間的監聽和學習的狀態,這樣的話,就減少了很多端口角色的轉換時間,也就減少了STP的收斂時間。

如果這個端口接收到BPDU的話,那么他就會進入到error—disable狀態(相當于阻塞的狀態),停止接收數據包。并且這種狀態會一直持續到“error—disable”設定的超時或者是進行手動干預。

應用場景:一般是在Access接口上啟用,因為在Trunk口上實現這個portfast特性,將存在產生橋接環路的危險。

UpLinkFast
說明:當鏈路或交換機故障時,快速切換備份鏈路,加速選舉新的根端口,使備用的阻塞端口直接進入轉發狀態,而不經歷監聽與學習狀態。

功能:基于定義的上行鏈路組,在交換機中上行鏈路組由根端口和所有去往根橋的代替端口組成。如果上行端口發生故障,則上行鏈路組中開銷最小的端口將被開啟作為根端口。使用偽組播(偽組播地址代表所有連接根交換機的交換機)的方式通過新的Forwarding端口向上游網絡通告自己所有的MAC地址,從主用鏈路故障到收斂通常不會超過1S。

Backbone Fast

說明:可以說這個特性是對UplinkFast 特性的一種補充。Uplinkfast特性可以對連接到交換機本身的鏈路出故障的時候,可以準確的判斷出來,并且進行快速的狀態轉換,但是他不能對間接的鏈路故障作出檢測并進行修正。但是,Backbone Fast就可以。

在丟失根端口并且備份鏈路是采用不同的交換機情況中,這個特性就可以降低默認的收斂時間。但是這個特性的正常運作,需要網絡中的所有的交換機都啟用這個特性。

本質:快速接收次級BPDU,而減少20S的 MAX_AGE時間。







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STP
    STP
    +關注

    關注

    0

    文章

    39

    瀏覽量

    10186
  • RSTP
    +關注

    關注

    0

    文章

    7

    瀏覽量

    980

原文標題:網絡工程師必懂:STP/RSTP協議(一)

文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STP協議的工作原理和配置方法

    STP能夠檢測并防止2層橋接環路的形成。
    的頭像 發表于 11-17 09:14 ?1059次閱讀
    <b class='flag-5'>STP</b><b class='flag-5'>協議</b>的工作原理和配置方法

    Linux工控主板的種環形菊花鏈網絡方案

    ,又能通過交換節點之間的環形結構達到鏈路冗余備份的功能,相對線性菊花鏈網絡成本更低?! ⊥ǔP枰捎镁哂协h網功能的交換機作為環形菊花鏈網絡中的交換節點,運行STP/RSTP/MSTP協議,以防止二層的廣播
    發表于 09-19 11:00

    生成樹協議STP,RSTP和MSTP仿真軟件

    The most comprehensive and scalable tool to verify the operation, performance, and scalability of spanning tree implementations; measure protocol reconvergence time during topology changes and determine the impact of link failures on QoS.
    發表于 10-17 14:57

    ISM8028工業級萬兆網管型交換機

    管理特性及線速轉發性能,以堅固的殼體及受保護的電路等工業級特性于體,支持生成樹 STP/RSTP/ MSTP 及 ERPS 工業級環網冗余協議,支持增強型的網絡管理
    發表于 10-18 07:24

    基于嵌入式Linux的STP模塊的設計與應用

    重點描述了基于嵌入式Linux的STP模塊的開發過程,深入分析了Linux內核的STP協議以及MGMT幀在內核的處理流程,并針對內核中STP協議
    發表于 09-28 10:35 ?25次下載

    RSTP概述

    學習完本課程,您應該能夠:掌握RSTPSTP的不同點,掌握RSTP快速收斂機制,掌握RSTP拓撲改變處理過程,掌握RSTP
    發表于 04-12 17:38 ?11次下載

    STP概述

    學習完本課程,您應該能夠:了解STP消除環路的思想,掌握STP的基本概念,掌握STP計算過程,掌握STP的端口狀態,掌握STP拓撲改變處理過
    發表于 04-13 17:08 ?20次下載

    STP配置命令

    08-STP配置命令
    發表于 12-24 23:33 ?0次下載

    數字資產標準通證協議STP介紹

    STP-標準上構建的通證將使用協議的鏈上合規性驗證者來驗證是否符合相關法規(即包括了解客戶、反洗錢、認證等),以及任何發行人特定的要求(即所有權集中、持有期、投票)。確認者委員會將提供咨詢服務,以確保合規確認者始終執行最新的標準。
    發表于 05-30 10:27 ?2359次閱讀
    數字資產標準通證<b class='flag-5'>協議</b><b class='flag-5'>STP</b>介紹

    生成樹協議STP、RSTP、MSTP的作用、優點及區別

    STP中根橋的選舉依據的是橋ID,STP中的每個交換機都會有一個橋ID(Bridge ID) 。橋ID由16位的橋優先級(Bridge Priority)和48位的MAC地址構成。在STP網絡
    的頭像 發表于 12-09 09:31 ?2401次閱讀

    MSTP是什么?有哪些專有名詞?

    組成MSTI的是運行STP/RSTP/MSTP的交換設備,MSTI是所有運行STP/RSTP/MSTP的交換設備經MSTP協議計算后形成的樹
    的頭像 發表于 12-26 11:33 ?2697次閱讀

    計算機網絡知識科普:STP/RSTP/MSTP技術

    上次有寫過一篇《圖解 STP 》的文章,里面有提到STP的功能是消除環路和鏈路備份,同時也發現 STP 的一些問題。
    的頭像 發表于 09-01 10:32 ?4795次閱讀
    計算機網絡知識科普:<b class='flag-5'>STP</b>/<b class='flag-5'>RSTP</b>/MSTP技術

    網絡二層環路,老練的網工,都是這么排查的!

    如果當前的環路問題是由于物理環路引入的,且沒有配置破環協議,可以依據網絡規劃部署交換機常見的破環協議,如STP/RSTP/MSTP、RRPP、SEP、VBST、 ERPS等。
    的頭像 發表于 11-15 16:14 ?498次閱讀
    網絡二層環路,老練的網工,都是這么排查的!

    網絡工程師必懂:STP/RSTP協議(二)

    替代端口是一個提供了去往根橋替代路徑的交換機端口,活動拓撲中的替代端口處于Discarding狀態。當現有的指定端口鏈路發生故障之后,替代端口會過渡成為指定端口
    的頭像 發表于 12-10 15:06 ?861次閱讀
    網絡工程師必懂:<b class='flag-5'>STP</b>/<b class='flag-5'>RSTP</b><b class='flag-5'>協議</b>(二)

    工業以太網防環協議STP、RSTP與MSTP的不同之處

    STP、RSTP和MSTP在工業以太網中各自扮演著重要角色。STP提供了基本的環路容錯機制,確保網絡的穩定運行;RSTP通過提高收斂速度,增強了網絡的恢復能力;而MSTP則通過支持多個
    的頭像 發表于 03-20 11:29 ?442次閱讀
    工業以太網防環<b class='flag-5'>協議</b>:<b class='flag-5'>STP</b>、<b class='flag-5'>RSTP</b>與MSTP的不同之處
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>