天天看點

華為 RS RSTP原理與配置複習筆記

 STP(Spanning Tree Protocol)是生成樹協定,主要作用是防止交換網絡中的備援鍊路形成環路工作。

 STP協定雖然能夠解決環路問題,但是由于網絡拓撲收斂較慢,影響了使用者通信品質,而且如果網絡中的拓撲結構頻繁變化,網絡也會随之頻繁失去連通性,進而導緻使用者通信頻繁中斷,這也是使用者無法忍受的。由于STP的不足,IEEE于2001年釋出的802.1w标準定義了RSTP。RSTP在STP基礎上進行了諸多改進優化,使得協定更加清晰、規範,同時也實作了二層網絡拓撲的快速收斂。

 STP存在的問題:

1.STP從初始狀态到完全收斂至少需經過30s:初始狀态下,交換機都認為自己是根橋,是以每個端口都會往外發送BPDU封包,這個BPDU封包裡面攜帶了封包的優先級,開銷值等一些參數,同時每一個交換機也會從對端的接口裡接收到對方的BPDU,接收之後,進行一個比較,計算,确定誰是根橋,确定各個端口的端口角色,在這個過程中, 交換機會從listening到learning需要等待一個forward delay(每個15s),STP為避免臨時環路,必須等待足夠長的時間(即確定BPDU能同步發送至全網各節點)確定全網的端口狀态全部确定,才能進入轉發。确定全網狀态之後,在STP進入轉發前還需根據收到的使用者流量建構MAC位址表,仍需等待計時器逾時(forward delay:15s)才能進入轉發,交換機的端口狀态會從learning到forwarding狀态(崗前教育訓練),初始狀态下,收斂速度需要至少30秒;

2.交換機有BP端口,RP端口down掉場景下,其BP端口切換成RP端口并進入轉發狀态至少需要經過30s:如下圖所示,交換機C上的根端口壞掉了,對于交換機C來說,它是可以直接感覺到的,那麼就會将自身的BP轉化成RP,為確定拓撲變化資訊已經擴散到全網,且所有裝置都已完成拓撲更新,故新的根端口還需等待計時器逾時後才能進入轉發,原來的阻塞端口(BP)變成新的根端口,且處于blocking狀态,并經過2個Forward Delay時間(30s)才進入轉發狀态,

華為 RS RSTP原理與配置複習筆記

3.交換機無BP端口,RP端口down掉場景,

如下圖所示:交換機B上隻有DP和RP,但是現在SWB上的根端口(RP)down了,那麼對于SWB來說,它和根橋的聯系就斷了,是以交換機B會向外發送一個BPDU,它會認為自己是根橋,發送給SWC之後,但是對于交換機C來說,它會認為SWA是根橋,但是對于SWC來說又不能告訴SWB,SWA才是根橋,等到,交換機C上端口緩存的更優的BPDU老化逾時(20s),在STP中,交換機除指定端口外的其他端口收到次優BPDU都不會做處理 ,端口緩存的BPDU逾時後,會重新進入收斂,等待2個Forward Delay (30S)時間後進入轉發狀态,這個過程一共需要50秒。

華為 RS RSTP原理與配置複習筆記

 4.運作STP的交換機連接配接使用者終端的場景

在STP裡面,不管是什麼端口,想要進入轉發狀态就必須等待兩次延時,(每次15秒,共30秒)防止端口直接進入轉發狀态,會發生環路,那麼對于交換機連接配接終端的鍊路進入轉發需要經過30s,事實上,隻要保證該端口下連接配接的是終端裝置就不會出現環路,即沒有必要進行STP計算和等待計時器逾時,對于交換機來說,隻要意識到某個端口連接配接的是主機終端裝置的話,那麼這個端口就不會發生環路,直接進入轉發狀态就行了,但是在APT裡面沒有這個機制。

5.STP的拓撲變更機制

在STP裡面,如果拓撲發生變化,先由變更點朝根橋方向發送TCN消息,收到該消息的上遊交換機就會回複TCA消息進行确認;最後TCN消息到達根橋後,再由根橋發送TC消息通知裝置删除橋MAC位址表項,隻有根橋才能發送TA消息,其他交換機在收到根橋的消息之後,才會清空mac位址表項,機制複雜,效率低下。

6.端口角色

