1. 程式人生 > 實用技巧 >RSTP技術詳解

RSTP技術詳解

STP技術點的回顧

1、STP的作用是什麼?

通過阻塞埠來達到我們破環的目的 可以進行冗餘備份

2、STP的埠角色有哪幾個?

根埠(RP) 在非根交換機上選舉
指定埠(DP)在每一個鏈路上進行選舉
阻塞埠(AP)在非根交換機在進行邏輯阻塞
總結:埠角色的變化是秒變

3、STP的埠狀態有哪幾個?

disable:是生成樹的關閉狀態
block:AP埠的最終狀態一定是block
listening:從偵聽到學習需要15s
learning:從學習到轉發需要15s
forwarding:DP埠和RP埠的最終狀態一定是forwarding
總結:一個埠從disbale到轉發至少需要30s的時間

4、簡述STP的工作原理

1、在二層交換網路中會選舉一個ROOT交換機出來
2、在非根交換機上會選舉一個RP埠 這個RP埠是到達ROOT交換機一條最優的路徑
3、在每一個鏈路上面會選舉一個指定埠 這個指定埠是用來發送BPDU報文或者轉發BPDU報文的 一般情況 ROOT交換機上面的所有介面是指定埠
4、阻塞埠 不轉發使用者流量 但是可以接收BPDU

5、埠(RP埠或者DP埠)的競選規則

1、比較裝置的BID(就是比較ROOT交換機)
2、介面下比較到達ROOT交換機的開銷值(入向成本之和)一般就是比較RP埠這一塊
3、傳送裝置BID(一般是比較DP埠這一塊)
4、傳送裝置的PID
5、自己的PID

STP的不足

問題一:STP從初始狀態到完全收斂至少需經過30s

問題二:交換機有AP埠,RP埠down掉場景

SWC與SWA的直連鏈路down掉,其AP埠切換成RP埠並進入轉發狀態至少需要經過30s

問題三:交換機無AP埠,RP埠down掉場景

SWB與SWA的直連鏈路down掉,則SWC的AP埠切換成DP埠並進入轉發狀態大約需要50s

小結:

 如果該AP埠可以收到BPDU的話 收斂時間是30s
 如果該AP埠收不到BPDU的話 收斂時間是20s+30s=50s

問題四:執行STP的交換機連線使用者終端的場景

交換機連線終端的鏈路進入轉發需要經過30s

問題五:STP的拓撲變更機制

先由變更點朝根橋方向傳送TCN訊息,收到該訊息的上游交換機就會回覆TCA訊息進行確認;最後TCN訊息到達根橋後,再由根橋傳送TC訊息通知裝置刪除橋MAC地址表項,機制複雜,效率低下。

問題六:埠角色

問題七:埠狀態

RSTP對STP的改進

報文格式改變

STP的配置BPDU中Flag欄位的中間6位在RSTP中得到了應用
PID:協議ID,永遠都是0
PVI:協議版本ID,對於stp來說是0
RSTP來說是2,對於MSTP來說是3
BPDU type:0X00 表示配置BPDU
0X80 TCN BPDU
0X02 RST BPDU或者MST BPDU

埠角色與埠狀態

RSTP定義了兩種新的埠角色:備份埠(Backup Port)和預備埠(Alternate Port)

小結:

 RP埠的備份埠就是AP埠
 DP埠的備份埠就是BP埠
實驗如下:

問題1:為什麼SW3的G0/0/5成為BP埠?而不是G0/0/4

問題2:怎麼樣讓SW3的G0/0/5成為DP埠呢?

RSTP的狀態規範把原來的5種狀態縮減為3種:

小結:

 Discarding:不轉發使用者流量 也不學習MAC地址表項
 learning:不轉發使用者流量 學習我們MAC地址表項
 forwarding:轉發使用者流量和轉發BPDU報文

RSTP收斂快之處

1、STP中,根橋按照Hello Timer規定的時間間隔傳送配置BPDU報文,其他非根橋裝置在收到上游裝置傳送過來的配置BPDU報文後,才會觸發發出配置BPDU報文,此方式使得STP協議計算複雜且緩慢。
2、RSTP對此進行了改進,即在拓撲穩定後,無論非根橋裝置是否接收到根橋傳來的配置BPDU報文,非根橋裝置都會仍然按照Hello Timer規定的時間間隔傳送配置BPDU,該行為完全由每臺裝置自主進行。

鏈路故障/根橋失效
 STP中,當出現非直連鏈路故障或根橋失效導致交換機收不到BPDU時,交換機需要等待Max Age時間後才能確認出現了故障。
 RSTP中,如果交換機的埠在連續3次Hello Timer規定的時間間隔內沒有收到上游交換機發送的RST BPDU,便會確認本埠和對端埠的通訊失敗,從而需要重新進行RSTP的計算來確定交換機及埠角色。

P/A機制

