1. 程式人生 > >STP+RSTP詳解

STP+RSTP詳解

str 需要 延遲 問題: 沒有 rst 自動 包含 err

STP技術---生成樹技術

作為二層防環的技術還包括smart-link、eth-trunk、堆疊、rrpp等;

STP技術的收斂速度為1-2s
rrpp技術的收斂速度 ms單位;

STP技術的優勢

1、適應復雜網絡;
2、STP機制豐富,能存在多種保護機制等;
說明:
STP技術包括:STP、RSTP、MSTP
華為設備開啟,默認STP版本為MSTP

二層環路

危害:
1、 廣播風暴:數據幀的數量呈指數型增長;
2、 mac地址表震蕩:mac地址表不斷進行刷新,無法正常地轉發數據幀;
3、最終影響設備正常使用。

三大表:

mac地址表:用於指導數據幀(二層)
ARP緩存表:用於存儲IP地址與mac地址的對應關系(2.5層)

路由表: 用於指導IP數據包進行轉發(三層)

STP協議工作原理

通過協議計算(依賴於BPDU報文),從邏輯上阻塞端口,從而實現防環,當鏈路一旦出現故障時,阻塞端口重新恢復轉發。

STP的限制

1、收斂慢,收斂屬於秒級;
2、不適用於大型交換網絡,網絡直徑小於等於20;
3、整網的交換設備不能超過50臺;

STP的計算過程

1、選舉一個根橋

根橋交換機:作為整個交換網絡的數據轉發中心;

選舉要素1

根橋ID:優先級+mac地址
1、比較優先級,默認為32768,數值越小越優先,可調整,只能為4096的倍數;
2、比較mac地址,數值越小越優先。

如果設備收到比本身差的BPDU報文,直接丟棄;
如果設備收到比本身優的BPDU報文,將其放入端口存儲並且轉發出去。

全網泛洪的BPDU報文的根橋ID一致時說明交換網絡中已經選出根橋交換機

2、每個非根交換機選舉一個根端口

根端口(RP):轉發數據的端口,用於接收最優的BPDU報文,只在非根橋交換機上有且只有一個。

選舉要素2

1、根路徑開銷:
根路徑:以一個接口為出方向,去往根橋交換機的最短路徑之和,稱為根路徑;
2、開銷:
跟接口的帶寬有關;

100M=200000
1GE=20000
10GE=2000

根路徑開銷越小越優先:

STP的通用規則一:

非根橋交換機與根橋交換機直連接口都為RP端口。

3、每個網段選舉一個指定端口

指定端口(DP):轉發數據,用於轉發最優BPDU,在每個網段上有且僅有一個。

通用規則二:

根橋交換機上的所有端口均為DP端口。

要素3

發送者橋ID
設備在轉發BPDU報文,都會將本身的橋ID字段填充到發送者橋ID中;

比較規則與根橋ID比較規則完全一致。

4、阻塞非根、非指定端口

AP,既不是DP也不是RP端口。

要素4

端口ID:優先級+端口編號
優先級:默認為128,數值越小越優先,可調整,只能調整為16的倍數;
端口ID,數值越小越優先。

STP的端口狀態機

disable:說明端口未啟用STP協議;

blocking:阻塞狀態,屬於AP端口正常狀態,進行根橋的選舉;

listening:偵聽狀態,進行端口角色的確定;

learning:學習狀態,學習mac地址表;

forwarding:轉發狀態,轉發數據,學習mac地址;

STP的計時器

hello time:更新計時器,根橋交換機每2秒向外泛洪BPDU報文;

max age:默認為20s,端口中BPDU的老化時間,如果端口到達老化時間,BPDU會被丟棄,等同於拓撲發生變化。

message age:信息延時,時間默認為0秒,每經過一個設備,會加1。

端口真正的老化時間=max age-message age

forward delay:轉發延時,默認為15s,在listen--learning-forwarding狀態跳轉時使用,用於防止臨時環路。

STP的收斂規則

當RP端口down掉,非根橋交換機直接認為根橋交換機down 掉,以自身為根橋向外泛洪BPDU報文;

STP針對拓撲改變的刷新機制

(1)由發生拓撲變化的交換機朝著根橋泛洪TCN BPDU報文,上遊交換機收到TCN BPDU報文後,先回復TCA BPDU報文,繼續朝著根橋泛洪TCN BPDU;

(2)不斷重復上述過程,直到根橋交換機收到TCN BPDU,回復TCA BPDU報文為止;

(3)根橋交換機會泛洪TC BPDU報文,泛洪35秒,每2秒泛洪(17個或者18個),當交換機收到TC BPDU報文後,會刷新mac地址表。

RSTP對於STP的改進

(1)BPDU

將STP的flag字段中的6bit使用,分別為agreement(A),forwarding,learning,port role,proposal(P)。

(2)P/A協商

① 所有設備在一啟動RSTP時,都認為本設備是根橋,都發送出P置位的的BPDU。

② 經過對比,BPDU較差的設備會停止發送BPDU,同時將收到較優BPDU的接口置為RP端口,進入forwarding,同時會將除了邊緣端口以外的其他端口阻塞。

③ RP端口進入forwarding以後,會回復A置位的BPDU。更優的設備在收到了A置位的BPDU以後,會將收到該BPDU的端口置為DP端口,同時進入轉發狀態。

(3)端口角色

