STP保護——root guard、BPDU guard、loop guard

來源:本站原創 CISCO 超過1,424 views圍觀 0條評論

STP也可能遭受到各種類型的攻擊,所以STP的保護工作也非常重要●對接入端口的保護:Root Guard和BPDU Guard對于接入端口而言,可能臨時新連接一臺交換機在其下,而這可能會引起STP拓撲不必要的變化。要防止此問題,可以在接入端口激活BPDU Guard和Root Guard來監控是否有BPDU進入。它們的基本操作如下:

1)BPDU Guard:在每個或者單個端口上激活;如果接收到任何BPDU,該端口即被屏蔽。用來防止對交換機STP的DOS攻擊,需要配置errdisable后可自動恢復。

#errdisable recovery cause bpduguard

#errdisable recovery interval 30 指定errdisable關閉的端口恢復的時間

擴展:spanning-tree portfast bpduguard 命令作用是將所有配置了portfast的端口啟用bpduguard

2)Root Guard:在每個或接收到優先級更高BPDU的端口上激活;如果啟用root guard端口收到優先級更高的BPDU報文則端口會被置為root-inconsistent狀態,這種狀態類似于listen狀態,忽略任何優先級更高的BPDU,這樣可以阻止連接在此端口的交換機成為根交換機。無需配置即可自動恢復,但是前提是在3個周期也就是6秒內沒有再接收到優先級更高的BPDU報文。命令:全局或者端口下 spanning-tree rootguard●對中繼端口的保護:UDLD和Loop Guard對于中繼端口而言,最主要的問題是要避免因為單向(Unidirectional)鏈路(鏈路一端失敗,可能是因為一端接插問題而引起)的存在而導致交換機端口錯誤地從阻塞狀態轉換到轉發狀態。解決這個問題的辦法是:UDLD(兩種模式)和Loop Guard,具體操作如下:1)UDLD:使用第二層消息來決定什么時候交換機不再由鄰接交換機接收幀,交換機未失敗的傳輸接口置為錯誤屏蔽狀態。配置后可自動恢復。2)UDLD aggressive mode:當接收不到另一交換機消息時,先試圖重連(8次),如果仍然沒有反應,那么兩端都置為錯誤屏蔽狀態。配置后可自動恢復。

3)Loop Guard:當接收不到正常的BPDU時,端口不再進行正常的STP收斂,而是進入STP環路沖突(loop-inconsistent)狀態。無需配置即可自動恢復。

BPDU保護
BPDU 保護僅用在PortFast模式。它被網絡設計者用來加強STP域邊界。從而保持與其的活動拓撲。在啟用STP PortFast端口之后的設備被禁止影響STP拓撲。對于配置了portfast特性的接口,它不應當接收到BPDU,如果配置了PortFast特性 的接口接收了BPDU,那就表示了無效的配置,可能就會產生橋接環路,通過配置BPDU保護后,配置了PortFast的端口如果收到BPDU將會把端口 狀態調整到Err-Disable.如下是一個信息:
2000 May 12 15:13:32 %SPANTREE-2-RX_PORTFAST:Received BPDU on PortFast enable port. Disabling 2/1
2000 May 12 15:13:32 %PAGP-5-PORTFROMSTP:Port 2/1 left bridge port 2/1
如 下圖所示,A的優先級為8192,為該vlan的根橋,B的優先級為16384,為備份根橋,B和A之間的鏈路為Gbit/s鏈路,C是一個接入交換機, 并在連接到設備D得端口上設置了PortFast.其他的STP參數都是默認值,網橋C上連接到網橋B得端口處于STP阻塞狀態。設備D(PC)不參與 STP。正確的BPDU流向,如下左圖
   如果D為一臺基于Linux的軟件網橋,可以發送BPDU報文,并將自身BID的優先級設置為0,此時,D將成為根橋,故BPDU流向變為右圖, A,B間的Gbit/s鏈路被阻塞,通過C走100Mbit/s鏈路。此時會超負載出現丟包的情況, BPDU保護的目的就是基于這種情況,防止接入設備對整個網絡拓撲的影響。
   配置過程:
     方法一:全局配置模式
1) 全局配置模式 configure terminal
2) 配置BPDU保護
     (config)#spanning-tree portfast bdpuguard default
3) 進入接口模式 interface 接口
4) 接口使能portfast,BPDU保護才能啟用
     (config-if)#spanning-tree portfast
方法二:接口模式
1) 接口模式下 interface 接口
2) 使能BPDU保護
    (config-if)#spanning-tree bpduguard enable
   驗證過程:
    show running-configure

BPDU過濾(BPDU Filtering)
通 過使用BPDU過濾功能,將能夠防止交換機在啟用了PortFast特性的接口上發送BPDU。對于配置了PortFast特性的端口,它通常連接到主機 設備,因為主機不需要參與STP,所有它將丟棄所接收到的BPDU。通過使用BPDU過濾功能,將能夠防止向主機設備發送不必要的BPDU。
   交換機支持以每個端口或者整個交換機配置BPDU過濾。
   如果全局配置了BPDU過濾功能,但當某個端口接收到了任何的BPDU,那么交換機將把接口更改回正常的STP操作,也就是它將禁用PortFast和BPDU過濾特性。
   如果在接口上明確配置了BPDU過濾功能,那么交換機將不發送任何的BPDU,并且將把接收到的所有BPDU都丟棄。
   注意,如果在鏈接到其他交換機的端口上配置了BPDU過濾,那么就有可能導致橋接環路,所以在部署BPDU過濾時要格外小心,一般我們不推薦使用BPDU過濾。
   如果在與啟用了BPDU過濾的相同接口上配置了BPDU保護,因為BPDU過濾的優先級高于BPDU保護,所以BPDU保護將不起作用。
配置過程:
     方法一:全局配置模式
1) 全局配置模式 configure terminal
2) 配置BPDU保護
    (config)#spanning-tree portfast bdpufilter default
3) 進入接口模式 interface 接口
4) 接口使能portfast,BPDU保護才能啟用
    (config-if)#spanning-tree portfast
方法二:接口模式
1) 接口模式下 interface 接口
2) 使能BPDU保護
    (config-if)#spanning-tree bpduguard enable
   驗證過程:
    show running-configure

根保護
傳統的802.1D STP沒有給網絡管理員提供確保交換式第2層網絡拓撲安全。如下圖,當新接入的
交換機優先級更低,將搶占原有的根網橋。
根保護的目的是確保啟用了根保護的端口成為指定端口。通常一個根橋的所有端口均為指定端口。
除非連接到兩個或多根網橋的端口。如果網橋在啟用根保護的端口上收到一個較好的 STP BPDU。這個
端口進入STP的根不一致狀態, 不會有流量通過該端口。
   如下拓撲:
   A 和 B 為分布層 SW,C 為接入層 SW,根為 A。當在 C 下面再接一臺 SW時,由于D的優先級或MAC地址可能比其它要低,可能會使D成為Root SW,從而使得從A 到達B的流量不能直接發送到B,而得使用C來轉發,這樣很不合理(A 和 B 之間為千兆)。為了避免這種情況,可以在C的下聯端口上使用Root Guard,以防止該端口成為Root Port,從而防止D成為Root SW,確保A永遠為 Root SW。使用Root Guard 后,SW D接入網絡后,C的下聯D的端口會收到一個更新的BPDU(前提是D的優先級最高)后,C將該端口轉為Block狀態,直到D不在發送新的BPDU或更改 D的優先級。
當一個根保護端口阻塞一個端口時,控制臺將會顯示如下消息:
%SPANTREE-2-ROOTGUARDBLOCK: Port 1/1 tried to become non-designated in VLAN 77. Moved to root-inconsistent state
   注意,在一個端口上起用了根保護,會作用于該端口所屬的所有VLAN。不要再一個起用了UplinkFast特性的端口上啟用根保護。游樂 UplinkFast,在出現故障時備份端口(處于阻塞狀態)會代替根端口。但是,如果也啟用了根保護,所有使用UplinkFast特性的備份端口將被 置于根不一致(阻塞)狀態,使其無法進入轉發狀態。
    配置過程:
1) 進入接口模式 interface 接口
2) 啟用根保護
    spanning-tree guard root
3) 驗證過程
    show running-config interface 接口
    show spanning-tree inconsistentports
顯示端口不一致(阻塞)狀態的信息

環路保護
換路保護能夠對第2層轉發環路(STP環路)提供額外的保護。當冗余拓撲中的STP阻塞端口錯誤地過渡到轉發狀態的時候,就將發生橋接環路。
如 下圖:交換機A是根交換機。因為交換機B和C之間的鏈路發生單向鏈路失效,交換機不能從交換機B接收BPDU。如果沒有啟用環路保護特性,那么交換機C在 最大壽命計時器到期之后,交換機C上的STP阻塞端口將轉換到STP監聽狀態,并最終會在兩倍的轉發延遲時間之后轉換到轉發狀態。當交換機C的源阻塞端口 進入到轉發狀態的時候,交換機B的源指定端口還處于轉發狀態,這個拓撲中沒有阻塞端口,而產生了環路。
如果啟用了環路保護特性之后,當最大壽命計時器到器之后,交換機C上的阻塞端口將過渡到“不一致環路”狀態,如下圖,如果端口處于“不一致環路”狀態,它就不能傳遞任何數據流量,因此,網絡也就不能產生橋接環路。“不一致環路”狀態等效于阻塞狀態。
在 非指定端口上使用 Loop Guard。防止環路產生。避免上于處于 Block 端口的 SW 在Max_age 時間內接收不到對方(鄰居)的 BPDU 而將端口狀態轉為 Listen->Learning->Forward 狀態。使用Loop Guard 后,等接收不到對方的BPDU消息后,將端口Block狀態轉為Loop-inconsistent(環路不一致)狀態,從而避免產生環路。
如果使用Loop Guard,那么Root Guard將會被關閉。兩者不能同時啟用
配置過程:
     方法一:全局配置模式
1) 全局配置模式 configure terminal
2) 配置環路保護
    (config)#spanning-tree portfast loopguard default
方法二:接口模式
1) 接口模式下 interface 接口
2) 使能環路保護
    (config-if)#spanning-tree guard loop
   驗證過程:
show running-configure
show spanning-tree active
show spanning-tree interface 接口 detail
——————————————————————-
Port 23 (FastEthernet0/23) of VLAN0001 is forwarding
   Port path cost 19, Port priority 128, Port Identifier 128.23.
   Designated root has priority 32769, address 000b.5f2c.2080
   Designated bridge has priority 32769, address 000b.5f2c.2080
   Designated port id is 128.23, designated path cost 0
   Timers: message age 0, forward delay 0, hold 0
   Number of transitions to forwarding state: 1
   Link type is point-to-point by default
   Loop guard is enabled on the port
   BPDU: sent 2709, received 5

文章出自:CCIE那點事 http://www.qdxgqk.live/ 版權所有。本站文章除注明出處外,皆為作者原創文章,可自由引用,但請注明來源。 禁止全文轉載。
本文鏈接:http://www.qdxgqk.live/?p=270轉載請注明轉自CCIE那點事
如果喜歡:點此訂閱本站
  • 相關文章
  • 為您推薦
  • 各種觀點
?
暫時還木有人評論,坐等沙發!
發表評論

您必須 [ 登錄 ] 才能發表留言!

?
?
萌宠夺宝游戏