Proposal(提議)/Agreement(同意)機制,其目的是使一個指定埠儘快進入Forwarding狀態 P/A程序中任何幀轉發都將被阻止
P/A機制要求兩臺交換裝置之間鏈路必須是點對點的全雙工模式。一旦P/A協商不成功,指定埠的選擇就需要等待兩個Forward Delay,協商過程與STP一樣。特點:由於有來回確認機制和同步變數機制,就無需依靠計時器來保障無環
事實上對於STP,指定埠的選擇可以很快完成,主要的速度瓶頸在於:為了避免環路,必須等待足夠長的時間,使全網的埠狀態全部確定,也就是說必須要等待至少兩個Forward Delay,所有端口才能進行轉發

小結:

兩臺交換機SW1和SW2之間連線 由於SW1的BID是4096 SW2的BID是8192 因為SW1會主動向SW2傳送P置位的BPDU報文(此時的SW1的情況 Discarding 埠角色是DP) 當SW2收到之後同步變數(阻塞除邊緣埠外的其他埠,防止出現環路) 同步好之後 SW2會發送一個A置位的BPDU報文給SW1(SW2的情況 Forwarding RP埠) 當SW1收到之後收到A置位BPDU報文,埠立即進入Forwarding

根埠快速切換機制

SWC與SWA的直連鏈路down掉,其AP埠切換成RP埠並進入轉發狀態可在秒級時間內完成收斂

小結:

 當交換機的RP端口出現故障的時候 該交換機如果有多個AP埠的話 該交換機會從中挑出一個最優的AP作為RP埠 非常快進入到轉發狀態
 當交換機的DP端口出現故障的時候 該交換機如果有多個BP埠的話 該交換機會從中挑出一個最優的BP作為DP埠 非常快進入到轉發狀態

次等BPDU處理機制

SWB與SWA的直連鏈路down掉,SWC的AP埠切換成DP埠並進入轉發狀態可在秒級時間內完成

邊緣埠的引入

在RSTP中,交換機連線終端的鏈路可立即進入轉發狀態 用於連終端主機和交換機之間的埠 可以設定為邊緣埠即插即用

邊緣埠特點:

 邊緣埠一般與使用者終端裝置直接連線
 邊緣埠不參與RSTP運算但是邊緣埠可以往外發BPDU
 可以由Disabled狀態直接轉到Forwarding狀態,且不經歷時延
 一旦邊緣埠收到配置BPDU報文,就喪失了邊緣埠屬性,成為普通STP埠,並重新進行生成樹計算,從而引起網路震盪
實驗如下:

SW2上的邊緣埠都是往外發BPDU的

問題:為什麼邊緣埠可以向外發BPDU?
 比如1號埠的BPDU經由交換機發往2號埠,這時2號埠因為收到BPDU,會轉變為普通埠,進行生成樹的選舉
 1號埠因為收到2號埠的BPDU,也會轉變為普通埠,進行生成樹的選舉。先決出一個DP埠和BP埠,此時兩埠的狀態都是discarding狀態。所以 DP會在30秒後進入轉發狀態,BP維持阻塞狀態

Stp bpdu-filter enable命令的作用

從G0/0/5上抓包看到沒有BPDU報文了

拓撲變化處理機制

判斷拓撲變化唯一標準:一個非邊緣埠遷移到Forwarding狀態
為本交換裝置的所有非邊緣指定埠啟動一個TC While Timer,該計時器值是Hello Time的兩倍。在這個時間內,清空狀態發生變化的埠上學習到的MAC地址。同時,由這些埠向外傳送RST BPDU,其中TC置位。一旦TC While Timer超時,則停止傳送RST BPDU。
其他交換裝置接收到RST BPDU後,清空所有埠學習到MAC地址,除了收到RST BPDU的埠。然後也為自己所有的非邊緣指定埠和根埠啟動TC While Timer,重複上述過程。 如此,網路中就會產生RST BPDU的泛洪。

拓撲變化引發的問題

拓撲變化處理 (1)

拓撲變化處理 (2)

拓撲變化處理 (3)

拓撲變化處理 (4)

RSTP相容STP

當同一個網段裡既有執行STP的交換機又有執行RSTP的交換機時,STP交換機會忽略接收到的RST BPDU,而RSTP交換機在某埠上接收到STP BPDU時,會等待兩個Hello Time時間之後,把自己的埠轉換到STP工作模式,此後便傳送STP BPDU

保護功能

BPDU保護

BPDU的應用場景

BPDU的作用

[SWB]stp bpdu-protection

配置BPDU保護功能後,如果邊緣埠收到BPDU報文,邊緣埠將會被立即關閉,並通知網管系統(eSight網管)。被關閉的邊緣埠可配置成自動恢復或管理員手動恢復。

根保護

根保護的應用場景