AP:預備端口,阻塞狀態,作為RP的備份,當RP出現故障以後,AP馬上成為RP端口,並且進入轉發狀態。收到其他設備發送的BPDU是AP。

BP:備份端口,阻塞狀態,作為DP的備份,當DP出現故障以後,BP會在等待一段時間後才成為DP。
收到本設備的BPDU。

(4)對於次優的BPDU會回復處理,通過P/A協商。

(5)邊緣端口

不參與STP的計算,只要接口UP,立即進入forwarding狀態。當邊緣端口收到了BPDU以後,就會喪失邊緣端口屬性。

配置: stp edged-port enable

(6)拓撲變更機制

直接由發生拓撲變更的設備直接發送出TC置位的BPDU,然後將除了收到TC置位1以外的接口所學到的MAC的老化時間改為15S。

(7)將端口角色由5種變為3種

discarding:在RSTP中的阻塞狀態,不學習MAC地址也不轉發用戶數據。

learning:學習MAC地址但是不轉發用戶數據。

forwarding:即學習MAC地址也轉發用戶數據。

(8)保護功能

① BPDU保護:保護邊緣端口在收到了BPDU以後,會將該端口error-down,同時通知網管。

只能針對與邊緣端口保護

配置:stp bpdu-protection //在全局試圖下

② 根保護:當該端口收到更優的RST BPDU後,端口進入Discarding狀態,不再轉發報文。若一段時間內端口未收到更優的RST BPDU,則會自動恢復到正常的Forwarding狀態

只能在指定端口上保護

配置:stp root-protection //在接口試圖下

③TC-BPDU泛洪保護:當設備收到TC-BPDU以後,在單位時間內會有一個限制的次數。

配置:在系統視圖下stp tc-protection threshold +可處理的報文數量

RSTP快速收斂機制

當交換機的RP端口down掉時,AP端口會立刻成為RP端口,並立刻進入forwarding狀態。

BP端口選取規則

當交換機從一個接口收到一份BPDU報文,包含的發送者橋ID為本身交換機的橋ID,同時BPDU比本地接口的BPDU優時,則此接口會被選為BP端口

當DP端口down掉時,BP端口需要等待18s的時間才會成為DP端口

常見問題匯總

問題1:RSTP的BPDU保護?

答:邊緣端口直接和用戶終端相連,正常情況下,邊緣端口不會收到BPDU報文。如果者偽造BPDU惡意交換機,當邊緣端口接收到BPDU報文時,交換機會自動將邊緣端口設置為非邊緣端口,並重新進行生成樹計算,從而引起網絡震蕩。

通過配置BPDU保護功能可以防止這種***。設備上使能了BPDU保護功能後,如果邊緣端口收到BPDU,系統就將這些端口Shutdown。
?
問題2:stp 選舉的四要素有哪些??

答:root id(根橋的優先級+mac地址)
cost(到根橋的開銷(接口帶寬))
發送者橋id
端口id

?

問題3:華為交換機如果接口關閉了STP,收到BPDU會如何處理?

答:BPDU報文發送的目的地址為01-80-C2-00-00-00,華為交換機如果接口關閉了STP,那麽收到目的MAC地址為:01-80-C2-00-00-00組播數據幀會直接丟棄。

?
問題4:邊緣端口的端口角色是什麽角色?

答:DP端口,因為從該端口沒有收到更優的BPDU,當一臺運行STP的交換機剛啟動,端口的角色為DP端口,只有收到比該端口優的BPDU才會遷移成其他的角色,邊緣端口一般用於連接非交換機,不會收到BPDU,所以端口角色為DP端口。

?
問題5:如果一個端口收到比自己還要差的BPDU會怎麽處理?

答:華為把這種BPDU稱為次優BPDU,華為交換機收到次優BPDU會丟棄該BPDU,並發送自己接口的最優的BPDU。

?
問題6:STP中為什麽要設計轉發延遲時間?

答:STP如果沒有forward delay帶來的臨時環路問題:

初始狀態下SWA為根交換機,所有的交換機端口中,只有SWD的E0/2端口為Alternate Port,處於不轉發狀態。假設修改SWC的優先級,使SWC成為新的根交換機,SWD的E0/2接口成為新的根端口,進入轉發狀態,E0/1接口成為新的指定端口,處於轉發狀態,SWB的E0/2應當成為新的Alternate Port,進入不轉發狀態。如果在SWB的E0/2在從轉發狀態進入不轉發狀態之前,SWD的E0/2就從不轉發狀態進入轉發狀態,則網絡中會出現臨時環路。

解決臨時環路的方法是:在一個端口從不轉發狀態進入轉發狀態之前(例如SWD的E0/2端口),需要等待一個足夠長的時間,以使需要進入不轉發狀態的端口有足夠時間完成生成樹計算,並進入不轉發狀態
?
問題7:運行STP的交換機是怎麽感知拓撲發送變化的,為什麽要發送TC BPDU,不發會怎麽樣?

答:當一個接口進入轉發狀態時,就認為拓撲已經發生變化。
如果拓撲發生變化不發TC BPDU會導致,過時的MAC地址表無法被刷新,從而導致數據流量無法繼續進行轉發,要等300S的MAC地址表老化時間後,才會刷新MAC地址表;

?
問題8:華為STP有多少個版本?默認是哪個版本?

答:STP,RSTP,MSTP
MSTP
?

STP+RSTP詳解