生成樹


一.  STP基礎:

為了提高網絡可靠性,交換網絡中通常會使用冗余鏈路。然而,冗余鏈路會給交換網絡帶來環路風險,並導致廣播風暴以及MAC地址表不穩定等問題,進而會影響到用戶的通信質量。STP可以在提高可靠性的同時又能避免環路帶來的各種問題,STP(Spanning Tree Protocol)是生成樹協議的英文縮寫。該協議可應用於在網絡中建立樹形拓撲,消除網絡中的環路,並且可以通過一定的方法實現路徑冗余,但不是一定可以實現路徑冗余。

STP分為三個版本:

① 802.1D普通生成樹STP

② 802.1W快速生成樹RSTP

③ 802.1S多生成樹 MSTP

STP作用:

① 通過阻塞端口來消除環路

② 實現鏈路備份的目的

1. 冗余以太網問題:

冗余鏈路會給交換網絡帶來環路風險,並導致廣播風暴以及MAC地址表不穩定等問題,進而會影響到用戶的通信質量。

(1)廣播風暴:

環路產生廣播風暴,假設交換設備上沒有啟用STP協議:

如果HostA發出廣播請求,那么廣播報文將被交換設備SWB的端口接收,並分別從端口其余的端口廣播出去,然后這兩個端口又收到另一台交換設備發過來的廣播報文,再分別從兩台交換設備的端口轉發,如此反復,最終導致整個網絡資源被耗盡,網絡癱瘓不可用。

注1:如果主機存在ARP表項而交換機沒有,此時發送數據包時,交換機會重所有的端口發送出去,有可能會造成單播幀環路

注2:面試時注明端口

(2)MAC地址表震盪:

 

以SWB為例:

① 主機A發送ARP報文請求主機B的MAC地址

② ARP廣播包被SWB接收,SWB根據源地址記錄接口G0/0/3對應的MAC地址表為0005-0607-08AA,但由於存在環路,廣播包會從SWC的G0/0/2口再次送回SWB

③ SWB從G0/0/2口接收到相同的ARP報文后,發現源MAC地址0005-0607-08AA對應的接口地址為G0/0/2,於是更新自己的MAC映射表

④ 由於一直存在環路,所以SWB也會從G0/0/1接收到相同的ARP請求並更新自己的MAC映射表,所以SWB會一直刷新自己的MAC地址表的映射

2. STP模式:

① SST:

又稱CST,指所有的實例都使用一個STP,如傳統的802.1D、802.1W類型的STP

② MST:

多實例生成樹,將多個Vlan放入一個實例中,如802.1S的MSTP

③ VBST:

VBST(VLAN-Based Spanning Tree)是華為提出的一種生成樹協議,通過它可在每個VLAN內構建一棵生成樹,使不同VLAN內的流量可通過不同的生成樹轉發。VBST可以簡單理解為在每個VLAN上運行一個STP或RSTP協議,不同VLAN之間的生成樹完全獨立。用來兼容cisco的PVST

二. 802.1D普通生成樹STP:

STP生成樹通過在交換機之間傳遞一種特殊的協議報文,網橋協議數據單元(Bridge Protocol Data Unit,簡稱BPDU),來確定網絡的拓撲結構。

1. STP-BPDU:

Bridge Protocol Data Unit,橋協議數據單元,各台交換機STP之間使用BPDU進行交互,BPDU使用組播地址進行泛洪,組播地址為:01-80-c2-00-00-00。

BPDU報文格式:

 

① Protocol ID協議ID,該值總為0

② Protocol Version ID協議版本ID,STP的版本(802.1D為0;802.1W為2;802.1S為3)

③ BPDU TypeBPDU類型,分為兩種,配置BPDU為0;TCN BPDU為80

④ Flags分為兩種置位符:

  • TC:Topology Change,拓撲變更
  • TCA:Topology Change Acknowledgment,拓撲變更確認信息

⑤ Root ID8Byte,根橋的ID,由三部分組成

  • 4bit優先級值,實際本地顯示值為N*4096
  • 12bit擴展系統ID(實例ID,默認為0)
  • 6Byte系統ID(MAC地址)

⑥ RPCRoot Path Cost,開銷值

⑦ Bridge ID8Byte,轉發者的ID,每經過一個交換機,Bridge ID會變為此交換機的ID,由三部分

組成:

  • 4bit優先級值
  • 12bit擴展系統ID(實例ID,默認為0)
  • 8Byte系統ID(MAC地址)

⑧ Port ID2Byte,端口ID,每經過一個交換機的端口,Port ID變為此端口的ID

  • 端口優先級,默認128
  • 接口ID

⑨ Message Age配置BPDU在網絡中傳播的生存期,默認每經過一跳,Message Age+1

⑩ Max Age: Message Age最大老化時間,默認為20S

⑪ Hello time探測時間,默認為2S

⑫ forward Delay轉發延遲,默認為15S

 

注:如果一台交換機接收到自己發出去的BPDU,他會將接收到BPDU的端口阻塞掉,防止

環路。

 

在傳統的802.1D類型的STP中,BPDU分為兩種,一種為STP穩定時只有根橋每隔兩秒

發送一次的Configuration BPDU,另一種為鏈路出現問題時,下游非根交換機用於通知上有交換機的TCN BPDU。

(1)Configuration BPDU:

配置BPDU,基於IEEE802.3協議,用於計算無環的生成樹, 在傳統STP生成樹中,在進

行選舉收斂時,所有交換機發送配置BPDU選舉根橋,當根橋選舉后,只有根橋始發配置BPDU,所有交換機端口轉發配置BPDU。

(2)TCN BPDU:

Topology Change Notification,拓撲變更通知BPDU,通常端口的重新收斂會帶來STP域內的mac地址表錯誤,這種錯誤在上游交換機中也是存在的,交換機mac表映射默認為300s,當出現mac地址表錯誤后,300s內由於存在錯誤的mac地址表,交換機將無法正確的轉發數據。當下游交換機感知到拓撲發生變化時,向上游發送的拓撲變更通知,TCN結合configuration BPDU中的flage位的TC和TCA進行全網拓撲MAC地址重新收。

TCN BPDU只包含Protocol ID、Protocol Version ID、BPDU Type四行內容,主要用於通知上有交換機MAC地址表項錯誤。

注:標准802.1D STP中,接口無論Down還是Up都會產生TCN BPDU用於刷新當前網絡中交換機的MAC地址表,而Huawei實現中802.1D STP和802.1W STP的實現方式是一樣的,即有接口由原來的Down狀態變為Up(Forwarding)狀態,才會產生TCN BPDU。

① 拓撲變化帶來的MAC地址錯誤:

 a)       SWC的的G0/0/2端口為阻塞端口,此時SWB中的MAC映射表去往主機B的端口為G0/0/1

b)       當SWC的G0/0/1端口出現故障后,此時主機A訪問主機B的實際鏈路為從SWB的g0/0/2

端口去往SWC

c)        由於MAC地址表默認緩存為300S,所以此時SWB依舊將數據包從G0/0/1端口送出,最終 數據在導到SWA的G0/0/2時,由於鏈路故障,發生丟包

