在局域網中,咱們爲了保證網絡的健壯性和穩定性,通常會在關鍵的部位實施冗餘,最(便)常(宜)見(點)的,就是實施鏈路冗餘或者設備冗餘:
api
看起來是很爽了,實際上問題是大大的,好比圖1,若是交換機A、B之間的4個端口都處於轉發狀態,而此時下聯的任意某臺PC發出一個廣播包,會怎麼樣?很悲催!因爲交換機兩條線路造成了環路,而且交換機端口又不能隔離廣播包,全部的端口都會無條件的轉發這個廣播包,從而形成廣播風暴,最終會致使網絡資源耗盡,交換機死機。。。(你也可能會被XX罵一頓)網絡
爲了解決交換網絡實施冗餘致使的環路,大拿們開發了STP(Spanning Tree Protocol)生成樹協議,它的原理提及來也很簡單,把環路中的某一個端口關閉掉(阻塞),從而解決環路;當未阻塞的鏈路(主線)出現故障的時候,再把阻塞的那個端口打開,從而啓動備線,這樣就實現了冗餘,可是,同一時刻只能用一條線傳輸數據(還剩下一半的悲催)。負載均衡
固然,即便開啓了STP(通常交換機都是默認開啓),你可能仍是會被XX罵!由於:第一,你浪費了一條線的資源,雖然實現了冗餘,可是未能負載均衡;第二,圖-2中,核心之間的鏈路被阻塞了,而下行的兩條鏈路倒是轉發的,這個算是哪門子的備份?(咱們應該實現的是下行的兩條鏈路之間的備份)ide
對於圖一的問題,若是咱們是chunǚ座的,有嚴重的強迫症(前提還要有錢),咱們設施了大量冗餘,然而永遠只有一條鏈路處於可用狀態(圖-3):spa
對於這樣的冗餘網絡,咱們建議實施以太信道—EtherChannel,它能夠把最多8條相同的鏈路捆綁(虛擬)成一條,而對於STP來講,只認虛擬後的鏈路,既然只有一條鏈路,就不存在阻塞端口了。至於這些鏈路在EtherChannel中如何分配流量,這和STP已經沒有關係了,因此實施EtherChannel既能夠防止環路,又能夠實現帶寬的提高,還能夠實現自動負載均衡,好處太多。3d
EtherChannel有思科私有的PAGP協議,也有標準化的LACP協議,二者差異很小,可是互相不兼容。如下是圖-3實施思科PAGP的過程和效果:code
A(config)#inter range fa0/1-4 A(config-if-range)#shut #關閉端口後再作以太信道的配置 A(config-if-range)#swi mo trunk #配置中繼 A(config-if-range)#channel-protocol pagp #思科默認就是PAGP協議,能夠不寫 A(config-if-range)#channel-group 1 mode desirable #配置主動模式 A(config-if-range)#no shut B(config)#inter range fa0/1-4 B(config-if-range)#shut B(config-if-range)#swi mo tr B(config-if-range)#channel-protocol pagp B(config-if-range)#channel-group 1 mode auto #配置被動模式 B(config-if-range)#no shut
從拓撲的燈狀態已經看到,全部的鏈路都已經處於轉發狀態(綠燈),咱們也能夠經過查看STP狀態來驗證:blog
話再說回來,對於圖二,不但默認選擇的阻塞鏈路有問題,並且因爲要實現備份的兩條鏈路分別是鏈接不一樣的核心交換機,沒法直接實施EtherChannel,又該怎麼辦呢?資源
在思科設備上,不管是開啓哪一種(新舊版本)生成樹,均可以實現,如圖-2,若是有兩個以上的VLAN,可讓不一樣VLAN的根部署在不一樣的核心交換機上,從而讓阻塞的端口分佈在不一樣的下行鏈路上。開發
如下是以思科交換機爲例,實施基於VLAN的RSTP負載均衡的配置以及結果:
CORE-1(config)#vlan 2 CORE-1(config-vlan)#vlan 3 CORE-1(config-vlan)#inter g0/1-2 CORE-1(config-if-range)#swi trunk encapsulation dot1q #三層交換機先配置封裝協議 CORE-1(config-if-range)#swi mo tr #配置中繼 CORE-2(config)#vlan 2 CORE-2(config-vlan)#vlan 3 CORE-2(config-vlan)#inter g0/1-2 CORE-2(config-if-range)#swi trunk encapsulation dot1q CORE-2(config-if-range)#swi mo tr A-1(config)#vlan 2 A-1(config-vlan)#vlan 3 A-1(config-vlan)#inter range g0/1-2 A-1(config-if-range)#swi mo tr A-1(config-if-range)#inter fa0/1 A-1(config-if)#swi mo acc A-1(config-if)#swi acc vlan 2 A-1(config-if)#inter fa0/2 A-1(config-if)#swi mo acc A-1(config-if)#swi acc vlan 3 CORE-1(config)#spanning-tree mode rapid-pvst #配置快速STP,思科叫RPVST CORE-1(config)#spanning-tree vlan 2 root primary #配置VLAN2的主根 CORE-1(config)#spanning-tree vlan 3 root secondary #配置VLAN3的備根 CORE-2(config)#sp m r CORE-2(config)#span vlan 3 roo pri CORE-2(config)#span vlan 2 roo sec A-1(config)#sp m r
驗證拓撲中燈的狀態:
注意,若是是華爲設備,因爲STP和RSTP不支持基於VLAN的STP負載均衡,因此要啓用MSTP才能實現。
對於圖-2的拓撲,你們還要了解一個技術,思科Nexus交換機上支持vPC,全稱是Virtual Port-Channel,是一種支持跨設備進行鏈路捆綁的協議,也就是容許一個設備使用2個上游的設備端口來實現Port Channel,這樣是否是更厲害了?固然不是全部設備都支持這種高級功能的,你懂的。
文章篇幅有限,詳細的STP、EtherChannel的原理和配置,能夠參考《網絡工程師小白入門》專欄:思科、華爲配置對比入門,結合wireshark抓包講解,一學三用!
雙11活動特惠,學院限時開團,原價51元,開團價39元: