<優化STP>
·BPDU防護:
對於設置了PortFast接口,卻收到了BPDU,如果設置了BPDU防護,就能將此接口關閉,而不會進入生成樹狀態。
spanning-tree portfast bpduguard default (全局開啓)
int f0/1
spanning-tree bpduguard enable (接口開啓)
show spanning-tree summary [totals]
Show errdisable recovery 顯示可導致接口errdisable的選項
設置自動恢復:
errdisable recovery cause bpduguard 設置300S(默認)後自動修復bpduguard所導致的errdisable
errdisable recovery interval 30 修改默認的修復時間
·BPDU過濾:不發也不收
通過使用BPDU過濾,能夠防止在啓用portfast的端口上向host發送不必要的BPDU。
注意:
如果在全局下配置,從端口收到BPDU的話,不會禁掉端口,會轉爲正常的STP狀態
如果在接口下配置,從端口收到BPDU的話,會丟棄。
如果在同一接口設置Guard/Filter , F優於G
BPDU過濾只是一種優化技術,在接口上配置BPDU過濾有可能導致橋接環路,所以不推薦使用。
spanning-tree portfast bpdufilter default(全局開啓)
int f0/9
spanning-tree bpdufilter enable (接口開啓)
show spanning-tree summary totals
·根保護:
能夠將接口強制設爲DP,進而防止對端SW成爲Root。
設置了根保護的端口如果收到了一個優於原BPDU的新的BPDU,它將把本端口設爲blocking禁止狀態,過一段時間,如果沒再收到BPDU,它會恢復端口,這一點不同於BPDU的防護。
int f0/5
spanning-tree guard root
測試:將其他SW變成根橋,看原來根橋的現象:
show spanning-tree inconsistentports
Show spanning-tree interface f0/2 detail
show spanning-tree
Fa0/2 Desg BKN*19 128.2 P2p *ROOT_Inc
·環路保護: 對於軟件故障處理得更好
當STP中的BLK端口錯誤的過渡到FWD狀態,有可能出現環路。
啓用Loopguard的接口,如果原來的BPDU老化了,不會轉到listening狀態,而將自動轉爲inconsistent狀態
在inconsistent狀態下,會再根據對端交換機發過來的BPDU進行決定端口狀態。
如果是出現了單向鏈路失效的現象,對端交換機是不會有BPDU過來的,所以接口將一直保持inconsistent。
默認情況下是禁用的。
spanning-tree loopguard default (全局)
int f0/9
spanning-tree guard loop (接口)
·UDLD單向鏈路失效檢測: 對於硬件故障處理得更好
單向鏈路失效是比較常見的現象,以太網線纜的收發出現問題。
當鏈路保持“UP”的時候,接口卻沒有流量收到。
UDLD是一種二層協議,它與第一層機制協同工作來確定鏈路的物理狀態。
啓用UDLD能使得這種接口自動進入“err-disable”狀態。
啓用了UDLD的交換機之間會互相發送UDLD協議包來保持聯繫,默認間隔15S
Sw1(config)#udld enable 也可在接口下配
show udld
積極模式的UDLD--當端口停止接收UDLD的數據包時,UDLD將嘗試重新建立與鄰居的連接,但如果嘗試8次之後還不成功,那麼兩端的端口都將成爲“err-disable”狀態。
Err-disable特性:
在CISCO交換機上有很多的保護特性都會導致接口進入err-disable狀態
接口如果進入err-disable狀態:有兩種方法恢復
1、手動恢復
先shutdown、再no shutdown
2、自動恢復
errdisable recovery cause {all|arp-inspection|bpduguard|link-flap} 指定原因
errdisable recovery interval 30 指定自動恢復時間間隔
命令總結:
bgduguard
接口開啓:sw1(config-if)#spanning-tree bpduguard enable
全局開啓:sw1(config)#spanning-tree portfast bpduguard default
如果對所有開了portfast的端口進行限速如何辦?
sw1(config)#spanning-tree portfast bpduguard 【對所有開啓了portfast的接口進行bpdu防護】
loopguard
接口開啓:spanning-tree guard loop
全局開啓:span-tree loopguard default
loop防護:該技術不能與根保護一起用,一起使用後會互相覆蓋。
bpdufilter
sw3(config-if)#spanning-tree bpdufilter enable
sw1(config)#spanning-tree portfast bpdufilter default
bpdufilter和bpduguard一起使用時,bpdufilter優先!
rootguard
sw1(config-if)#spanning-tree guard root