② 拓撲變更BPDU詳解:
  • TCN BPDU

下游設備拓撲變更后,會使用TCN BPDU通知上游設備

  • TCA置位的Configuration BPDU

當上游交換機收到下游交換機發送的TCN BPDU后,此時將Configuration BPDU中的Flags中

的TCA置位,從指定端口發送給下游交換機,告知下游設備已經知道拓撲變化,停止發送TCN BPDU報文。

  • TC置位的Configuration BPDU

當根橋收到TCN BPDU后,會發送TC置位的Configuration,此報文從上游設備的指定端口張

一直傳遞到最下游設備,主要是上游設備用來告知下游設備拓撲發生變化,將非根交換機的

mac地址表老化時間由原來的300S縮短為15S,從而達到快速收斂的目的。

③ TCN拓撲變更后刪除mac表舉例:

 

a)       在網絡拓撲發生變化后,下游設備會不間斷地向(RP端口)上游設備發送TCN BPDU報文(默認發送時間為35S)。

b)       上游設備收到下游設備發來的TCN BPDU報文后,也會將此報文發送給RP端口給上游設備,並將BPDU報文中的Flags的TCA位設置1,然后發送給下游設備,告知下游設備停止發送TCN BPDU報文。

c)        上游設備復制一份TCN BPDU報文,向RP端口的根橋方向發送。並重復步驟1、2、3,直到根橋收到TCN BPDU報文。

d)       根橋把配置BPDU報文中的Flags的TC位置1后發送,根橋和所有收到TC置位的BPDU的路由器會將修改MAC表的老化時間,如果MAC老化時間小於15S則刪除此MAC映射,大於15S的變為15S,huawei設備會直接刪除MAC地址表的映射。

2. STP定時器:

傳統STP收斂過程中,主要包含3個定時器:

① Hello Time

② Max Time

③ Forward Delay

(1)Hello Time:

Hello Time為周期發送BPDU來維護生成樹的穩定的時間,默認為2S。時間內沒有收到上游交換機發送的BPDU,則會重新進行生成樹計算。在根交換機上配置的Hello Time將作為整個生成樹內所有交換機的Hello Time。

(2)Max Age:

BPDU最大生存時間,默認為20S(實際中每經過一跳為1S),交換機通過比較從上游交換機收的BPDU中攜帶的Message Age和Max Age比較來判斷BPDU是否超時,如果收到的BPDU超時,交換機將該BPDU老化,同時阻塞接收該BPDU的接口,並開始發出以自己為根橋的BPDU。這種老化機制可以有效的控制生成樹的半徑。在根交換機配置Max Age將作為整個生成樹內所有交換機的Max age,如果超出Max Age的時間沒有收到上游發送的Hello包,則認為對端不可達,會重新收斂。華為設備中不會使用Max Age,而是會使用3*Hello時間*因子(默認為3)=18S

(3)Forward Delay:

轉發延遲,次延遲時間為Forward Felay定時器的時間,默認為15S。鏈路故障會引發網絡重新進行生成樹的計算,生成樹的結構將發生相應的變化。不過重新計算得到的新配置消息無法立刻傳遍整個網絡,如果新選出的根端口和指定端口立刻就開始數據轉發的話,可能造成臨時環路。為此,STP采用了一種端口狀態遷移機制,在傳統STP中,新選出的根端口和指定端口要經過2倍的Forward Delay演示后才能進入轉發狀態,這個演示保證了新的配置消息傳遍整個網絡,使所有參與STP計算的交換都能正確知曉網絡狀態。

3. STP端口角色:

傳統STP端口分為三種端口:

① Root Port:根端口

② Designated port:指定端口

③ Alternate Port:預備端口

端口角色

BPDU

數據

Root Port

接收BPDU但不轉發BPDU

接收並轉發數據

Designated Port

接收並轉發BPDU

接收並轉發數據

Alternate Port

接收BPDU但不轉發BPDU

不接收也不轉發數據

STP端口要求:

① 根橋無RP,根橋所有的端口都是DP

② 每個非根交換機上都有RP,並且只有唯一的一個RP

③ 每segment(一段鏈路)上只能有一個DP

④ 每Segment上可以有多個AP

注:華為設備STP端口角色采用RSTP模式,選舉模式中AP和BP也都存在,但是選舉規則和收斂時間全部按照STP模式進行,AP和BP收斂模式一置,當DP的端口出現問題,BP等待18S變為DP

(1)Root Port:

根端口,離根橋最近的非根交換機端口,每台非根交換機只有一個根端口,根交換機沒有根端口。根端口接收BPDU,並轉發數據幀。

每個STP網絡中,都會存在一個根橋,其他交換機為非根交換機,根橋或者跟交換機位於整個邏輯樹的根部,時STP網絡的邏輯中心,非根橋時根橋的下游設備,根端口時非根交換機去往根橋路徑的最優端口,在一個運行STP協議的交換機上最多只有一個根端口,但根橋上沒有根端口。

RP端口是接收到最優BPDU端口的接口,當RP端口down掉,此時最優BPDU立馬down掉,並將所有的端口置為DP重新發送BPDU,重新進行端口的選舉,其余的端口down掉不會存在此過程,如果一台交換機收不到根橋的BPDU,會等待20S后等BPDU老化重新選舉。

(2)Designated Port:

指定端口,用於數據和BPDU的轉發,指定端口接收轉發BPDU,並轉發數據幀。指點端口時交換機想所連接鏈路轉發配置BPDU的端口,每個網段有且只能由一個指定端口。一般情況下,根橋的每個端口總是指定端口。

(3)Alternate Port:

預備端口,應該為Backup Port,華為設備為Alternate Port,預備端口用於保障無環,預備端口接收BPDU,不轉發數據幀。

4. STP端口狀態:

在STP選舉端口進行收斂的時候,由於鏈路的延遲,可能每個交換機的選舉端口進行不一致而出現短暫的環路問題,為了避免這個問題,出現了傳統STP從初始到收斂必須遵守的幾種狀態,初次收斂時間為30S,稱為2倍的Forward Delay(2X15=30S)。

臨時環路的產生:

 ① 網絡中LSW4為新的根橋,此時LSW5的G0/0/3的AP端口變為了RP

② 在變為RP的一瞬間,如果LSW3的G0/0/2沒有從DP變為AP,那么網絡中如果存在

數據流量,將導致環路

STP端口的幾種狀態:

① Disabled(初始狀態)

② Blocking(阻塞狀態)

③ Listening(偵聽狀態)

④ Learning(學習狀態)

⑤ Forwarding(轉發狀態)

 (1)Disabled:

禁用狀態,端口即不處理和轉發BPDU報文,也不轉發用戶流量。交換機接口UP的一瞬間,端口處於此狀態。

(2)Blocking:

阻塞狀態,此狀態下接收並處理BPDU,但是不向外發送BPDU,不學習MAC地址,不發送數據幀,AP最終收斂為此狀態。

(3)Listening:

