傳統STP、快速STP、MSTP的總結和比較

1、 BPDU類型ide

1. 傳統生成樹:包括了兩種BPDU,一種是配置BPDU,一種是TCNBPDU,配置BPDU由根橋每Hello時間發出;TCN BPDU由感知到拓撲發生變動的網橋從根端口發送出去。 配置BPDU中的Flag包括了兩個字段,第7位是TCA,第0位是TC, TCA置位的配置BPDU表示一臺上游交換機收到下游發過來的TCN,進行的回覆,確認知道拓撲改變了, TC置位的BPDU由根橋發出,告知全網拓撲發生了變動,通知全部交換機將MAC表的老化時間改爲15秒。學習

2. 快速生成樹:只有一種BPDU,叫RST BPDU,它的BPDU類型有變動爲0X02;它的Flag中的8位所有都使用了,Topology Change Ack、Agreement、Forwarding、Learning、Port Role(2位)、Proposal、Topology Change。spa

3. MSTP:MSTP的BPDU中,有一個MST Exension的字段,它包括了CIST的相關信息以及每一個MSTI的相關信息,每一個MSTI的內容至關於RST BPDU中的內容。blog

傳統生成樹抓包:接口

clipboard

快速生成樹抓包:ip

clipboard

MSTP抓包:get

clipboard


2、 收斂同步

1. 傳統STP:30-50秒域名

A. 直接鏈路失效(鏈路DOWN),若是失效鏈路一頭交換機失效的端口是根端口,而且該交換機有預備端口,那麼收斂時間是30S; 若是失效鏈路一頭交換機失效的端口是根端口,它沒有預備端口,只有指定端口,那麼收斂時間是50S。 爲何這裏會有一個20秒的差異? 交換機丟失根端口,會發送以本身爲根的配置BPDU,若是在鏈路斷開之前,本端的接口是AP,對端是DP,本端發送的次優BPDU,對端DP收到之後,會當即迴應最優BPDU,因此沒必要要等待20秒超時; 若是在鏈路斷開之前,本端的接口是DP,對端是AP,那麼本端發送以本身爲根的次優BPDU之後,對端的原AP端口須要等待20秒超時纔會進行迴應,因此須要50秒。it

B. 間接鏈路失效(HUB鏈路、或者BPDU被過濾等):須要等待20S的超時時間,須要50S收斂。

2. 快速生成樹:被定義爲幾秒內能夠收斂

A. 選舉新的根端口:選舉新的根端口,不會存在環路風險,因此新的根端口能夠直接進入轉發狀態。

B. 邊緣端口:邊緣端口用於鏈接主機等設備,不會引發環路風險,由管理員手工進行配置。因此不參與STP的計算,可當即進入轉發狀態。

C. P/A機制:在點對點的鏈路上,DP會發起P/A的同步機制,即上游交換機在DP發送Proposal置位的BPDU,下游交換機收到的端口若是是RP,則會進行同步過程,會將本交換機的其餘處於轉發狀態的端口置爲Discarding狀態,並將RP置轉發狀態;同時會發送Agreement置位的BPDU給上游;這樣就完成了一輪的同步; 下游交換機會再向DP發起P/A同步過程。

D. 接收次級BPDU不用等待Max_age超時,和傳統STP不一樣,不論是AP仍是DP,只要接收到了次級BPDU,會當即進行端口角色的運算; 3倍Hello時間超時,若是在2倍Hello時間接收不到BPDU,就會老化這個BPDU並進行STP的運算。

E. 在P/A協商失敗或者共享鏈路上,須要按傳統STP的方法等待2倍轉發延遲才能收斂。


3、TCN

1. 傳統STP:端口由不轉發到轉發,或者由轉發到不轉發都認爲發生了拓撲變動。

A. 由感知到拓撲發生變化的交換機從根端口持續發出TCN BPDU;

B. 上游交換機收到TCN BPDU之後,會迴應一個TCA置位的配置BPDU;(只有指定端口會處理)

C. 感知到拓撲發生變化的交換機收到上游交換機的TCA置位的BPDU後,再也不發送TCN BPDU;

D. 上游交換機從本身的根端口方向傳播TCN BPDU;

E. 這個過程一級一級上傳到根橋;

F. 當根橋知道拓撲發生變動之後,會發送TC置位的配置BPDU,泛洪到全網;根橋會持續發送TC置位的配置BPDU,這個時間是Max age + Forwarding delay的時間;

