BPDU GUARD
BPDU GUARD的功能是當這個端口收到任何的BPDU就馬上設爲Error-Disabled狀態。我們知道,當交換機STP功能啓用的時候,默認所有端口都會參與STP,併發送和接受BPDU,當BPDU GUARD開啓後,在正常情況下,一個下聯的端口是不會收到任何BPDU的,因爲PC和非網管換機都不支持STP,所以不會收發BPDU。當這個端口下如果有自迴環的環路,那麼它發出去的BPDU在非網管換機上回環後就會被自己接收到,這個時候BPDU GUARD就會把它立刻設爲Error-Disabled狀態,這個端口就相當於被關閉了,不會轉發任何數據,也就切斷了
環路,保護了整個網絡。
BPDU Guard特性可以全局啓用也可以基於基於接口的啓用,兩種方法
稍有不同.
當在啓用了Port Fast特性的端口收到了BPDU後,BPDU Guard將關
閉
該端口,使該端口處於err-disable狀態,這時必須手動才能把此端
口回覆爲正常狀態。
配置BPDU Guard:
Switch(config)# spanning-tree portfast bpduguard
default /---在啓用了PortFast特性的端口上啓用
BPDUguard---/
Switch(config-if)# spanning-tree bpduguard
enable /---在沒啓用PortFast特性的情況
下啓用BPDUguard---/
BPDU Filtering
特性和BPDU Guard特性非常類似.通過使用BPDU Filtering,將能夠防止交換機在啓用了Port Fast特性的端口上發送BPDU給主機。
如果全局配置了BPDU Filtering,當某個Port Fast端口接收到了BPDU,那麼交換機將禁用Port Fast和BPDU Filtering特性,把端口
更改回正常的STP狀態.
如果在單獨的Port Fast端口啓用BPDU Filtering,此端口將不發送
任何的BPDU並忽略所有接收到的BPDU.
注意,如果在連接到其他交換機的端口(不是連的主機的端口)上配置了BPDUFiltering,那麼就有可能導致層2環路(Prevent from sending and receiving BPDU).另外,如果在與啓用了BPDU Filtering的相同端口上配置了BPDU Guard特性,所以BPDU Guard將不起作用,
起作用的將是BPDU Filtering.
配置BPDU Filtering:
Switch(config)# spanning-tree portfast bpdufilter default /---在啓用了Port Fast特性的端口上啓用
BPDU Filtering---/
Switch(config-if)# spanning-tree bpdufilter
enable /---在不啓用Port Fast特性的
情況下啓用BPDU Filtering---/
ROOT Guard
Root Guard:防止新加入的交換機(有更低根網橋ID)影響一個已經穩定了(已經存在根網橋)的交換網絡,阻止未經授權的交換機成爲根網橋。
工作原理:當一個端口啓動了此特性,
當它收到了一個比根網橋優先值更優的BPDU包,則它會立即阻塞該端口,使之不能形成環路等情況。這個端口特性是動態的,當沒有收到更優的包時,則此端口又會自己變成轉發狀態了。
ROOT Guard在DP(designated port)指定端口上做,該端口就不會改變了,只會是DP了,這樣可以防止新加入的交換機成爲root,該端口就變成了永久的DP了,(show spann inconsistentport),若新
加入的交換機想成爲root,則它的端口不能工作,直到這個新交換機委曲求全做RP爲止。
Loop Guard
Loop Guard:防止一個阻斷的端口由於鏈路不正常(不能雙向通信等)接不到BPDU後變成轉發,配了此項後,即使接不到BPDU也是阻斷的loop-inconsistent blocking state(啓用loop guard時自動關閉root guard);
Loop guard在RP接口或替代端口啓用: Switch(config-if)# spanning-tree guard loop
全局啓用:
Switch(config)#spantree global-default loopguard enable 如果在一個啓用了root guard的端口上啓用loop guard,loop guard將禁用root guard功能。