偵聽狀態,此狀態下接收並轉發BPDU,不學習MAC地址,不轉發數據幀(此狀態理論上所有的交換機端口默認已經選舉出所有的端口角色),初次收斂停留時間為15S。

(4)Learning:

學習狀態,此狀態下接收BPDU並轉發BPDU,並學習MAC地址,不轉發數據幀,初次收斂停留時間為15S。

注:Learing在初次收斂和拓撲改變收斂分別的作用:

① 初次收斂,由於端口角色已經選舉出來,為了收斂后節約時間而能高效的轉發,   

 所以在Learing狀態下學習MAC地址表

② 再次收斂,由於鏈路狀態發生變化導致mac地址表錯誤,所以清空MAC表並不

轉發數據重新學習MAC地址

(5)Forwarding:

轉發狀態,此狀態下接受BPDU,並學習MAC地址,轉發數據幀。

5. STP端口收斂過程:

(1)初次收斂:

傳統STP初次收斂稱為2倍的Forward Delay,時間為30S

① 交換機默認啟用STP生成樹后,端口從Disabled切到Listening狀態,此狀態接收並發送BPDU,進行端口選舉,並持續15S。

② 15S過后,進入Learing狀態,持續15秒,目的為了繼續防止臨時環路的發生,但由於端口角色已經選舉出來,為了收斂后節約時間而能高效的轉發,所以在Learing狀態下學習MAC地址表,但是不轉發數據包。

③ 在30S后,最終進入Forward狀態開始轉發數據包。

注:在Listening狀態下,已經選舉出端口角色,所以阻塞端口會直接由Listening進入Blocking狀態。

(2)拓撲變化重新收斂:

交換機在以下狀態下會改變自己存儲的BPDU

① 收到一份比收斂后根橋更優的BPDU

② 在20S(MAXage)后沒有收到根橋的BPDU但收到了一份新的BPDU(標准,huawei

實現中采用802.1W STP模式18S老化時間)

在拓撲發生變化時,BPDU報文中的MAX age為最大等待時間為20s,當交換機RP或BP端口down掉后,交換機接收不到根橋發送過來的BPDU后,等待MAXage中的時間(20S,華為使用18S),在20S后重新收斂並重新選舉出端口狀態,再次經歷二倍的Forward Delay

(2*15S)到達Forward狀態

注:在STP模式中,當RP端口出現故障,表示去往根橋的路徑失效,則根橋的BPDU也會

立刻失效,依據根橋選舉出來的算有端口狀態全部失效

① AP交換機鏈路故障:

 AP交換機上Forwarding鏈路故障,收斂時間為30S

a)       LSW3檢測到自己的RP端口G0/0/2端口出現故障

b)       由於RP端口Down掉,所以認為足有BPDU無效,交換機立刻將自己所有的端口變為DP端口並發送BPDU

c)        LSW2的G0/0/3端口收到了新的BPDU,與原始根橋的BPDU進行比較,發現原始為最優,由於為DP端口,收到了次的BPDU,認為對端設備存在問題,會立刻發送此BPDU給LSW3

d)       LSW3收到BPDU后,發現優於自身,於是將g/0/3端口變為RP,並進入2倍的Forward Delay

e)       LSW3從上游發送TCN置位的BPDU送往上游路由器LSW2,LSW2發送TCN置位的BPDU送往上有路由器Root,上游Root交換機LSW1收到TCN置位的BPDU后,發送TC置位的BPDU給下游交換機,下游交換機收到后縮減MAC地址表生存時間

② DP交換機鏈路故障:

 

原始收斂,如Cisco(50S):

a)       LSW4的RP端口G0/0/1端口故障

b)       LSW4的RP端口Down掉后,會立刻認為原BPDU失效,認為自己為根橋,發送BPDU給LSW5

c)        LSW5收到BPDU后,由於為AP端口,不會回復BPDU,而是等待MAX Age時間超時,G0/0/3端口中的BPDU老化消除,此端口重新進行選舉,從RP留下來的BPDU從G0/0/3端口送入LSW4

d)       最終,LSW5的G0/0/3端口變為DP,LSW4的G0/0/3端口變為RP,進入兩倍的Forward Delay變為Forwarding狀態

華為收斂(30S):

a)       LSW4的RP端口G0/0/1端口故障

b)       LSW4的RP端口Down掉后,會立刻認為原BPDU失效,認為自己為根橋,發送BPDU給LSW5

c)        LSW5收到BPDU后,會立刻從G0/0/3端口發出BPDU並重新進行端口的選舉

d)       最終,LSW5的G0/0/3端口變為DP,LSW4的G0/0/3端口變為RP,進入兩倍的Forward Delay變為Forwarding狀態

③ 非直連鏈路故障:

 

原始收斂,如Cisco(50S):

a)       HUB1的E0/0/1端口出現問題,但是LSW2並不能知道連接HUB的G0/0/1接收不到LSW1的BPDU,等待Max Age。

b)       Max Age過后,LSW2認為去往根橋的根端口G0/0/1鏈路出現問題,於是認為自己是根橋,發送BPDU重新收斂

c)        LSW3的阻塞端口G0/0/3由於長時間收不到SWB發送過來的BPDU,Max age超時后,也會進入重新收斂狀態,收到LSW2的BPDU后,將比較原先的LSW1的BPDU,發現LSW1的BPDU更優,發送LSW1的BPDU給LSW2,LSW2收到后重新收斂,經歷兩倍的轉發延遲進入轉發狀態。

d)       LSW2發送TCN置位的BPDU給上游路由器LSW3,LSW3收到TCN置位的BPDU后,繼續往上游發送TCN置位的BPDU給根橋LSW1,LSW1發送TC置位的BPDU給所有的下游交換機,最終交換機縮短MAC地址表的生存時間。

華為收斂(48S):

a)       HUB1的E0/0/1端口出現問題,但是LSW2並不能知道連接HUB的G0/0/1接收不到LSW1的BPDU,等待Max Age。

注:此處的Max Age時間為Hello時間*3*timer Factor(因子自定義,huawei為3)=18S

b)       Max Age18S過后,LSW2認為去往根橋的根端口G0/0/1鏈路出現問題,於是認為自己是根橋,發送BPDU重新收斂

c)        LSW3的阻塞端口G0/0/3由於長時間收不到SWB發送過來的BPDU,Max age超時后,也會進入重新收斂狀態,收到LSW2的BPDU后,將比較原先的LSW1的BPDU,發現LSW1的BPDU更優,發送LSW1的BPDU給LSW2,LSW2收到后重新收斂,經歷兩倍的轉發延遲進入轉發狀態。

d)       LSW2發送TCN置位的BPDU給上游路由器LSW3,LSW3收到TCN置位的BPDU后,繼續往上游發送TCN置位的BPDU給根橋LSW1,LSW1發送TC置位的BPDU給所有的下游交換機,最終交換機縮短MAC地址表的生存時間。

6. STP生成樹的選舉:

交換機標識由兩部分組成:兩字節長度的交換機優先級和六字節長度的MAC地址,交換機優先級取值范圍為0~65535,默認值為32768。

(1)選舉五原則:

① Root ID:

