爲了解決二層網絡的環路問題,引入了STP協議族,可是因爲惡意***及STP協議族自己的固有瑕疵,仍存在一些問題,這些問題致使了網絡的環路和擁塞,爲了解決這些問題,主要有根保護,環路保護,BPDU保護和TC 保護等方法。
本文經過整理華爲Hex文檔,結合自身理解,對生成樹網絡中的防禦機制進行總結,以便往後故障處理。網絡
在二層網絡中,咱們每每但願網絡結構是穩定的或者相對穩定的,所以在STP協議族中,咱們但願一旦根橋被選中,除非其出現故障沒法正常轉發數據,不然其應該是相對穩定不變的。
而若是網絡中接入一臺優先級更高的交換設備或者網絡中出現了惡意***,網絡中的合法根橋極有可能因收到優先級更高的RST BPDU而失去根橋地位,進而觸發二層網絡拓撲結構顯著變動,出現大規模的生成樹從新計算現象,致使網絡擁塞。
爲了防止這種狀況的發生,能夠經過在指定端口上啓用根保護功能,使根橋的端口角色只能保持爲指定端口。一旦指定端口收到了更優的RST BPDU,端口狀態將進入discarding 狀態,再也不轉發報文,通常通過兩個forward delay時間,端口沒有再收到優先級更高的RST BPDU,就會恢復到正常的forwarding狀態。
根保護功能的實現是經過主動阻塞自身的指定端口實現的,雖然會犧牲短暫的forward delay 時間,但相比於網絡擁塞,這些犧牲是值得的,划算的。ide
system-view interface {dp} stp root-protection
在運行RSTP的網絡中,根端口和其餘阻塞端口狀態是依靠不斷接收來自上游交換設備的RST BPDU來維持的。而若是由於鏈路擁塞或者單向鏈路故障致使這些端口沒法收到上游交換設備的RST BPDU時,這些端口的端口角色和端口狀態就會主動進行改變,如根端口變爲指定端口,阻塞端口進入轉發狀態。從而致使網絡中產生環路。oop
如圖所示,當BP2-CP1之間的鏈路發生擁塞時,DC因爲根端口CP1在超時時間內沒法收到來自DB的RST BPDU,根端口CP1成爲指定端口,alternate端口CP2進入轉發狀態,成爲根端口,造成了環路。
爲了解決此問題,須要在根端口或者alternate端口啓動環路保護功能。若是根端口或者alternate端口長時間沒法收到來自上游設備的RST BPDU時,就會向網管發出通知信息,而且,根端口也會進入discarding狀態,角色切換爲指定端口,不轉發報文。這樣就不會在網絡中造成環路。直到其再一次收到上游設備發來的RST BPDU,才恢復成原來的狀態。
缺省狀況下,端口的環路保護功能處於關閉狀態。同時,已經配置了根保護功能的端口,不能夠配置環路保護功能。code
system-view interface {rp&ap} stp loop-protection
在二層網絡內,通常將接入交換設備的端口配置成爲邊緣端口。正常狀況下,邊緣端口不會收到RST BPDU。
邊緣端口不參與RSTP運算,能夠由Disable直接轉到Forwarding狀態,且不經歷時延,就像在端口上將STP禁用。可是一旦邊緣端口收到配置BPDU,就喪失了邊緣端口屬性,成爲普通STP端口。
若是有人僞造RST BPDU惡意***交換設備,當邊緣端口接收到RST BPDU時,交換設備會自動將邊緣端口設置爲非邊緣端口,並從新進行生成樹計算,從而引發網絡震盪。blog
交換設備上啓動了BPDU保護功能後,若是邊緣端口收到RST BPDU,邊緣端口將被error-down,可是邊緣端口屬性不變,同時通知網管系統。文檔
system-view stp bpdu-protection
缺省狀況下,交換設備的BPDU保護功能處於禁用狀態。it
交換設備在接收到TC BPDU報文後,會執行MAC地址表項和ARP表項的刪除操做。若是有人僞造TC BPDU報文惡意***交換設備時,交換設備短期內會收到不少TC BPDU報文,頻繁的刪除操做會給設備形成很大的負擔,給網絡的穩定帶來很大隱患。io
啓用防TC-BPDU報文***功能後,在單位時間內,交換設備處理TC BPDU報文的次數可配置。若是在單位時間內,交換設備在收到TC BPDU報文數量大於配置的閾值,那麼設備只會處理閾值指定的次數。對於其餘超出閾值的TC BPDU報文,定時器到期後設備只對其統一處理一次。這樣能夠避免頻繁的刪除MAC地址表項和ARP表項,從而達到保護設備的目的。class
system-view stp tc-protection interval interval-value//配置設備處理閾值指定數量的拓撲變化報文所需的時間。缺省狀況下,設備處理最大數量的拓撲變化報文所需的時間是Hello Time。 stp tc-protection threshold threshold//配置交換設備在收到TC類型BPDU報文後,單位時間內,處理TC類型BPDU報文並當即刷新轉發表項的閾值。缺省狀況下,設備在指定時間內處理拓撲變化報文的最大數量是1。
配置後,在stp tc-protection interval指定的時間內,設備只會處理stp tc-protection threshold指定數量的拓撲變化報文,對於其餘的報文會延遲處理,因此可能會影響生成樹的收斂速度。例如,時間設定爲10秒,閾值設定爲5,則設備收到拓撲變化報文後,在10秒內只會處理最開始收到的5個拓撲變化報文,對於後面收到的報文則會等10秒超時後再統一處理。配置