G. 收到TC置位的下游交換機會將MAC地址的老化時間從300S改到15S;

在華爲設備上: 配置傳統STP,只有當端口從不轉發過渡到轉發狀態纔會產生TCN,端口DOWN不會觸發TCN; 當交換機收到TC置位的BPDU之後,不是將MAC老化時間改成15秒,而是直接清空MAC地址表。

2. RSTP:非邊緣端口進入轉發狀態纔會定義爲拓撲發生了變動(鏈接丟失不產生TCN,端口進入 阻塞狀態不產生TCN)。

A. 由感知拓撲發生變化的交換機產生通知,該交換機將TC置位的BPDU,向非邊緣的DP、RP擴散

B. 爲轉發端口開啓TC While計時器,時長是2倍Hello時間(TC While超時則中止發送TC置位的BPDU)

C. 清空除邊緣端口之外的其餘端口的MAC地址表

D. 鄰居交換機接收到TC置位的BPDU後:清除全部端口上學習到的MAC地址(接收拓撲變動的端口除外), 啓動TC Whilie計時器,而且在非邊緣的指定端口和根端口發送TC置位的BPDU。經過這種方法擴散到全網。


4、端口狀態

1. 傳統STP包括了五種端口狀態

A. Disabled: 端口未啓用時,處於此狀態。

B. Listening: 參與STP運算,選舉端口角色,接收發送BPDU,不學習MAC,不轉發數據幀

C. Learning:接收發送BPDU,學習MAC地址,不轉發數據幀

D. Forwarding:接收發送BPDU,學習MAC地址,轉發數據幀

E. Blocking:接收但不發送BPDU,不學習MAC地址,不轉發數據幀

2. RSTP:

A. 摒棄了Disabled、Listening、Blocking三種狀態

B. 增長了Discarding狀態:這個端口狀態不學習MAC地址,不轉發數據幀,參與STP的運算。


5、端口角色

1. 傳統生成樹

A. 根端口:每一個根橋選舉一個根端口,該端口去往根橋的Cost最低;

B. 指定端口:每一個網段(鏈路)選舉一個指定端口,它在這個網段上是最優的。轉發本網段去往根橋的數據,轉發從交換機方向發往所鏈接的網段的數據。

C. 阻塞端口:被阻塞的端口,在STP中,除了根端口和指定端口,其餘的端口都屬於阻塞端口(華爲在傳統STP也存在DP、BP)

2. 快速生成樹:定義了新的端口角色

A. Alternate Port:當一個端口能收到其餘交換機發過來的配置BPDU,而且處於被阻塞狀態,它就是預備端口。它是根端口競爭失敗的端口,是根端口的備份。

B. Backup Port:若是一個端口能收到本交換機發過來的配置BPDU,而且在這個網段上不是最優的端口,則當選爲備份端口,備份端口是指定端口的備份。

3. MSTP:定義了新的端口角色

A. 域邊緣端口:處於Region邊界的端口,邊緣端口的鏈路對端是另外一個Region。

B. Master端口:在非CIST根橋所在區域中的IST的根端口,在其餘實例裏稱爲Master端口。它是一個Region裏去往CIST根橋Cost最小的端口。


6、基本配置

1. 全局開關

開啓STP: stp enable

關閉STP: stp disabled | undo stp enable

2. 時間因子:華爲特有的一個值,用於Hello超時,標準的協議裏沒有這個時間因子,華爲定義默認爲3

stp timer-factor <1-10>

3. 修改Hello時間: stp time hello <100-1000>,默認是200,單位是釐秒,即2S,這個值不建議進行修改,同理能夠修改轉發延遲和最大老化時間

4. 傳統STP

stp mode stp

3. 快速STP

stp mode rstp

4. 多生成樹:處於同一個region的交換機,其配置ID必須相同,配置ID包括三個參數:區域名稱、修訂版本號以及映射關係。MSTP在交換消息的時候,會傳遞配置ID的MD5值,若是匹配則認爲在一個Region,若是不匹配則認爲不是一個Region。在配置完成之後,須要激活配置,MSTP才能夠生效。

stp region-configration

region-name CDE

revision-level 10

instance 2 vlan 10

instance 3 vlan 20

active redion-configration

相關文章
相關標籤/搜索