Root ID用於選舉環路網絡中唯一一台根橋,Root ID數值越小越優先

Root ID=16bit的優先級值+48bit的 MAC地址

注:默認優先級為32768

② Cost:

開銷值,表示從根橋到本設備端口的總開銷為多少

根據特定數值累加,越小越優先:

1-------------10Gb/S以上

2--------------10Gb/S

20------------1Gb/S

200-----------100Mb/S

2000----------10Mb/S

注:上述為huawei定義端口開銷,默認為802.1T標准

使用命令[Huawei]stp pathcost-standard legacy修改

使用命令[Huawei-GigabitEthernet0/0/1]stp cost 1000修改開銷值

③ Bridge  ID:

Bride ID指轉發此BPDU的Bride ID,數值越小越優先

Bridge ID=轉發者優先級+轉發者MAC地址

④ Sender port ID:

用於特定環境下打破選舉平衡,本端所連接對端端口的1Byte的優先級(默認128)+1Byte

的端口標識(對端ID越小越優先)

使用命令[Huawei-GigabitEthernet0/0/1]stp port priority 240修改接口優先級

⑤ Self port ID:

用於打破本地選舉平衡,本端的接口ID越小越優先,本端端口的1Byte的優先級(默認128)

+1Byte的端口標識(本端ID越小越優先)

使用命令[Huawei-GigabitEthernet0/0/1]stp port priority 240修改接口優先級

(2)選舉過程:

① 選舉根橋:

一個廣播型網絡中只有一個根橋

② 選舉根端口:

一個交換機的所有端口中只有一個根端口

③ 選舉指定端口:

一段鏈路中只有一個指定端口

④ 選舉預備端口:

剩下的全都為預備端口,不轉發數據流量,只接收BPDU

(3)選舉程詳解:

① 三台交換機進行選舉:

 

a)    選舉根橋:

一個域中只有一個根橋,交換機開啟STP模式,所有端口都會接受和發送BPDU,根據選舉三原則中的第一原則(優先級(默認32768,越小越優先),MAC地址(越小越優先))選舉根橋,最終MAC地址小的LSW1選舉為根橋,LSW1發送BPDU進行后續的選舉。

b)    選舉根端口:

每個交換機上只有一個根端口(根橋上無根端口),根橋LSW1從接口G0/0/1和G0/0/2發送BPDU,BPDU分別從端口發送,最終LSW2和LSW3都會從兩個端口收到來自根橋發來的BPDU

 

LSW2選舉根端口:

LSW2從G0/0/1和G0/0/2分別收到來自根橋的BPDU,用來選舉跟端口,此時比較選舉三原則:

(1)Root –ID:由於收到的BPDU都是由根橋發出來的,所有Root-ID都一致

(2) cost值:LSW2從G0/0/1收到的BPDU經過自己的G0/0/1,所以開銷值為200,LSW2從G00/0/3收到的BPDU經過了LSW3的中轉,開銷值為200+200=400,所以從G0/0/1來的BPDU的cost值小,所以LSW2的G0/0/1選舉為根端口。

 

SW3選舉根端口:

 LSW3的根端口選舉原則和LSW2同理。

c)    選舉指定端口:

每段鏈路上只有一個指定端口,根橋的所有端口都是指定端口。

鏈路一選舉指定端口:

 

LSW2從G0/0/1和G0/0/2分別收到來自根橋的BPDU,用來選舉根端口,此時比較選舉三原則:

   每段鏈路上只有一個指定端口

(1).Root –ID(由於收到的BPDU都是由根橋發出來的,所有Root-ID都一致)

(2). cost值:(由於根橋LSW1從自己的端口發出BPDU,所以LSW1的端口開銷值為0;發送到LSW2,所以LSW2的開銷值為200),所以LSW1的G0/0/1選舉為指定端口。

鏈路二選舉指定端口:

 

鏈路三選舉指定端口:

 

LSW2的G0/0/3和LSW3的G0/0/3分別從對端收到來自LSW1的BPDU,根據三原則進行

比較:

① Root ID:都是由根橋發出,所以相同

② cost:都是200,所以相同 

③ Brige ID:LSW2的mac地址小於LSW3的mac地址,所以此時選舉LSW2的GE0/0/3端口為指定端口

d)    選舉阻塞端口:

此時剩下的LS3的G0/0/3為阻塞端口

② 兩台交換機進行STP選舉:

 

a)      選舉LSW為根橋

b)     LSW2選舉根端口:

Root ID:(都是LSW1,)

cost:(開銷值一致)

Bridge ID:(都是LSW2)

port ID: 對端(都是LSW1)優先級一致,LSW1的g0/0/1小於g0/0/24,所以對應對端lSW2的G0/0/24選為根端口

c)  選舉指定端口:LSW1的G0/0/1和G0/0/24為指定端口

d)  選舉阻塞頓口:阻塞端口為LSw2的G0/0/1

③ 兩台交換機連接HUB進行STP選舉:

 

①選舉LSW2為根橋

②選舉根端口:

  • Root id一致
  • Cost一致
  • Bridge id一致
  • 對端port id一致
  • 本端g0/0/1小於g0/0/24,選舉g0/0/1為根端口

③選舉LSW2的G0/0/2為指定端口

④阻塞LSW1的G0/0/24端口

④ 交換機自環選舉:

 

  • 選舉LSW5為根橋
  • 選舉LSW4的G0/0/1為根端口
  • 選舉LSW5的G0/0/1為指定端口

   選舉LSW4的指定端口:

  • Root Id一致
  • Cost一致
  • Bridge Id一致
  • 無對端交換機port id
  • 本端G0/0/2小於G0/0/24,所以選舉G0/0/2為指定端口
  • LSW4的G0/0/24為阻塞端口
⑤ 四台交換機進行STP選舉:

O為虛擬節點

 

7. 802.1D STP缺點:

① 沒有對端口狀態和端口角色進行細致區分,(huawei已經實現)

② 算法被動,收斂速度過慢

③ 極不適應拓撲頻繁變化的網絡

三. 802.1W快速生成樹RSTP:

Rapid Spanning Tree Protocol,快速生成樹,STP協議雖然能夠解決環路問題,但是收斂速度過慢,影響了用戶通信質量。如果STP網絡的拓撲結構頻繁變化,網絡也會頻繁失去連通性,從而導致用戶通信頻繁中斷,快速生成樹協議(rapid spanning Tree Protocol ):802.1w由802.1d發展而成,基於P/A機制,這種協議在網絡結構發生變化時,能更快的收斂網絡。

1. RSTP-BPDU:

(1) Configuration BPDU:

與傳統的BPDU configuration報文中除Flages外,其余BPDU內容相同,傳統STP的BPDU中的Flage位只有TCA和TC兩位,RSTP的BPDU在此基礎上增加了多位。

    RSTP模式中,非根橋設備無論是否接收到根橋發送的配置BPDU,都會按照Hello Timer規定的時間間隔發送配置BPDU。

 

① Protocol ID協議ID,該值總為0

② Protocol Version ID協議版本ID,STP的版本(802.1D為0;802.1W為2;802.1S為3)

③ BPDU TypeBPDU類型,分為兩種,配置BPDU為0;TCN BPDU為80

④ FLags分七個置位符:

  • TCA:Topology Change Acknowledgment,拓撲變更確認信息
  • Agreement:PA機制中的Agreement置位符
  • Forwarding:端口狀態“轉發”
  • Learning:端口狀態“學習”

狀態

Forwarding

Learning

Discarding

0

0

Leaning

0

1

Forwarding

1

1

  • Port Role:端口角色,2bit,可以表示四種角色:

組合數值

含義

00

Unknown

01

Alternate Port/Backup Port

10

Root Port

11

Designated Port

  • Proposal:PA機制中的proposal置位符
  • TC:Topology Change,拓撲變更

⑤ Root ID根橋的ID,由三部分組成:

  • 4bit優先級值
  • 12bit擴展系統ID(實例ID,默認為0)
  • 8Byte系統ID(MAC地址)

⑥ RPCRoot Path Cost,開銷值

⑦ Bridge ID轉發者的ID,每經過一個交換機,Bridge ID會變為此交換機的ID,由三部分

   組成:

  • 4bit優先級值
  • 12bit擴展系統ID(實例ID,默認為0)
  • 8Byte系統ID(MAC地址)

⑧ Port ID端口ID,每經過一個交換機的端口,Port ID變為此端口的ID

⑨ Message Age配置BPDU在網絡中傳播的生存期,默認每經過一跳,Message Age+1

⑩ Max Age: Message Age最大老化時間,默認為20S

⑪ Hello time探測時間,默認為2S

⑫ forward Delay轉發延遲,默認為15S

(2) TC BPDU:

傳統STP中,只有根橋才會發送TC置位的configuration BPDU通告下游路由器用來縮短Mac地址表的生存時間。RSTP中,不存在TCN BPDU,一旦交換機發現自己的端口和對端交換機端口鏈路出現問題后,會立刻向Designated Port和Root Port發送將TC置位的configuration BPDU通告其余交換機,其余交換機收到TC置位的BPDU后,會立刻刪除除接收到TC BPDU的接口和邊緣端口以外的端口的mac表清空,整個過程持續4S。

注:由於從某個端口收到TC置位的BPDU,說明該鏈路有效,所以會保留收到configuration BPDU端口對應的MAC地址映射和配置邊緣的端口的MAC地址映射。

2. RSTP端口角色:

相對於傳統STP三種端口角色,RSTP重新定義了五種端口角色,分別為:

① root port:根端口RP

② designate port:指定端口BP

③ alternate port:替代端口AP(或bolcking port阻塞端口)

④ backup port:備份端口BP

⑤ Edge Port:邊緣端口

注:如何區分預備端口AP和備份端口BP

每條鏈路上只有一個指定端口,所以在一條鏈路上擁有DP端口的交換機為指定交換機

  • 如果從另外一條端口收到的BPDU中的Bridge ID是自身的Bridge ID,則表明當前的BPDU是從自身設備發出去的,則收到此BPDU的接口為DP
  • 如果從另外一個端口收到的BPDU中的Bridge ID不是自身的Bridge ID,則為AP

 

(1)Root Port:

根端口,離根橋最近的非根交換機端口,每台非根交換機只有一個根端口,根交換機沒有根端口。根端口接收BPDU,並轉發數據幀。

每個STP網絡中,都會存在一個根橋,其他交換機為非根交換機,根橋或者跟交換機位於整個邏輯樹的根部,時STP網絡的邏輯中心,非根橋時根橋的下游設備,根端口時非根交換機去往根橋路徑的最優端口,在一個運行STP協議的交換機上最多只有一個根端口,但根橋上沒有根端口。

注:RP端口是接收到最優BPDU的端口,后續的端口選舉都依照這份BPDU進行選舉,如果RP端口Down掉,則所有選舉出來的端口都將無效,交換機會將所有的端口變為Listening狀態,重新選舉根端口並生成新的BPDU進行重新的選舉。

 

(2)Designated Port:

指定端口,用於數據和BPDU的轉發,指定端口接收轉發BPDU,並轉發數據幀。

指點端口時交換機想所連接鏈路轉發配置BPDU的端口,每個網段有且只能由一個指定端口。一般情況下,根橋的每個端口總是指定端口。

(3)Alternate Port:

 

預備端口,在RSTP環境中,AP作用作為同一台交換機上的RP的替代端口,當交換機發現自己的某個RP端口掛掉后,會立刻將AP端口轉為RP。

(4)Backup Port:

一台交換機上存在指定端口,則為指定交換機,和指定端口存在同一鏈路上,則此接口為Backup Port,否則為AP

 

備份端口,在RSTP環境中,BP作用作為DP的替代端口(使用雙線路連接HUB做冗余),當交換機發現自己的某個DP端口掛掉后,在經歷3倍的Hello時間*time factor(huawei為18S)后將BP端口變為DP端口並直接進入Forwarding狀態

(5)Edge Port:

邊緣端口,用於連接PC的端口,邊緣端口不參與STP端口的選舉,直接進入Forwarding狀態(傳統STP也可以配置此端口,或直接在接口下使用命令STP disable關閉端口STP功能)。

配置邊緣端口的好處在於端口可以直接進入Forwarding狀態,並且當邊緣端口Down掉,不會進行P/A機制的重新收斂,不會發送TC置位的BPDU,減輕網絡的負擔。

配置邊緣端口后,此端口還是會繼續發送BPDU給下游設備,目的為了防止環路,如果用戶端存在環路,將此報文重新引回到此交換機,此時邊緣端口會變為非邊緣端口並進行選舉。

在實際中,當企業存在大量的用戶,上班時間同時開機,當交換機的一個端口由Down變為Up,會觸發交換機發送TC置位的BPDU通告其他交換機刷新MAC表項,所以此時使用Edge Port可以避免這種現象。

注:Huawei設備端口使能生成樹協議后,會默認啟用邊緣端口自動探測功能,當端口在(2 × Hello Timer + 1)秒的時間內收不到BPDU報文,自動將端口設置為邊緣端口,否則設置為非邊緣端口。

3. RSTP端口狀態:

相對於傳統的STP收斂的五種狀態,RSTP簡化為三種狀態。

分別為:

① Discarding:丟棄狀態

② Learning:學習狀態

③ Forwarding:轉發狀態

 

(1)Discarding:

丟棄狀態,此狀態下端口對接收到的數據做丟棄處理,端口不轉發數據幀,不學習MAC地址表。收斂后的AP和BP處於此狀態。

(2)Learning:

學習狀態,此狀態下端口不轉發數據幀,但是學習MAC地址表,參與計算生成樹,接收並發送BPDU。

(3)Forwarding:

轉發狀態,此狀態下端口正常轉發數據幀,學習MAC地址表,參與計算生成樹,接收並發送BPDU。

4. RSTP端口選舉過程:

 

① 基於P/A機制分段式收斂,非根橋設備無論是否收到根橋發送的配置BPDU,都會按照Hello Timer(2S)規定的時間間隔發送配置BPDU

