理解并演示:Root Guard(根保护)
理解并演示:Root Guard(根保護)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 本文截自于博主CCNP交換技術稿件內容
? ? ?Root Guard是一種強制的根保護措施,它的作用是防止意外(或者非法)加入的交換機成為網絡中的根橋,如圖所示,原本交換環路中只存在S1、S2、S3時,正確的根橋應該是S1,因為它有最優勢的BID(一般而言是因為MAC地址最小),如果此時在原本的交換環路中加入了一臺更有優勢BID的網橋比如new_S,此時它可能具備更小的網橋優先級,那么這臺新加入的交換機new_S就可能成為原交換環路中的新的根橋,出現這種情況時,由于生成樹的重計算(有時英文也在重配置),會直接導致原有的交換環路不穩定。比如圖左邊部分所示,在沒有加入new_S這臺潛在的非法網橋時,S1為根橋,S1的E0/0和E0/1都是指定端口;而S2的E0/0是根端口,E0/2為指定端口;S3的E0/1是根端口,E0/2是阻塞端口,至于為什么會是這樣,筆者在CCNA部分的書稿有詳細說明。當new_S這臺潛在的非法交換機加入到原始的交換環路時,如圖右邊部分,一切將發生改變,生成樹的穩定性將遭到破壞,此時new_S將成為新的根橋,因為它有更有優勢的BID,new_S的E0/3是指定端口;S2的E0/3將變成根端口,E0/0和E0/2會變成指定端口;S1的E0/0變為根端口,E0/1變為指定端口;而S3的E0/2將變為根端口,E0/1將變為阻塞端口,而BPDU報文的流向也如虛箭頭所繪會發生改變。
??而Root Guard(根保護)的意義就是在S2的E0/3上強制它成為指定端口,就是當S2的E0/3接口收到比當前更有優勢的BPDU報文時(就是指的new_S發來的BPDU報文),S2會將該端口轉到一種叫root-inconsistent(不一致的根)狀態,并且在這種狀態下該端口會進入阻塞狀態,流量肯定也不會從該端口轉發,達到保護并強化了原環路中的根(S1)地位的目標,注意此時root-inconsistent的狀態相當于生成樹的監聽狀態,如果new_S這臺潛在的非法根橋,不再發送BPDU報文給S2的E0/3接口,那么該接口將自動結束root-inconsistent(不一致的根)狀態,并取消對該端口的阻塞。
?
演示:啟動Root Guard(根保護)的配置及效果檢測
?
演示目標:
ü? 在沒有根保護時,加入非法交換機的情況
ü? 在啟動根保護時,加入非法交換機的情況
演示環境:如上圖所示的演示環境。
演示背景:首先讓交換機S1、S2、S3形成穩定的環路,并觀察它在這個原本穩定的環路中生成樹的選舉及計算情況,暫時不要讓new_S交換機接入到當前的交換環境,但是可以先將new_S交換機的BID配置到最小,一般通過調整new_S的生成樹優先級來實現,這樣就可以模擬new_S為非法交換機,并希望自己成為整個交換網絡的根,具體配置可以通過在new_S的全局模式下執行spanning-treevlan 1 priority 28672來模擬一個更有優勢的BID。然后再將new_S接入環路,并再次觀察生成樹的選舉及計算過程,明確并取證哪些不穩定的情況,最后再到S2的E0/3上部署Root Guard(根保護)功能,明確并取證根保護功能對非法接入交換機new_S的約束效果。
演示步驟:
第一步:首先構造S1、S2、S3之間的穩定環路,當生成樹的計算完成后,在交換機S3上可以通過show spanning-tree指令來查看穩定環路中的根橋及相關端口狀態,如圖所示,不難看出當前的S3是認可S1為環路的根橋的,并且E0/2端口是被阻塞,關于這一點在前面的理論部分已經有詳細的描述。
第二步:現在將new_S接入到S2的E0/3從而進一步進入整個交換環路中,并觀察原始環路的生成樹引發重計算的不穩定因素,當完成非法交換機的接入后,首先在new_S上查看自身的一些情況,如圖所示,可看出new_S把自己選成環路上新的根橋,因為它有更優勢的BID,并且它有E0/3端口為指定端口并處于轉發狀態中。
?此時,不僅是new_S自己認同自己為環路中的新根橋,由于原始環路沒有根保護功能,所以此時的S1、S2、S3都會認同非法接入的交換機new_S為新的根橋,比如在S3上執行showspanning-tree如圖所示,可清晰的看到此時的S3出認可非法網橋new_S(aabb.cc00.0400)為新的根橋,并且以前的根端口(E0/1)現在變成了替代端口并處于阻塞狀態,而以前的阻塞端口(E0/2)變成了當前的根端口,并處于轉發狀態,這就已經改變了原始生成樹的拓撲構成,破壞了穩定性。
注意:現在將非法交換機New_S暫時從網絡中取下,讓環路恢復成只有S1、S2、S3的原始狀態,確保S1是根橋,S3的E0/2再次被阻塞。為下一步檢測Root Guard(根保護)的效果作好準備。
?
第三步:現在到交換機S2的E0/3接口(連接非法交換機new_S的接口)啟動根保護功能,具體配置如下所示,然后可以通過在S2上執行showruning-config interface e0/3來查看當前E0/3接口上的根保護功能是否被開啟,如圖所示,明確根保護已經被成功開啟。
?
啟動根保護功能:
S2(config)#interfacee0/3
S2(config-if)#spanning-treeguard root?? * 啟動生成樹的根保護
%SPANTREE-2-ROOTGUARD_CONFIG_CHANGE:Root guard enabled on port Ethernet0/3.?*系統提示該接口根保護被啟動
然后在完成上述的配置后,現在再次將非法交換機new_S連接到S2上的E0/3端口,因為new_S具備更優勢的BID,如果S2的E0/3接收到這個更有優勢的BPDU報文,將觸發根保護功能,此時會發現,系統立即報告,根保護功能阻塞了S2的E0/3接口,具體顯示如下:
?
關于根保護阻塞S2的E0/3接口的提示:
%SPANTREE-2-ROOTGUARD_BLOCK: Rootguard blocking port Ethernet0/3 on VLAN0001.
?
??? 然后用戶可以在S2上通過showspanning-tree inconsistentports,來查看生成樹的不一致狀態,如圖所示,明顯看出S2的E0/3接口被轉為不一致的根狀態,此時該端口將處于阻塞狀態,這個時候用戶可以回到原始環路中的交換機S3上,執行showspanning-tree再次查看生成樹的狀態,如圖所示,很明顯S1的根地位被強化,S3仍然認同S1為根,相應的端口狀態也保持原始環路的計算結果。
總結
以上是生活随笔為你收集整理的理解并演示:Root Guard(根保护)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU1300DP
- 下一篇: 计数排序,基数排序,桶排序