生成樹協議介紹

學好生成樹協議,你就可以儘可能避免因某臺交換機的問題造成整個局域網崩潰。

生成樹協議是由Sun微系統公司著名工程師拉迪亞•珀爾曼博士(Radia Perlman)發明的。網橋使用珀爾曼博士發明的這種方法能夠達到2層路由的理想境界:冗餘和無環路運行。你可以把生成樹協議設想爲一個各網橋設備記在心裏的用於進行優化和容錯發送數據的過程的樹型結構。
我 們要介紹的這個問題在圖1中進行了描述。


圖 1.
如果這些交換機不採用生成樹協議並且以這種方式連接,每一臺交換機將無限地複製它們收到的第一個數據包,直到內存耗盡和系統崩潰爲止。在2層,沒有任何東西能夠阻止這種環路的事情發生。在圖1中,管理員必須要手工關閉這個紅色連接線路才能讓這個以太網網絡運行。生成樹協議在當前可用連接有效時關閉一個或者更多其它冗餘連接,而在當前連接出現故障後,再啓用這些被關閉的冗餘連接。生成樹協議決定使用哪一個連接完全取決於網絡的拓撲結構。
生成樹協議拓撲結構的思路是,網橋能夠自動發現一個沒有環路的拓撲結構的子網,也就是一個生成樹。生成樹協議還能夠確定有足夠的連接通向這個網絡的每一個部分。它將建立整個局域網的生成樹。當首次連接網橋或者發生拓撲結構變化時,網橋都將進行生成樹拓撲的重新計算。
當一個網橋收到某種類型的“設置信息”(一種特殊類型的橋接協議數據單元,BPDU)時,網橋就開始從頭實施生成樹算法。這種算法從根網橋的選擇開始的。根網橋(root bridge)是整個拓撲結構的核心,所有的數據實際上都要通過根網橋。順便提示一下,有手工設置根網橋時要特別注意。對於思科設備來言其根網橋的選擇過程暴露出一些問題,就是過分簡單化。思科硬件通常使用最低的MAC地址,具備這些地址的設備通常是網絡中最古老的設備,因而其交換速度常是最慢的,而從根網橋在網絡中的位置看,它負荷卻最重。生成樹構建的下一步是讓每一個網橋決定通向根橋的最短路徑,這樣,各網橋就可以知道如何到達這個“中心”。這一步會在每個局域網進行,它選擇指定的網橋,或者與根橋最接近的網橋。指定的網橋將把數據從局域網發送到根橋。最後一步是每個網橋要選擇一個根端口。所謂根端口也即“用來向根橋發送數據的端口”。注意,一個網橋上的每一個端口,甚至連接到終端系統(計算機)的端口,都將參加這個這個根端口選擇,除非你將一個端口設置爲“忽略”。
上面就是生成樹算法的過程。但是,這還不能解釋生成樹在現實世界中實際上在做什麼。我們說,這種計算是破壞性的。毫無疑問,它確實是如此。要進行這種計算,網橋必須停止所有的通信。網橋要經過一系列的測試和學習階段,只有在拓撲結構建立起來之後纔開始發送數據。網橋只有在拓撲機構改變的時候或者網橋得到一個BPDP包時纔會進行,想起來這種情況應該很少,可事實上,這種計算髮生的頻度要比你想象的多。
生成樹協議思路是,你允許有一個連接錯誤,因爲你在一對網橋之間存在兩條物理連接。生成樹協議在一個端口需要使用之前將封鎖那個端口。因此,我們應該可以拔掉冗餘的連接,並且在不中斷通信的情況下把它連接到其它的網橋。很可惜,它不是這樣工作的。
當一個物理連接的網橋新網橋連線時,它將發送重新設置BPDU,其它連接的設備將遵照施行。當生成樹協議開始計算的時候,所有的通信都要停止大約50秒。這些時間可以說是物有所值,因爲你僅僅被限制在一個很短的停機時間內。如果交換機被擠暴,或者你缺少多餘的路徑,將會出現永久的停機。相比之下,停機50秒鐘只是非常輕的損失。
另外,很多現代廠商已經實現了快速生成樹協議,這是老的生成樹協議的一個改進版本,更加註意了在重新計算拓撲時的開銷,並且與老版本的協議兼容。在大多數情況下,它可以把以前多達50秒的計算時間縮短到不足3秒,從這點看,任何人都應該使用新的快速生成樹協議。
希望上面的介紹已經足夠清楚。我們知道,啓用生成樹功能可以讓我們通過多個連接把兩個網橋連接在一起,並且不產生環路。如果連接之中的一個網橋壞了,我們可以繞過這個網橋,使用另一個網橋。這個工作原理是雖然現用的交換機封鎖其備用的連接,但是,它默默地監聽BPDU更新並且仍然知道哪一個連接通向根橋。這就是說,如果你進行了適當的設置。還記得虛擬局域網中的trunk?如果其中一個物理連接碰巧是一條虛擬局域網trunkk線,會出現什麼情況呢?如果我們只有一個運行的生成樹實例,這個生成樹可能會發現trunk中的一個網絡不應該使用這個連接(turnk端口匯聚將多條物理連接匯聚爲一個帶寬更大的邏輯連接)。除了關閉整個連接之外,它沒有其它的選擇。
現在進入每一個虛擬局域網一個生成樹協議(PVST/per-VLAN spanning trees)的話題。當啓用這項功能的時候,一個網橋將爲該網橋上的每一個虛擬局域網運行一個生成樹實例。如果一個trunk連接包含虛擬局域網1、2和3,它可以決定虛擬局域網1和2不能使用那個路徑,但是仍然允許虛擬局域網3使用這條路徑。在複雜的網絡中,還有許多虛擬局域網3只有一個出口的情況,這可能是因爲管理員要限制虛擬局域網3訪問的範圍。如果我們不是用PVST,而且trunk端口被生成樹封鎖了,這個網橋上的虛擬局域網3將失去與其局域網的其它方面的連接。每一個人都應該使用PVST。
最後,你應該不會忘記,發送BPDU數據的任何端口都能夠引起網絡中斷。這也包括運行ettercap軟件和其它非法程序的計算機。一定要在所有的端口啓用類似於思科的“BPDU-Guard”這樣的技術來封鎖BPDU數據包。這些BPDU數據包不僅能夠引起生成樹協議重新進行計算,而且一臺計算機也可以參加投票並且贏得這個選擇。你肯定不希望發現你的生成樹根是某個人的計算機。當所有的通信都涌向你的時候,這種情況很容易完成中間人***。
還有一些沒有提到的BPDU信息以及需要學習的有關生成樹協議的其它細節。這些細節有一點複雜。但是,由於你已經瞭解了生成樹協議的概況,這些細節應該很容易理解。如果你要花更多的時間學習這些細節,從長遠來看,你會得到回報。
 
 
小結
•生成樹協議提供一種控制環路的方法。採用這種方法,在連接發生問題的時候,你的以太網能夠繞過出現故障的連接。
•生成樹中的根橋是一個邏輯的中心,並且監視整個網絡的通信。最好不要依賴設備的自動選擇去挑選哪一個網橋會成爲根橋。
•生成樹協議重新計算是痛苦的:恰當地設置主機連接端口(這樣就不會引起重新計算),推薦使用快速生成樹協議。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章