② STP中非根橋只有收到上有設備發送過來的配置BPDU,才出發發送配置BPDU

(1)RSTP協商前提:

RSTP使用P/A機制進行協商,P/A機制協商成功需要點到點鏈路

Huawei設備在初次發送Proposal置位的BPDU進行協商時,使用Agreement置位用來表示當前鏈路為P2P全雙工模式,可以進行P/A機制的協商,如果交換機收到一份Proposal置位但是Agreement沒有置位的BPDU,不會進行P/A機制的協商。

① 點到點全雙工鏈路:

點到點鏈路為全雙工鏈路,由於P/A協商為兩端進行交互,如果中間為共享型鏈路模式,三台交換機進行互聯,則造成P/A機制無法完全同步,導致協商失敗。

 

① SWA、SWB、SWC中間為共享式網絡

② SWA發送Proposal置位的BPDU,如果SWC回復了Agreement置位的BPDU,此時SWA會立刻經端口變為轉發狀態,如,而SWA的DP又提前進入forwarding狀態會造成環路

所以為了防止在此類網絡結構中P/A協商機制導致的臨時環路,所以當接入Hub時,鏈路

出現半雙工,所以此時不會進行P/A機制的協商,防止臨時的環路

接口類型可以使用以下命令修改:

[Huawei-GigabitEthernet0/0/1]STP point-to-point force-true---強制改為P2P類型

② 都為DP、discarding狀態:

當端口初始化UP的時候,端口角色為DP,並且為Discarding狀態,才會發送Proposal置位的BPDU進行P/A機制的協商

(2)初次收斂:

① 初始狀態:

 

每一台交換機啟動RSTP后,都認為自己是“根橋”:

a)       所有端口都為指定端口

b)       處於Discarding狀態,防止臨時的環路

② 置位Proposal:

 

交換機互相發送Proposal置位的RSTP BPDU,SWA收到SWB(BID優先級低)的RSTP BPDU,會忽略,huawei設備也會將Agreement置位,用來表示當前的網絡類型為P2P全雙工模式。

③ 同步:

 

SWB收到了更優的RSTP BPDU,於是停止發送RSTP BPDU,並開始執行同步,除邊緣端口外的所有下游指定端口為Discarding。

④ Agreement置位:

 

SWB阻塞所有非邊緣端口之后,將RP端口變為Forwarding狀態,將SWA(Root)的報文中的Bridge ID變為自己的Bridge ID,並將Agreement置位,發送給SWA。

注:回送的這份Agreement置位的BPDU內容為SWA發送過來的BPDU,BPDU中的Bridge ID變為SWB,Port ID變為發往SWA的接口

⑤ 根橋遷移Forwarding狀態:

 

SWA收到Agreement置位的RSTP BPDU后,指定端口立即從Discarding遷移到Forwarding狀態

⑥ P/A機制協商失敗:

當進行到最后一段鏈路時,會將低Root ID的交換機端口置為AP端口,此時對端端口發送Proposal置位的Configuration BPDU,但是由於本端是AP端口,所以不會回復Agreement置位的Configuration BPDU,所以此時對端認為它的對端不支持RSTP,所以采用傳統的STP收斂方式,經歷2倍Forward Delay,進入Forwarding狀態。

注:由於AP鏈路並不轉發數據,所以即使要30S才會收斂,也不會影響實際的數據轉發。

(3)拓撲變化重新收斂:

① 如果RP端口失效,AP端口立刻成為RP端口

② 如果DP端口失效,BP立刻進入BP端口

③ 如果收到一份次的BPDU,立刻進行端口的重新選舉

④ 如果收不到BPDU,等待時間為Hello時間*3*timer Factor(因子自定義,huawei為3)=18S立刻認為為根橋,重新進行收斂

① AP交換機RP端口失效:

 

非根交換機的根端口down掉后,會立刻將AP端口變為RP端口進入轉發狀態,並發送TC置位的BPDU通告鄰居進行MAC地址的刪除

② DP交換機RP端口失效:

 

a)       LSW4的g0/0/1端口失效后,LSW4立刻認為自己為Root,將所有的端口變為discarding狀態,並發送proposal置位的BPDU

b)       LSW5收到proposal置位的BPDU后,與自身認為最有的BPDU進行比較,發現自身的(LSW3)更優,會將端口變為DP,並變為Discarding狀態,發送最有BPDU給LSW4,並將Proposal置位

c)        LSW4收到Proposal置位的BPDU后,發現優於自身的BPDU,同步所有端口,並將G0/0/3變為RP端口,並發送Agreement置位的BPDU給LSW5,LSW5收到后,將G0/0/3的狀態變為Forwarding狀態

MAC地址表刪除:

a)       拓撲發生變化后,交換機會立刻從所有的指定端口發送TC置位的BPDU報文

b)       當上游交換機收到TC置位的BPDU后,只保留接收到TC置位端口的mac地址映射和配置邊緣端口的MAC地址映射,刪除其余的MAC地址表

③ DP端口失效:
a)      18S收斂:

 

根交換機的DP端口失效后,在經歷3倍Hello時間*time factor(華為為18S)后將BP端口變為DP端口進入轉發狀態,並發送TC置位的BPDU通告鄰居進行MAC地址的刪除

b)     48S收斂:

 

LSW2的G0/0/2鏈路失效后,在經歷3倍Hello時間*time factor(華為為18S)后將BP端口變為DP,並且發送Proposal置位的BPDU進行P/A機制的協商,由於LSW3的G0/0/1接口為AP,不會回復BPDU,所以導致LSW2的P/A協商失敗,進入傳統的收斂裝填,30S后進入Forwarding裝填,所以為18+30=48S

④ 新根橋出現:

注1:拓撲變更的原則為:

a)       原先為Forwarding狀態的端口變為Forwarding狀態的端口,立刻轉變為Forwarding

b)       原先為Discarding狀態的端口變為Forwarding狀態的端口,進入轉發延遲或等到對端發送Alternate置位的Configuration BPDU進行確認后進入Forwarding狀態

注2:AP端口變為RP或DP只有收到新的AP交換機發送的Proposal置位的BPDU后才會進入Forwarding狀態

如果網絡中的AP端口變為DP或AP進入forwarding狀態(最終狀態),如果網絡中新選舉出的AP並沒有達到收斂,此時如果老的AP直接進入轉發狀態,會造成環路,所以當AP變為DP或BP時,他會停留在Discarding狀態,並一直等到新的AP交換機發送的Proposal置位的BPDU后才會進入Forwarding狀態

 

a)       網絡穩定的情況下,SW5的優先級更高,成為了新的根橋

b)       SW5的G0/0/2由RP變為DP,依舊為Forwarding狀態

c)        SWD的G0/0/3由AP端口變為DP端口,從Discarding狀態變為Forwarding(最終狀態),為了防止臨時環路,依舊停留在Discarding,並從G0/0/3端口發送Proposal置位的Configuration BPDU進行P/A協商