根保護的作用
 根保護功能僅在指定埠生效
 一旦啟用了root保護功能的指定埠收到優先順序更高的BPDU,埠狀態進入Discarding狀態,不在轉發報文,在經過一段時間(通常為兩倍的Forward Delay)後,如果埠一直沒有再收到優先順序更高的BPDU,埠自動恢復到正常的Forwarding狀態

[SWA]interface GigabitEthernet 0/0/1 
[SWA-GigabitEthernet0/0/1]stp root-protection

實驗如下:

在我們SW4上面讓其優先順序變為4096

環路保護

SW6和SW7交換機間全雙工鏈路 SW6到SW7方向中斷 SW7到SW6方向正常,所以SW7的AP埠收不到BPDU後,成為DP埠,而SW6的DP埠還存在
在執行RSTP協議的網路中,根埠和其他阻塞埠狀態是依靠不斷接收來自上游交換裝置的RST BPDU維持。當由於鏈路擁塞或者單向鏈路故障導致這些埠收不到來自上游交換裝置的RST BPDU時,此時交換裝置會重新選擇根埠。原先的根埠會轉變為指定埠,而原先的阻塞埠會遷移到轉發狀態,從而造成交換網路中可能產生環路
在啟動了環路保護功能後,如果根埠或Alternate埠長時間收不到來自上游裝置的BPDU報文時,則向網管發出通知資訊(此時根埠會進入Discarding狀態,角色切換為指定埠),而Alternate埠則會一直保持在阻塞狀態(角色也會切換為指定埠),不轉發報文,從而不會在網路中形成環路,直到RP埠或AP埠收到BPDU,埠狀態才恢復到
正常的Forwarding狀態

實驗如下:
因為環路保護的埠不能讓埠成為DP埠所以開啟環路保護的交換機不餓能成為Transit交換機,環路保護多用在網路中的幹線埠以避免幹線埠的單向路徑所致的環路

TC-BPDU泛洪保護

TC-BPDU的應用場景
交換裝置在接收到TC BPDU報文後,會執行MAC地址表項和ARP表項的刪除操作。如果有人偽造TC BPDU報文惡意***交換裝置時,交換裝置短時間內會收到很多TC BPDU報文,頻繁的刪除操作會給裝置造成很大的負擔,給網路的穩定帶來很大隱患。
TC保護多用於在互聯裝置的邊界埠上,可避免由於一個網路規劃/優化不善,或邊緣網路沒有防禦措施,而致核心網路頻受TC泛洪的影響
TC-BPDU的作用
啟用防TC-BPDU報文***功能後,在單位時間內,交換裝置處理TC BPDU報文的次數可配置。如果在單位時間內,交換裝置在收到TC BPDU報文數量大於配置的閾值,那麼裝置只會處理閾值指定的次數。對於其他超出閾值的TC BPDU報文,定時器到期後設備只對其統一處理一次。這樣可以避免頻繁的刪除MAC地址表項和ARP表項,從而達到保護裝置的目的
在stp tc-protection interval指定的時間內,裝置只會處理stp tc-protection threshold指定數量的拓撲變化報文,對於其他的報文會延遲處理,所以可能會影響生成樹的收斂速度。例如,時間設定為10秒,閾值設定為5,則裝置收到拓撲變化報文後,在10秒內只會處理最開始收到的5個拓撲變化報文,對於後面收到的報文則會等10秒超時後再統一處理。

RSTP配置例項

SWA、SWB和SWC組成了一個環形的交換網路,為了消除環路對網路的影響,故使交換機都執行RSTP,最終將環形網路結構修剪成無環路的樹形網路結構。
案例如下

在SWA上檢視生成樹資訊

<SWA>display stp brief
 MSTID  Port                                     Role  STP State              Protection
   0         GigabitEthernet0/0/1        DESI  FORWARDING      NONE
   0         GigabitEthernet0/0/2        DESI  FORWARDING      NONE

<SWA>display stp 
-------[CIST Global Info][Mode RSTP]-------
CIST Bridge         :0    .4c1f-cc5f-55e4
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :0    .4c1f-cc5f-55e4 / 0
CIST RegRoot/IRPC   :0    .4c1f-cc5f-55e4 / 0
CIST RootPortId     :0.0
BPDU-Protection     :Disabled
CIST Root Type      :Primary root

在SWB上檢視生成樹資訊

[SWB]display stp brief
 MSTID  Port                                Role    STP State                   Protection
   0    GigabitEthernet0/0/1        ROOT  FORWARDING          NONE
   0    GigabitEthernet0/0/3        DESI    FORWARDING          NONE
   0    GigabitEthernet0/0/4        DESI    FORWARDING          BPDU
<SWC>display stp brief
 MSTID  Port                                     Role    STP State               Protection
   0         GigabitEthernet0/0/2        ROOT  FORWARDING      NONE
   0         GigabitEthernet0/0/3        ALTE   DISCARDING         NONE
   0         GigabitEthernet0/0/4        DESI   FORWARDING       BPDU