在STP裡面有根端口,指定端口,和備份端口,隻有三種端口角色,當交換機上的的RP端口down掉後,還需要從其他三個端口中重新選舉且需等待計時器逾時後才能進入轉發。

7.端口狀态

對于STP來說有五種狀态,在這五種狀态裡面針對資料流量來說,Disabled、Blocking和Listening這三種狀态是既不轉發使用者流量也不學習mac位址,對應的行為都是一樣的,是以,可以把這三種狀态合并為一個狀态,在RSTP裡面就是這樣做的。

STP端口狀态 端口狀态對應的行為
Disabled 不轉發使用者流量也不學習MAC位址
Blocking
Listening
Learning 不轉發使用者流量但是學習MAC位址
Forwarding 既轉發使用者流量又學習MAC位址

RSTP對STP的改進

RSTP定義了兩種新的端口角色:備份端口(Backup Port)和預備端口(Alternate Port),如下圖所示:

華為 RS RSTP原理與配置複習筆記

對于預備端口和備份端口來說,這兩種端口都是處于阻塞狀态的,都是不能轉發流量的,那麼預備端口是根端口的替代端口,備份端口是指定端口的備份端口,如果這個端口的最優BPDU是從對方那裡收到的,那麼這個端口就是預備端口,那麼如果收到的最優BPDU是來自于本身交換機的另外一個接口,那麼這個端口就是備份端口,如上圖所示,交換機C的根端口從根橋那裡收到了一個最優的BPDU,做了一個更新之後,從E0/1接口發了出去,但是由于下端連的裝置是HUB,那麼這個BPDU又會從E0/2的接口發送回去,那麼對于SWC來說,他從E0/2這個端口收到的BPDU就是它本身的BPDU,那麼E0/2這個端口就是備份端口。

端口狀态的重新劃分

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

STP端口狀态 RSTP端口狀态 端口狀态對應的行為
Disabled Discarding 如果不轉發使用者流量也不學習MAC位址,那麼端口狀态就是Discarding狀态。
Blocking
Listening
Learning Learning 如果不轉發使用者流量但是學習MAC位址,那麼端口狀态就是Learning狀态。
Forwarding Forwarding 如果既轉發使用者流量又學習MAC位址,那麼端口狀态就是Forwarding狀态。

從使用者角度來講,Listening、Learning和Blocking狀态并沒有差別,都同樣不轉發使用者流量。

RSTP裡面把這個Disabled,Blocking,listening三種狀态合并成了一種狀态Discarding狀态,這個狀态下是不處理使用者流量的,但是會轉發和發送BPDU,在STP裡面,listening狀态對于BPDU是可收可發的,Blocking狀态下隻能收,不能往外發,那麼在RSTP裡面,因為合并了這三種狀态,是以是可收可發的。

P/A機制

P/A機制主要是為了解決初始狀态下,交換網絡收斂慢的問題。

P:proposal 請求

A:agreement 同意

Proposal/Agreement機制,其目的是使一個指定端口盡快進入Forwarding狀态。

這個P位和A位在BPDU封包裡面的flag字段裡面,把之前在STP裡面沒有用上的位利用上了。

P/A機制的工作原理,如下圖所示:

華為 RS RSTP原理與配置複習筆記

在交換網絡的初始狀态下,對于圖中的SWA和SWB都會認為主機是這個交換網絡裡的老大(根橋),都會往外去發送P置位的BPDU封包,表示我可以讓我的這個端口進入轉發狀态嗎?那麼往外發送BPDU的這個端口,就是指定端口了,當二者在收到對方的BPDU封包之後,會進行一個比較,比較橋優先級,在這裡,橋優先級值越小越優先,對于上圖中的SWA來說,它的橋優先級值是0,而SWB的優先級值是4096,那麼對于這兩個交換機來說,SWB就知道SWA要比它本身更優,SWA是根橋,那麼對于SWA來說,就會忽略SWB的BPDU封包,那麼對于SWB來說,原來的指定端口就會變成一個根端口,并且阻塞除了邊緣端口外的其他端口,防止出現環路,并且會給SWA回複一個A置位的BPDU,表示,你可以讓你的這個端口進入轉發狀态了。當SWA的這個端口收到這個A置位的BPDU之後,就會立馬進入轉發狀态。

事實上對于STP,指定端口的選擇可以很快完成,主要的速度瓶頸在于:為了避免環路,必須等待足夠長的時間,使全網的端口狀态全部确定,也就是說必須要等待至少兩個Forward Delay,所有端口才能進行轉發。由于有來回确認機制和同步變量機制,就無需依靠計時器來保障無環。(BPDU兩秒發送一次)

 那麼在實際的應用中,P/A機制是怎麼應用的呢?

如下圖所示,

華為 RS RSTP原理與配置複習筆記

階段一:裝置剛剛啟動, RSTP 協定剛剛啟用,所有交換機都認為自己是根橋,向其他交換機發送 P 置位的 BPDU ,并把發送 P 消息的端口變成 DP 口,同時接口處在 Discarding 狀态。 階段二:交換機 SWA 收到 SWB 和 SWC 的 P 消息會置之不理,因為他的橋優先級最高。交換機 SWB 和 SWC 收到 SWA 的 P 消息後,由于認同 SWA 是最優的根橋,會根據 P/A 協商流程回複 A 消息,并把發送端口變成 RP 端口,同時接口處在 Forwarding 狀态。 階段三: SWA 與 SWB , SWA 與 SWB 的 P/A 協商已經完成,接下來是 SWB 和 SWC 的 P/A 協商。 SWB 和 SWC 都會發送根橋為 SWA 的 P 消息給對方。 SWC 收到 SWB 的 P 消息後,發現 P 消息裡雖然根橋和自己認可的一樣,但是發送者的橋優先級比自己優 (SWB>SWC) ,所有馬上停止發送 P 消息,但是由于已經有端口是 RP 口,也不會回 A 消息。 (A置位的BPDU隻有根端口會發) SWB 收到 SWC 的 P 消息後,發現 P 消息裡雖然根橋和自己認可的一樣,但是發送者的橋優先級比自己低 (SWB>SWC) ,會不停的發送 P 消息。 以上狀态在 等待 2 個 Forward Delay 時間後, SWB 端口為 DP 端口,處在 Forwarding 狀态, SWC 端口為 AP 端口,處在 Discarding 狀态。

實際上SWB與SWC之間的協商等同于退回到STP的模式,但是反正是Discarding狀态,根本不影響其他業務轉發。 

RSTP選舉原理和STP本質上相同:選舉根交換機-選舉非根交換機上的根端口-選舉指定端口-選舉預備端口和備份端口。但是RSTP在選舉的過程中加入了“發起請求-回複同意”(P/A機制)這種确認機制,由于每個步驟有确認就不需要依賴計時器來保證網絡拓撲無環才去轉發,隻需要考慮BPDU發送封包并計算無環拓撲的時間(一般都是秒級)。

P/A機制要求兩台交換裝置之間鍊路必須是點對點的全雙工模式。一旦P/A協商不成功,指定端口的選擇就需要等待兩個Forward Delay,協商過程與STP一樣。可以通過在接口視圖下配置:stp point-to-point force-true 來修改

 根端口快速切換機制

如下圖所示,0SWC與SWA的直連鍊路down掉,其AP端口切換成RP端口并進入轉發狀态可在秒級時間内完成收斂:

華為 RS RSTP原理與配置複習筆記

 次等BPDU處理機制

如下圖所示:SWB與SWA的直連鍊路down掉,SWC的AP端口切換成DP端口并進入轉發狀态可在秒級時間内完成:

華為 RS RSTP原理與配置複習筆記

假設作為根橋的SWA,和SWB之間的鍊路Down掉了,那麼對于SWB來說,就會往外武器發送一個Proposal位置1的BPDU,那麼對于SWC來說,AP端口雖然處于Discarding狀态,但是它是可以接收和發送BPDU的,它在收到 次優BPDU後會馬上發送本地最優的BPDU給對端,同時端口角色從AP變更為DP,這個BPDU裡面的P位也是置1的,SWB收到更優的BPDU,會立即重新定義端口角色,将原DP端口改為RP端口,然後發送Agreement置位的BPDU,SWC收到Agreement封包後會立即進入轉發。

邊緣端口的引入

在RSTP中,交換機連接配接終端的鍊路可立即進入轉發狀态:如果交換機的對端裝置連接配接的是終端裝置的話,那麼終端裝置是不會造成環路的,是以我們可以把終端裝置和交換機之間的端口定義為新的概念,叫做邊緣端口,對于這個邊緣端口一上線,就會進入轉發狀态,沒有延時,如果邊緣端口收到了BPDU的封包,那麼對于這個邊緣端口來說,就不能立馬進入轉發狀态,因為有可能會造成環路,就會成為普通的STP端口,并且重新進行生成樹的計算。

華為 RS RSTP原理與配置複習筆記

邊緣端口的角色不是交換機和交換機之間協商出來的,而是通過人為設定出來的,是以, 隻能通過給端口通過指令敲進去告訴交換機這個端口是邊緣端口。

拓撲變更機制的優化

判斷拓撲變化唯一标準:一個非邊緣端口遷移到Forwarding狀态。

如下圖所示,SWE在向外發送TC置位的RST的BPDU的時候,對于SWB來說,在收到了SWE的TC置位的RST的BPDU之後,會對除了收到SWE封包的接口以外的接口還有邊緣端口的mac位址表都清零,SWB也會往外去擴散這個TC置位的RST BPDU,把該清空的mac位址表都清空掉,

華為 RS RSTP原理與配置複習筆記

網絡發生拓撲變化時,變更點交換機直接向全網發送TC置位的BPDU封包,而不是先通知到根橋,然後由根橋向全網發送TC封包,這樣在一定程度上節省了收斂時間 。

拓撲變化引發的問題

如下圖所示,每個裝置上的mac位址表都已經學習好了,那麼現在網絡中的PCB想要去通路PCA,根據mac位址表項,SWC會把資料交給SWA,SWA會把資料交給SWB,但是由于SWB上的RP端口Down掉了,是以流量會被丢棄,那麼針對這個拓撲變化,PCB的流量就不能正常去通路PCA。

華為 RS RSTP原理與配置複習筆記

那麼對于這種問題,該如何解決?如下圖所示,

華為 RS RSTP原理與配置複習筆記

一旦檢測到拓撲發生變化,首先将進行如下處理: 清空狀态發生變化的端口上學習到的 MAC 位址。 同時,由這些端口向外發送 RST BPDU ,其中 TC 置位。一旦 TC While Timer 逾時,則停止發送 RST BPDU 。 如上圖所示, SWB 的 E1 端口出現故障之後, RSTP 的處理過程如下: SWB 重新計算生成樹,選舉 E2 為新的根端口。 SWB 删除 MAC 位址表中 E1 端口所對應的表項。 生成樹重新計算完成之後(需要進入轉發狀态的端口已經進入了轉發狀态), SWB 的所有非邊緣端口向外發送 TC 置位的 RST BPDU 。    

如下圖所示, SWC在收到TC置位的BPDU之後,會清空除了收到封包外的其他所有非邊緣端口學到的mac位址,

華為 RS RSTP原理與配置複習筆記

 同樣的SWA在收到TC置位的BPDU封包之後,也會有相同的動作,如下圖所示。

華為 RS RSTP原理與配置複習筆記

注意:邊緣端口down掉不會觸發拓撲變更,而且故障恢複後,同樣也不會觸發拓撲變更。 

BPDU保護

應用場景:防止有人僞造RST BPDU惡意攻擊交換裝置,當邊緣端口接收到該封包時,會自動設定為非邊緣端口,并重新進行生成樹計算,引起網絡震蕩,如下圖所示:黑客在邊緣端口接入一台運作生成樹的交換機,新接入的交換機發送BPDU封包會引起其他交換機進行生成樹計算,并引起網絡震蕩,邊緣端口收到BPDU會自動将其設定為非邊緣端口,并重新進行生成樹計算,對于其他的裝置來說,收到了新的BPDU封包之後,會重新進行生成樹計算,那麼在這個過程中,會有短暫的時間,網絡的動蕩的。

華為 RS RSTP原理與配置複習筆記

實作原理:配置BPDU保護功能後,如果邊緣端口收到BPDU封包,邊緣端口将會被立即關閉,立刻被關閉就意味着不會參與生成樹的計算,不參與生成樹的計算就不會讓交換網絡發生動蕩,如下圖所示,

華為 RS RSTP原理與配置複習筆記

如果這個接進來的交換機是攻擊者的交換機,那麼這個BPDU保護是非常有效的,但是如果是一個真正的,有用處的交換機,那麼這個交換機就被拒絕了參與生成樹的計算, 是以要預先做好規劃,如果這個端口後期需要接入交換機,那你就不要在這個接口上配置BPDU保護。

根保護 

應用場景:由于維護人員的錯誤配置或網絡中的惡意攻擊,網絡中合法根橋有可能會收到優先級更高的RST BPDU,使得合法根橋失去根地位,進而引起網絡拓撲結構的錯誤變動,如下圖所示,SWA是根橋,然後這邊新接入了一個優先級更優的交換機,由于交換機在選舉的時候,是搶占機制,對于其他的交換機來說,收到了更優的RST BPDU,重新進行生成樹計算,這樣的話,會引起網絡拓撲結構的錯誤變動,

華為 RS RSTP原理與配置複習筆記

那麼針對以上的情景,我們可以通過在指定端口上配置根保護,來解決以上問題。 

實作原理:一旦啟用Root保護功能的指定端口收到優先級更高的RST BPDU時,端口狀态将進入Discarding狀态,不再轉發封包。在經過一段時間,通常為兩倍的Forward Delay,如果端口一直沒有再收到優先級較高的RST BPDU,端口會自動恢複到正常的Forwarding狀态,如下圖所示,

華為 RS RSTP原理與配置複習筆記

Root 保護功能隻能在指定端口上配置生效。

TC-BPDU泛洪保護  

TC-BPDU 攻擊: 交換機在接收到 TC-BPDU 封包後,會執行 MAC 位址表項的删除操作。如果有人僞造 TC-BPDU 封包惡意攻擊交換機時,交換機短時間内會收到很多 TC-BPDU 封包,頻繁的删除操作會給裝置造成很大的負擔,給網絡的穩定帶來很大隐患。

 如下圖所示:

華為 RS RSTP原理與配置複習筆記

TC-BPDU 攻擊保護: 啟用防 TC-BPDU 封包攻擊功能後,在機關時間内, RSTP 程序處理 TC 類型 BPDU 封包的次數可配置(預設的機關時間是 2 秒,預設的處理次數是 3 次)。如果在機關時間内, RSTP 程序在收到 TC 類型 BPDU 封包數量大于配置的門檻值,那麼 RSTP 程序隻會處理門檻值指定的次數;對于其他超出門檻值的 TC 類型 BPDU 封包,定時器到期後, RSTP 程序隻對其統一處理一次。這樣可以避免頻繁的删除 MAC 位址表項,進而達到保護交換機的目的,如下圖所示,

華為 RS RSTP原理與配置複習筆記

 RSTP配置如下:

如下圖所示,L SW1 、L SW2 和L SW3 組成了一個環形的交換網絡,為了消除環路對網絡的影響,故使交換機都運作 RSTP ,最終将環形網絡結構修剪成無環路的樹形網絡結構。

華為 RS RSTP原理與配置複習筆記

 LSW1上的配置如下:

stp enable   

開啟生成樹協定,對于華為的新款交換機來說,這個生成樹協定是預設開啟的,但是對于一些老的裝置,需要手動開啟

stp mode rstp  将生成樹的協定模式改為快速生成樹

stp root primary  将這台交換機裝置強制性的設定為根橋

stp tc-protection   使能交換裝置對TC類型BPDU封包的保護功能。預設情況下,交換裝置的TC保護功能處于去使能狀态。

LSW2上的配置如下:

stp enable

stp mode rstp

stp bpdu-protection   在全局開啟BPDU防護,配合邊緣端口一起使用

interface GigabitEthernet 0/0/1

 stp edged-port enable  配置端口為邊緣端口

interface GigabitEthernet0/0/3

 stp root-protection     在指定端口下,配置根保護

 LSW3上的配置:

stp enable

stp mode rstp

stp bpdu-protection

interface GigabitEthernet 0/0/3

 stp edged-port enable

 結果驗證:

在LSW1上檢視生成樹資訊,如下圖所示:

華為 RS RSTP原理與配置複習筆記
華為 RS RSTP原理與配置複習筆記

 在LSW2和LSW3上檢視接口資訊,如下圖所示,會看到BPDU和根保護的配置。

華為 RS RSTP原理與配置複習筆記