d)       SW4收到Proposal置位的BPDU后,發現更優的Configuration BPDU,於是執行同步過程,除G0/0/3端口都變為Discarding狀態,將E0/1由原來的DP變為RP,並依舊保持Forwarding狀態

e)       此時SW4和舊根橋SW3進行P/A機制的協商,SW4發送Proposal置位的Configuration BPDU,SWA發現SWC發送的Configuration BPDU(SWD的BPDU)優於自身,執行同步過程,發送Agreement置位的BPDU進行回復,SWC收到后,將E0/2變為Forwarding狀態,並繼續向上游發送Agreement置位的BPDU,此時SWD會將E0/1變為Forwarding狀態

四. 802.1S多實例生成樹MSTP:

RSTP和STP都存在了一個缺陷,即由於局域網內所有的VLAN共享一棵生成樹,鏈路被阻塞后將不承載任何流量,造成帶寬浪費,因此無法在VLAN間實現數據流量的負載均衡,還有可能造成部分VLAN的報文無法轉發。MSTP(Multiple Spanning Tree Protocol)基於實例進行負載分擔,解決了RSTP鏈路帶寬浪費的問題。

1. Region-configuration:

MSTP為區域化,每一個域為一個region-configuration。

一個區域的特征包含以下幾個方面(全部都要相同)

① region name

② reivision-level

③ Instance

域名、配置修訂號、和實例映射會生成一串哈希值,每台交換機都會交換哈希值,哈希值相同的交換機為一個region-configuration,同一個region-configuration在計算生成樹時為一個整體。

2. Instance:

實例,MSTP為了實現負載分擔的效果,將VLAN放入Instance中,端口的狀態基於實例的不同而不同。

實例內可以包含多個VLAN。通過將多個VLAN映射到同一個實例內,可以節省通信開銷和資源占用率。MSTP各個實例拓撲的生成樹計算相互獨立,通過這些實例可以實現負載均衡。

注:Instance0為默認實例,所有的VLAN默認存在於Instance0中。

MSTP配置:

 

LSW1

[Huawei]STP mode mSTP

[Huawei]STP region-configuration

[Huawei-mst-region]region-name Huawei

[Huawei-mst-region]revision-level 1

[Huawei-mst-region]instance 1 vlan  10 100

[Huawei-mst-region]instance 2 vlan 20 200

[Huawei-mst-region]active region-configuration

[Huawei]STP instance 1 root primary

[Huawei]STP instance 2 root secondary

3. MSTP-BPDU:

(1) Configuration BPDU:

Configuration BPDU中在RSTP的基礎上增加了MST Extension協議字段,用於支持對多實例和多配置域的支持,一份Configuration BPDU中包含本交換機所有的Instance映射,當在一個配置與內某台交換機稱為某個或多個實例的Root,此時會周期的發送Configuration BPDU,由於一份報文,實際上Root發送的Configuration BPDU包含此交換機所有的實例映射關系

 

① Protocol ID協議ID,該值總為0

② Protocol Version ID協議版本ID,STP的版本(802.1D為0;802.1W為2;802.1S為3)

③ BPDU TypeBPDU類型,分為兩種,配置BPDU為0;TCN BPDU為80

④ FLags分七個置位符:

  • TCA:Topology Change Acknowledgment,拓撲變更確認信息
  • Agreement:PA機制中的Agreement置位符
  • Forwarding:端口狀態“轉發”
  • Learning:端口狀態“學習”

狀態

Forwarding

Learning

Discarding

0

0

Leaning

0

1

Forwarding

1

1

 

  • Port Role:端口角色,2bit,可以表示四種角色:

組合數值

含義

00

Unknown

01

Alternate Port/Backup Port

10

Root Port

11

Designated Port

  • Proposal:PA機制中的proposal置位符
  • TC:Topology Change,拓撲變更

⑤ Root IdentifierCIST的總根交換機ID

⑥ RPCRoot Path Cost,到CIST Root的開銷值,只計算配置域的外部鏈路開銷

⑦ Bridge ID在MSTP中,此字段用來CIST的域根交換機ID,即IST Master的ID。 如果總

根在這個域內,那么域根交換機ID就是總根交換機ID

⑧ Port ID端口ID,每經過一個交換機的端口,Port ID變為此端口的ID

⑨ Message Age配置BPDU在網絡中傳播的生存期,默認每經過一跳,Message Age+1

⑩ Max Age: Message Age最大老化時間,默認為20S

⑪ Hello time探測時間,默認為2S

⑫ forward Delay轉發延遲,默認為15S

⑬ Version 1 LengthVersion1 BPDU的長度,值固定為0

⑭ Version 3 LengthVersion3 BPDU的長度

⑮ MST Configuration IdentifierMST配置標識,表示MST域的標簽信息,包含4個字段:

  • Configuration Identifier Format Selector:固定為0
  • Configuration Name:“域名”,32字節長字符串
  • Revision Level:2字節非負整數
  • Configuration Digest:利用HMAC-MD5算法將域中VLAN和實例的映射關系加密成

16字節的摘要。只有MST Configuration Identifier中的四個字段完全相同的,並且互聯的交換機,才屬於同一個域

⑯ CIST Internal Root Path CostCIST內部路徑開銷指從本端口到IST Master交換機的累計路

徑開銷。CIST內部路徑開銷根據鏈路帶寬計算

CIST Bridge IdentifierCIST本交換機ID

CIST Remaining HopsBPDU報文在CIST中的剩余跳數

MSTI Configuration MessagesMSTI配置信息。每個MSTI的配置信息占16 bytes

  • MSTI Flags:MSTI標志
    • MSTI Regional Root Identifier:MSTI域根交換機ID
    • MSTI Internal Root Path Cost:MSTI內部路徑開銷指從本端口到MSTI域根交換機的            

累計路徑開銷。MSTI內部路徑開銷根據鏈路帶寬計算

  • MSTI Bridge Priority:本交換機在MSTI中的指定交換機的優先級
  • MSTI Port Priority:本交換機在MSTI中的指定端口的優先級
  • MSTI Remaining Hops:BPDU報文在MSTI中的剩余跳數

(2) TC BPDU:

傳統STP中,只有根橋才會發送TC置位的configuration BPDU通告下游路由器用來縮短Mac地址表的生存時間。和RSTP一樣,MSTP不存在TCN BPDU,一旦交換機發現自己的端口和對端交換機端口鏈路出現問題后,除了使用PA機制更改端口外,立刻向RP端口和DP端口發送將TC置位的configuration BPDU通告其余交換機,其余交換機收到TC置位的BPDU后,會立刻刪除自己的mac表

注:由於從某個端口收到TC置位的BPDU,說明該端口為Forwarding 狀態,所以會保留收到configuration BPDU端口對應的MAC地址映射和配置邊緣的端口的MAC地址映射。

4. Multi Region-configuration:

當Region-configuration的哈希不同時,此時兩台路由器為不同的Region-configuration,Multi Region-configuration存在無法實現負載分擔,次優路徑的問題

(1)CIST Root:

① IST:

實例0,每個Region-configuration都存在實例0

② CST:

相同的配置域之間互聯稱為CST

③ CIST:

