前文我們瞭解了RSTP相關話題,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/16240348.html;今天我們來聊一聊RSTP保護相關話題;
我們知道RSTP優化了STP收斂速度,同時也加入了邊緣埠的機制,但是如果有人惡意使用stp特有的屬性發起攻擊,對於STP網路來說它也會造成網路不穩定;為了更好的保證RSTP協議在網路不穩定情況下,儘可能的保證流量的正常轉發,在標準協議中新增了4中保護功能;
1、BPDU保護
提示:我們知道邊緣埠的屬性就是不參與stp計算,但是它一旦收到了BPDU,該屬性也就失效;邊緣埠正常情況下是不可能收到BPDU報文的,如果說邊緣埠收到BPDU,說明要麼是我們鏈鋸接線有問題,要麼是有人惡意攻擊我們;如果我們沒有開啟邊緣埠BPDU保護,對應邊緣埠參與STP計算就會造成網路的震盪不穩定;
提示:所謂BPDU保護就是針對邊緣埠的,開啟了邊緣埠的BPDU保護,對應邊緣埠一旦收到BPDU報文後,會立即把該埠shutdown;從而實現保護現有的stp網路不受邊緣埠的影響而造成網路震盪;
實驗:如下拓撲,配置RSTP
sw1的配置
sys sys sw1 stp mode rstp stp priority 4096
sw2的配置
sys sys sw2 stp mode rstp int g0/0/3 stp edged-port en
sw3的配置
sys sys sw3 stp mode rstp stp priority 8192
驗證rstp個埠角色和狀態
提示:可以看到現在三個交換機RSTP的角色和狀態都符合我們的拓撲;
插拔邊緣埠,看看對應是否會對stp網路造成影響?
提示:可以看到現在模擬插拔邊緣埠,並不會對stp網路造成影響,因為邊緣埠不參與stp計算;
向邊緣埠傳送bpdu,看看對應埠是否會對stp網路造成影響呢?
提示:我們使用sw4來傳送bpdu,看看對應邊緣埠收到bpdu後,是否會參與stp計算?
提示:感覺開機配置SW4以後,對應沒有發生什麼變化;我們把sw4配置成root看看對應會發生變化嗎?
提示:可以看到現在我們插拔邊緣介面,對應stp網路就會發生震盪;這說明 邊緣介面收到BPUD後會參與計算;
開啟邊緣介面BPDU保護
驗證:現在開啟sw4的g0/0/1,看看對應鏈路是否會自動shutdown呢?
提示:可以看到當我們把sw4的埠開啟以後,對應sw2連線hub的鏈路就會down,這是sw2上開啟了bpdu保護,對應邊緣埠收到bpdu後,會立即將對應邊緣埠軟down;
關閉sw4的1口,看看對應sw2的邊緣介面會不會自動up起來呢?
提示:可以看到對應關閉了Sw4的1口,對應sw2的邊緣介面並沒有up起來;這是因為預設我們沒有配置error-down自動恢復;
配置error-down自動恢復時間為30秒
提示:系統預設error-down自動恢復時間範圍是30-86400秒;
檢視error-down自動恢復
提示:可以看到配置了error-down自動恢復時間,並開啟了sw4介面後,對應sw2的邊緣介面在30秒鐘後啟動一次邊緣介面,如果邊緣介面再次收到bpdu報文,對應又會產生error-down,對應埠又會shutdown,所以我們可以看到當error-down倒數計時完了以後,對應鏈路會啟動馬上又斷掉;
2、根保護
提示:我們知道如果在一個穩定的stp拓撲中加入一臺交換機,並開啟stp,對應拓撲就會發生變化,從而導致stp網路震盪;根對於stp來說尤其重要,所有跨交換機的訪問流量都會經由根,如果有人惡意冒充stp的根不但對stp網路會造成震盪、次優路徑,同時資訊保安也得不到保障,為此RSTP協議中加入了根保護機制;
提示:所謂根保護機制是指配置了根保護的介面,如果收到更優的RST BPDU,對應埠會進入阻塞狀態,不再轉發報文;如果一段時間內該埠沒有收到更優的RST BPDU,對應埠又會恢復到正常轉發狀態;
實驗:還是以上拓撲,我們在sw2的g0/0/3口配置根保護
提示:邊緣介面不能配置根保護;
刪除sw2的邊緣介面屬性
驗證:開啟sw4的g0/0/1口,傳送更有的RST BPDU,看看對應埠是否會阻塞?
提示:可以看到但我們把sw4口up起來後,對應sw2的3口就從轉發變成了阻塞;這是因為sw2的3口配置了根保護,它收到更優的RST BPDU後,對應會觸發根保護機制,將轉發狀態變成阻塞狀態,不再轉發資料,從而實現保護現有stp網路;
關閉sw4的g0/0/1口,看看對應sw2的g0/0/3口是否會自動將狀態恢復成轉發狀態呢?
提示:可以看到當把sw4的g0/0/1口shutdown以後,對應sw2的g0/0/3口會等待一段時間,確定沒有收到更優的RST BPDU以後,對應埠又會參與到stp計算中;這裡需要注意,指定埠從阻塞狀態轉變為forwarding狀態,會經由learning狀態,而不是直接轉變成forwarding狀態;
3、環路保護
提示:所謂環路保護是指由於鏈路擁塞導致BPDU丟失,為了避免因鏈路擁塞導致stp拓撲發生變化,從而引起stp網路震盪;設定環路保護的埠當收不到上游交換機傳送的BPDU報文時,環路保護機制就會生效;如果該埠參與了stp計算,則不論其角色如何,該埠在所有例項都處於discarding狀態;
配置環路保護的命令
提示:環路保護和根保護是互斥的,配置了根保護的埠不能再配置環路保護;環路保護和根保護都是在對應埠模式下開啟;開啟了環路保護的埠,在檢視埠狀態的後面會有一個保護機制從none變為loop;
4、TC保護
提示:我們知道只要往STP拓撲上接入交換機並開啟stp,對應stp網路都會發生拓撲變化從而引起網路震盪;拓撲變化對應交換機就會傳送tc,大量的TC報文會導致整個網路的交換機頻繁刪除mac地址表項,從而給交換機和鏈路帶來隱患;為了防止過多的TC報文影響網路穩定,RSTP協議中增加了tc保護;
提示:所謂TC保護是指我們配置交換機在單位時間內處理單位數量的TC報文,如果超出配置單位時間處理的tc報文個數,對應交換機就處理TC報文;
配置TC保護
1、全域性開啟TC保護
2、配置單位時間(處理頻率),預設是2秒
stp tc-protection interval 10,這個命令在華為的模擬器上沒有,但真機有的機型是有的
3、配置閥值(要處理的tc報文數量)預設是1個
總結:各保護機制和應用的埠和作用
RSTP保護推薦方案
提示:在主根橋和備用根橋上開啟根保護,在接入終端的交換機上開啟邊緣埠和BPDU保護,環路保護在交換機與交換機相連的根埠或備份埠上開啟;