多個Region-configuration相互連接,為Multi Region-configuration,稱為CIST

④ CIST Root:

Multi Region-configuration互聯,由於都包含實例0,Multi Region-configuration中實例0中最

小的Root id為CIST Root

(2)Region-configuration Root:

每個Region-configuration都有一個Region-configuration Root,Region-configuration Root為每

個Region-configuration內離CIST Root的cost最小的邊緣交換機,CIST Root也是本區域的

Region-configuration Root,Region-configuration Root的作用為Region-configuration內的交

換機訪問其他Region-configuration必經的路徑交換機

邊緣交換機選舉規則:

① 到CIST Root區域間干線開銷最小的邊緣交換機

② Root ID最小的邊緣路由器

(3)Mast Port:

當選舉出Region-configuration Root后,此時訪問Multi Region-configuration時,此Region-configuration Root位本區域的穿越設備,如果Region-configuration Root存在多條鏈路同時去往CIST Root,此時會選舉出一條RP端口作為去往CIST Root最優的端口,這個RP端口對本配置域的其他實例稱為Mast Port

Mast Port選舉規則:

① CIST根橋標識符

② CIST外部根路徑開銷

③ CIST域根標識符

④ CIST內部根路徑開銷

⑤ CIST指定橋標識符

⑥ CIST指定端口標識符

⑦ CIST接收端口標識符

多區域只使用Instance 0進行選舉CIST Root,所以Multi Region-configuration為單實例的STP,所以在實際部署中使用單個Region-configuration,負載分擔只在同一個Region-configuration內。

(3)Multi Region-configuration選路:

① 各個配置Region-configuration中基於實例的Bridge ID選舉基於Instance的Root:

a)       在Region-configuration 1中LSW3為Instance 1的Root,LSW4為Instance 0的Root

b)       在Region-configuration 2中LSW1為Instance 10的Root,LSW6為Instance 0的Root

② 選擇CIST Root,各台交換機根據BPDU中的Root ID字段選舉出CIST Root,最后LSW4為CIST Root

③ 每個Region configuration中根據Region-configuration區域間的鏈路開銷、Root ID選擇Region-configuration Root:

a)       Region-configuration 1中LSW4為Region-configuration Root

b)       Region-configuration 2中LSW5為Region-configuration Root

④ Region-configuration 2中的Region-configuration Root LSW5存在多條等價路徑去往Region-configuration 1,根據選路規則選出最好的端口G0/0/1作為Mast Port

⑤ PC2訪問PC1,發送數據包給LSW6,LSW6從G0/0/1送給LSW1,LSW1將數據包送給Region-configuration Root LSW5,LSW5的G0/0/1端口為Master端口,LSW5將數據包從G0/0/1端口送到Region-configuration 1中,LSW4接收后傳遞給LSW3,LSW3傳遞給CIST Root LSW2,LSW2傳遞給PC1

五. STP兼容模式:

華為交換機默認STP和RSTP默認兼容模式,當一台運行RSTP的交換機在連續收到兩次(4S)傳統STP的configuration BPDU后,會自動遷移到傳統STP模式進行兼容,但此時會喪失RSTP的優勢,當傳統STP撤離時,會自動遷移回RSTP。

六. STP保護機制:

STP保護機制分為:

① root protection

② BPDU protection

③ loop-protection

④ TC-protection

1. Root protection:

   根保護,由於維護人員的錯誤配置或網絡中的惡意攻擊,網絡中的合法交換機有可能會收到優先級更高的BPDU,使的原來合法根交換機失去根交換機的地位,從而引起網絡拓撲的錯誤變動。這種不合法的拓撲變化,可能會導致原來應該通過高速鏈路的流量被牽引到低速鏈路上,造成網絡擁塞。對於啟用了根保護功能的指定端口,其端口角色不能成為根端口。一段啟用了根保護功能的指定端口收到優先級更高的BPDU時,端口將將進入Discarding狀態,不在轉發報文。在經過一段時間(約為2倍Forward Delay)后,如果端口一直沒有在收到優先級更高的BPDU,端口會自動恢復到正常的Forwarding狀態。

在所有指定端口上敲命令:STP root protection

2. BPDU protection:

BPDU保護,當邊緣端口收到BPDU之后,設備會自動將邊緣端口設置為非邊緣端口,並重新進行生成樹的計算,從而引起網絡動盪。配置BPDU保護功能后,如果邊緣端口收到BPDU報文,邊緣端口將會被立即關閉,並通知網管系統,被關閉的邊緣端口通過管理員手動恢復,也可以使用命令error-down auto-recovery cause BPDU-protection interval 30配置30S恢復。

在全局模式下敲命令:STP BPDU-protection

3. Loop-protection:

     環路防護,在運行STP的網絡中,根端口和其他阻塞端口的狀態是依靠上游交換設備不斷發來的BPDU進行維持的。當由於鏈路阻塞或者單向鏈路故障導致這些端口收不到來自上游交換設備的BPDU時,交換設備就會重新選舉根端口。原先的根端口會轉變為指定端口,而原先的阻塞端口會遷移到轉發狀態,從而造成交換網絡中可能產生的環路。在啟動了環路保護功能后,如果根端口或Alternate端口長時間收不到來自上游的BPDU,則會向網管發送通知消息,如果是根端口則進入Discarding狀態,阻塞端口則會一致保持在阻塞狀態,並且不會稱為DP端口,不轉發報文,從而不會再網絡中形成環路。直到根端口或Alternate端口收到BPDU后,端口狀態才恢復到Forwarding狀態。

在RP端口或AP接口下使用命令: STP loop-protection開啟環路保護。

 

在光纖網絡中,光纖分為兩個接口,一接一收,當SW3可以發送BPDU給SW1,但是由於接收口down掉,收不到SW1的BPDU,此時SW3會認為鏈路出現故障,於是將原先阻塞狀態的G0/0/2變為轉發狀態,造成一個單向的網絡環路。

4. TC-protection:

交換設備在接收到TC BPDU報文后,會執行MAC地址表項和ARP表項的刪除操作。如果有人偽造TC BPDU報文惡意攻擊交換設備,交換設備會在短時間內收到很多TC BPDU報文,頻繁的刪除操作會給設備造成很大的負擔,給網絡的穩定性帶來很大的隱患。啟用防TC-BPDU報文攻擊功能后,可以配置交換設備在單位時間內處理TC BPDU報文的次數。如果在單位時間內,交換設備收到的TC BPDU報文數量大於配置的閥值,交換設備只會處理閥值指定的次數。對於其他超出閥值的TC BPDU報文,定時器到期后設備只會對其統一處理一次。

全局模式下使用命令:STP tc-protection開啟防止TC-BPDU保護;

全局模式下使用命令:STP tc-protection threshold 2配置單位時間內(與RSTP Hello時間間隔一致),允許在收到TC-BPDU報文后立即進行地址表項刪除操作的最大次數為兩次。

5. BPDU-filter:

BPDU過濾,在接口或全局下使用命令stp bpdu-filter default,將不會發送也不會接口BPDU,

可以結合邊緣端口一起使用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM