EtherChannel Cisco 端口聚合詳解

冗餘鏈接及其實現

  不管什麼設備都沒法保障運行的絕對穩定性,即便再優秀的產品也沒法保證24×7不間斷的工做。除去設備或模塊損壞、傳輸線路中斷等硬件故障緣由之外,還可能因爲網絡流量過載、任務負荷過大而致使核心交換機癱瘓。所以,若欲保障網絡的穩定性,保證重要服務不被中斷,就必須採起必要的應對措施。一般狀況下,這種措施就是冗餘鏈接,即在覈心交換機與骨幹交換機之間,以及交換機與服務器之間建立多個鏈接。

  1. EtherChannel

  EtherChannel也叫聚合端口(Aggregate port AP)和Port Trunking(多幹路冗餘鏈接)技術,將交換機上的多個端口在物理上鍊接起來,在邏輯上捆綁在一塊兒,造成一個擁有較大帶寬的端口,組成一個幹路,既能夠增長交換機之間,以及交換機與服務器之間的鏈接帶寬,實現均衡負載,又可提供冗餘鏈接。當全部端口都正常工做時,綁定的帶寬爲全部端口帶寬之和。當某個端口宕掉後,其餘端口仍能維持正常鏈接。Cisco的EtherChannel有兩個級別,即Fast EtherChannel和Giga Etherchannel,最大帶寬分別爲400Mbps和4Gbps。

  2. Spanning Tree

  Spanning Tree實現冗餘鏈接的工做方式是Stand By。在交換機之間建立兩條鏈路,因爲交換機之間存在兩條鏈路時會致使拓撲環,所以,藉助於Spanning Tree技術使得除了一條鏈路工做外,其他鏈路其實是處於待機(Stand By)狀態,這顯然影響傳輸的效率php

 

      聚合端口它可將多物理鏈接看成一個單一的邏輯鏈接來處理,它容許兩個交換器之間經過多個端口並行鏈接同時傳輸數據以提供更高的帶寬、更大的吞吐量和可恢復性的技術,而且實現成員端口上的流量平衡.(流量平衡具體有3種方法:根據源MAC地址,目的MAC地址或源IP地址/目的IP地址)
通常來講,兩個普通交換器鏈接的最大帶寬取決於媒介的鏈接速度(100BAST-TX雙絞線爲200M),而使用Trunk技術能夠將4個200M的端口捆綁後成爲一個高達800M的鏈接。這一技術的優勢是以較低的成本經過捆綁多端口提升帶寬,而其增長的開銷只是鏈接用的普通五類網線和多佔用的端口,它能夠有效地提升子網的上行速度,從而消除網絡訪問中的瓶頸。另外Trunk還具備自動帶寬平衡,即容錯功能:即便Trunk只有一個鏈接存在時,仍然會工做,這無形中增長了系統的可靠性。安全

etherchannel特性在switch到switch、switch到router、主機(服務器)到switch或router之間提供冗餘的、高速的鏈接,簡單說就是將兩個設備間多條FE或GE物理鏈路捆在一塊兒組成一條設備間邏輯鏈路,從而達到增長帶寬,提供冗餘的目的。服務器

端口聚合的注意事項:網絡

1.AP成員端口的端口速率必須一致負載均衡

2.AP成員端口必須屬於同一個VLAN性能

3.AP成員端口使用的傳輸介質應相同動畫

4.缺乏狀況下建立的AP是二層APui

5.二層端口只能加入二層AP,三層端口只能加入三層APspa

6.AP不能設置端口安全功能.net

7.當配置layer 2端口做etherchannel時只要在成員端口配置模式下用channel-group n命令指定該端口要加入的channel-group組,這時switch會自動建立port-channel接口,而當配置layer 3端口做etherchannel時,還需如今全局配置模式下用 interface port-channel n 命令手工建立port-channel接口。

8.一個端口加入AP,端口的屬性將被AP的屬性所取代

9.一個端口從AP中刪除,則端口的屬性將恢復爲其加入AP前的屬性

10.當一個端口加入AP後,不能在該端口上進行任何配置,直到該端口退出AP

 

1. 建立EtherChannel

建立EtherChannel的具體操做步驟以下。

步驟1:進入全局配置模式.

      Switch#configure terminal

步驟2:選擇欲配置爲EtherChannel的物理端口.PAgP EtherChannel(端口聚合協議)CISCO私有,每組最多支持8條

      鏈路匯聚.LACP EtherChannel(鏈路聚合控制協議)IEEE802.3ad定義,每組最多支持16條鏈路匯聚(但只有

      8條工做,其他備份)

      Switch(config)#interface interface-id

步驟3:將全部端口指定爲同一VLAN內的靜態訪問端口或者配置爲Trunk.若是配置爲靜態端口,只能指定至

      一個VLAN,VLAN取值範圍爲1-4094.

      Switch(config-if)#switchport mode {access | trunk }

      Switch(config-if)#switchport access vlan vlan-id

步驟4:將端口指定至EtherChannel組,並指定PAgP或LACP模式.EtherChannel端口組的取值範圍爲1-48.

      Switch(config-if)#channel-gropu port_channel_number mode { {auto[non-silent] |

                        desirable[non-silent] | on} | {active | passive}}

對於使用PAGP的四種模式

Auto:當偵測到PAgP設備時(將只啓用PAgP)將端口置於被動協商狀態,能夠對接收到的PAgP做出響應,可是,

     不能主動發送PAgP包進行協商。

Desirable:無條件啓用PAgP。將端口置於主動協商狀態,經過發送PAgP包,主動與其餘端口進行協商。

On:不協商(不用PAgP協議,強制開啓).將端口強行指定(加入)至EtherChannel。只有兩個on模式端口組鏈接

    時EtherChannel纔可用。

non-silent:參數主要用於檢測鏈路是否單向失敗.默認條例下被設置爲auto或desirable參數並參加通道協商

            的接口不用週期性接收對方PAgP幀,也能夠參加PAgP的計算.(若是鏈路單向通訊的狀況

            下,本端發出PAgP幀,鏈路(本端)卻沒法接收對方的數據,但此端口(本端口)也參與了

            Etherchannel通訊).加入non-silent參數後(非安靜模式),本端會要求週期性的接收到對端

          的PAgP幀後再使端口參加EtherChannel的通訊,若是沒有接收到對端的PAgP幀則會通知STP

           此端口爲down的狀,致使端口沒法參加Etherchannel和STP的計算.

     若是交換機鏈接到有PAgP能力的夥伴,能夠將端口配置爲non silent(非安靜模式)運行。若是沒有爲auto或desirable模式指定non-silent關鍵字,默認爲silent。安靜模式設置被用於鏈接到文件服務器或包分析儀(無PAgP能力的夥伴,即單向通訊.由於文件服務器或包分析儀不會產生PAgP幀)。該設置容許PAgP將端口添加至Channel組,並使用端口進行傳輸.

 對於使用LACP的兩種模式

active:當偵測到LACP設備時(將只啓用LAC),激活端口的主動協商狀態,經過發送LACP包,與其餘端口進行主動協商。

passive:當偵測到LACP設備時(將只啓用LACP),將端口置於被動協商狀態,能夠對接收到的LACP做出響應,可是,不能主動發送LACP包進行協商。

 

採用PAgP協議時(因此無ON模式),如下幾種模式能夠構建EtherChannel:

一個端口爲desirable模式,另外一個端口爲desirable或auto模式。

一個端口爲auto模式,另外一個端口爲desirable模式。

採用LACP協議時,如下幾種模式能夠構建EtherChannel:

一個端口爲active模式,另外一個端口爲active或passive模式。

一個端口爲active模式,另外一個端口爲passive模式。

2. 配置EtherChannel負載均衡

EtherChannel還具備負載分擔和線路備份的做用。

http://www.visualland.net.cn/view.php?cid=1729&protocol=EtherChannel&title=1. EtherChannel basics 負載均衡FLASH動畫.

所謂負載分擔:是指當交換機之間或交換機與服務器之間在進行通訊時,EtherChannel的全部鏈路將同時參與數據的傳輸,從而使全部的傳輸任務都能在極短的時間內完成,線路佔用的時間更短,網絡傳輸的效率更高。

etherchannel在做數據轉發時,是基於數據包的源或目的MAC地址隨機選擇etherchannel中的一條物理link進行數據轉發的。咱們能夠經過全局配置命令port-channel load-balance選擇是根據源MAC地址仍是根據目的MAC地址進行數據轉發來實現負載平衡。
  例如:當有兩臺switch,它們之間有幾條link互聯做etherchannel,switchA一端鏈接一臺server,switchB一端鏈接多臺clientPC,這時swithA一端的數據流是同一源MAC地址的數據包經過etherchannel發向不一樣目的MAC地址。這時,爲了充分利用etherchannel中的全部的物理link,在swithA一端就應該配置爲基於數據包的目的MAC地址方式.switchB一端的數據流是不一樣源MAC地址的數據包經過etherchannel轉發向同目的MAC地址。在swithB一端就應該配置爲基於數據包的源MAC地址方式

所謂線路備份:是指當部分EtherChannel鏈路出現故障時,並不會致使鏈接的中斷,其餘鏈路將可以不受影響地正常工做,從而加強了網絡的穩定性和安全性。咱們能夠經過接口配置命令 pagp port-priority 改變優先級設定哪條物理link主用,哪條備用,一旦主用物理link上產生阻塞,備用link當即啓用

具體操做步驟以下。

步驟1:進入全局配置模式.

      Switch#configure terminal

步驟2:配置Etherchannel負載均衡

      Switch(config)#port-channel load-balance {dst-mac | src-mac | src-dst-ip | src-dst-mac

                     | dst-ip | src-ip }

      dst-mac:根據輸入報文的目的MAC地址進行流量分配。AP各鏈路中,目的MAC地址相同的報文被送到相

               同的端口,目的MAC不一樣的報文分配到不一樣的端口。  

     src-mac:根據輸入報文的源MAC地址進行流量分配。在AP各鏈路中,來自不一樣MAC地址的報文分配到不

             同的端口,來自相同的MAC地址的報文使用相同的端口。

     src-dst-ip:根據源IP與目的IP進行流量分配。不一樣的源IP——目的IP對的流量經過不一樣的端口轉發,同

                  一源IP——目的IP對經過相同的鏈路轉發。在三層條件下,建議採用此流量平衡的方式。

     src-dst-mac:根據源MAC與目的MAC進行流量分配。不一樣的源MAC——目的MAC對的流量經過不一樣的端口轉

                   發,同一源MAC——目的MAC對經過相同的鏈路轉發。

     dst-ip:根據輸入報文的目的IP地址進行流量分配。在AP各鏈路中,目的IP地址相同的報文被送到相同的端

             口,目的IP不一樣的報文分配到不一樣的端口。

     src-ip:根據輸入報文的源IP地址進行流量分配。在AP各鏈路中,來自不一樣IP地址的報文分配到不一樣的端

             口,來自相同的IP地址的報文使用相同的端口。

步驟3:校驗配置

      Switch#show etherchannel load-balance

3. 從EtherChannel移除端口

從EtherChannel中移除端口的具體操做步驟以下。

步驟1:進入全局配置模式.

      Switch#configure terminal

步驟2:指定欲配置的物理端口.

      Switch(config)#interface interface-id

步驟3:從EtherChannel中移除端口

      Switch(config-if)no channel-group

4. 移除整個EtherChannel端口

移除EtherChannel的具體操做步驟以下。

步驟1:進入全局配置模式.

      Switch#configure terminal

步驟2:移除Channel端口

      Switch(config)#no interface port-channel port_channel_number

其餘一些命令

建立以太通道組:
(config)#interface port-channel EtherChannel_number
定義以太通道組的聚合協議
(config-if)#channel-protocol { pagp | lacp }
查看通道接口配置信息:
#show running-config interface port-channel port-channel_interface_number
查看接口配置信息:
#show running-config interface **
查看配置後的通道信息:
#show etherchannel ** port-channel
覈實PAGP和LACP
#show interface *** etherchannel
查看EtherChannel配置狀況

#show eherchannel summary 

Po1(SU) //SU表示EtherChannl正常.(S-Layer2,U-in use) Fa0/1(P) Fa0/2(P) //P表示Fa0/1和Fa0/2都加入了EthernetChannel,並正常運行.(P-in port-channel)

 

一般
Switch(config)#hostname SW2
SW2 (config)#int fa0/23-24
SW2(config-if-range)#switchport trunk encapsulation dot1q
SW2(config-if-range)#switchport trunk allowed vlan2
SW2(config-if-range)#channel-group 1 mod on
SW2(config-if-range)#exit

port-channel能夠設成trunk!!!經常使用
要想作trunk則必須封裝成dot1Q! 不然會提示信息

具體配置:
  
  Switch# configure terminal
  
  Switch(config)# interface range fastethernet0/4 -5
  
  Switch(config-if-range)# switchport mode access
  
  Switch(config-if-range)# switchport access vlan 10
  
  Switch(config-if-range)# channel-group 5 mode desirable|auto|on
  
  Switch(config-if-range)# end
  
  
  以上配置將F0/四、F0/5端口加入channel-group 5,做etherchannel的端口能夠爲access端口也可爲trunk端口(中繼端口)

在將兩個swith間的link做etherchannel與兩個swith間的link做trunk有一點類似的地方就是:

  1.配置trunk時兩端的端口有幾種模式:trunk、auto、desirable,

  2.配置etherchannel時兩端的端口有desirable|auto|on(使用PAGP)或active|passive(使用LACP)幾種模式.

    所不一樣的是trunk端口間協商是使用DTP(dynamic trunking protocol);而etherchannel端口間協商是使用PAGP(Port Aggregation Protocol,cisco專有)或LACP (Link Aggregation Control Protocol,802.3AD )

   
  
注意:在技術領域中把TRUNK翻譯爲中文是"主幹,幹線,中繼線,長途線",不過通常不翻譯,直接用原文.並且這個詞在不一樣場合也有不一樣的解釋:  

一、在網絡的分層結構和寬帶的合理分配方面,TRUNK被解釋爲「端口匯聚」,是帶寬擴展和鏈路備份的一個重要途徑。TRUNK把多個物理端口捆綁在一塊兒看成一個邏輯端口使用,能夠把多組端口的寬帶疊加起來使用。TRUNK技術能夠實現TRUNK內部多條鏈路互爲備份的功能,即當一條鏈路出現故障時,不影響其餘鏈路的工做,同時多鏈路之間還能實現流量均衡,就像咱們熟悉的打印機池和MODEM池同樣。 

  二、在電信網絡的語音級的線路中,Trunk指「主幹網絡、電話幹線」,即兩個交換局或交換機之間的鏈接電路或信道,它可以在兩端之間進行轉接,並提供必要的信令和終端設備。

  三、 可是在最廣泛的路由與交換領域,VLAN的端口聚合也有的叫TRUNK不過大多數都叫TRUNKING ,如CISCO公司。所謂的TRUNKING是用來在不一樣的交換機之間進行鏈接,以保證在跨越多個交換機上創建的同一個VLAN的成員可以相互通信。其中交換機之間互聯用的端口就稱爲TRUNK端口。與通常的交換機的級聯不一樣,TRUNKING是基於OSI第二層.若是你在2個交換機上分別劃分了多個VLAN(VLAN也是基於Layer2的),那麼分別在兩個交換機上的VLAN10和VLAN20的各自的成員若是要互通,就須要在A交換機上設爲VLAN10的端口中取一個和交換機B上設爲VLAN10的某個端口做級聯鏈接。VLAN20也是這樣。那麼若是交換機上劃了10個VLAN就須要分別連10條線做級聯,端口效率就過低了。當交換機支持TRUNKING的時候,事情就簡單了,只須要2個交換機之間有一條級聯線,並將對應的端口設置爲Trunk,這條線路就能夠承載交換機上全部VLAN的信息。這樣的話,就算交換機上設了上百個個VLAN也只用1個端口就解決了。

若是是不一樣臺的交換機上相同id的vlan要相互通訊,那麼能夠經過共享的trunk端口就能夠實現,若是是同一臺不一樣id的vlan/不一樣臺不一樣id的vlan它們之間要相互通訊,須要經過第三方的路由來實現;vlan的劃分有兩個須要注意的地方:一是劃分了幾個不一樣的vlan組,都有不一樣的vlan id號;分配到vlan 組裏面的交換機端口也有port id.好比端口1,2,3,4劃分到vlan10,5,6,7,8劃分到vlan20,我能夠把1,3,4的端口的port id設置爲10,而把2端口的 port id設置爲20;把5,6,7端口的port id設置爲20,而把8端口的port id設置爲10.這樣的話,vlan10中的1,3,4端口可以和vlan20中8端口相互通訊;而vlan10中的2端口可以和vlan20中的5,6,7端口相互通訊;雖然vlan id不一樣,可是port id相同,就能通訊一樣vlan id相同,port id不一樣的端口之間卻不能相互訪問,好比vlan10中的2端口就不能和1,3,4端口通訊。


  配置EtherChannel
以太通道捆綁幾個以太端口爲一個獨立的邏輯鏈路。如4006交換機,你能夠捆綁在4006任何模塊上最多8個兼容的具備相同速率的端口。每一個以太通道具備一個port-channel端口號。要捆綁一個以太通道時,會產生一個邏輯port-channel端口,邏輯端口下的配置可影響與之捆綁的物理端口,但物理端口下的配置不能影響邏輯端口的配置。
1) 三層以太通道(邏輯port-channe)的配置
Switch# configure terminal
Switch(config)# interface port-channel 1 // 建立一個邏輯端口
Switch(config-if)# ip address 172.32.52.10 255.255.255.0
Switch(config-if)# end

2) 三層物理端口配置
Switch# configure terminal
Switch(config)# interface range fastethernet 5/4 – 5 (注意: 空格是必需的)
Switch(config-if)# no switchport // 改變該端口爲三層接口
Switch(config-if)# no ip address // 確認接口沒有配置IP地址
Switch(config-if)#  channel-group 1 mode desirable
Switch(config-if)# end

附: Switch(config-if)# channel-group port_channel_number mode {auto | desirable | on} // 將該物理端口加入一個以太通道中,並肯定PagP模式。

3) 二層以太通道配置
Switch# configure terminal
Switch(config)# interface range fastethernet 5/6 - 7 (注意: 空格是必需的)
Switch(config-if-range)# channel-group 2 mode desirable
Switch(config-if-range)# end
Switch# show running-config interface port-channel 2
Building configuration...
Current configuration:
!
interface Port-channel2
switchport access vlan 10
switchport mode access
end 
Switch#

? 如何做端口聚合
若是要配置二臺6509之間的Trunk聯接,首先將二6509用千兆光纖相聯好,而後分別配置二相聯端口的trunk,能夠是隻用一雙光纖,或用二對光纖作port channel,配置以下:
一雙光纖相聯時,分別在二臺65上進行如下的配置:

interface GigabitEthernet1/1
no ip address
switchport
switchport trunk encapsulation dot1q
switchport trunk native vlan 1

二對光纖相聯時,必需要作port channel,分別在二臺65上進行如下的配置:
interface port-channe1
no ip address
switchport
switchport trunk encapsulation dot1q
switchport trunk native vlan 1
!
interface GigabitEthernet1/1
no ip address
duplex full
speed 1000
switchport mode trunk
switchport trunk encapsulation dot1q
switchport trunk native vlan 1
channel-group 1 mode on
!
interface GigabitEthernet1/2
no ip address
duplex full
speed 1000
switchport mode trunk
switchport trunk encapsulation dot1q
switchport trunk native vlan 1
channel-group 1 mode on
四、指導原則
有不少關於配置以太通道的指導原則,這些原則涉及trunk、動態VLANSTP和其餘方面,若是配置不當,某些以太通道接口會自動停用,以免出現網絡環路或者其餘的問題。爲了減小花在以太通道故障排除上的時間,須要採納如下建議:

*將以太通道內的全部端口指定到同一個VLAN,或者將其都配置爲trunk端口;
*若是將以太通道配置爲trunk,在以太通道內全部的端口上配置相同的trunk模式。在以太通道內的各端口上配置不一樣的trunk模式會引發意想不到的結果; 
*在trunking以太通道內,通道內全部端口上支持的VLAN的範圍相同。若是各個端口支持的VLAN範圍不相同,即便設爲Auto或者Desirable模式,端口也不會造成以太通道; 
*不要將以太通道內的端口置爲動態VLAN端口,這會嚴重影響交換機的性能; 
*GARP,GVRP或者QOS配置不一樣的端口不會造成以太通道; 
*若是在端口上配置了對廣播的限制,將廣播限制配做以通道內全部端口百分比爲單位的限制。若是使用「包每秒」形式的廣播限制,則在超過廣播限制的1秒鐘內,單播數據包可能丟失; 
*啓動了安全策略的端口不能造成以太通道,對於以太通道內的端口,不能啓動端口上的安全功能; 
*若是以太通道內的端口被IGMP組播過濾使用,則必須將PAG和LACP中的以太通道模式設置爲OFF。不能使用其餘的模式; 
*配置爲交換端口分析器(SPAN,switchde port analyzer)目的的端口不能造成以太通道; 
*若是其中任何一個端口的協議過濾設置不一樣,就沒法造成以太通道; 
*每一個以太通道最多能能包含8個配置兼容的以太接口; 
*同一個以太通道內的全部接口的速率和雙工模式要求相同; 
*啓動以太通道內的全部接口。若是你關閉了以太通道內的一個接口,它會被做爲鏈路狀態故障處理,其上通訊會轉移到以太通道內剩餘的接口上; 
*STP端口開銷值不一樣的接口只要配置兼容就能造成以太通道。在端口上配置不一樣的STP端口開銷自己不會致使接口因爲不兼容而沒法造成以太通道。可是,在一個以太通道內的全部接口上,最好將STP端口開銷配置爲同樣;

除了以上列舉的限制,還有一個須要關注的問題就是你容許那些端口用於以太通道的配置。

五、思路:
1、先劃分 vlan,並將相應的端口加入到 vlan
2、將要合併的相鄰的端口置爲 trun模式
3、設定相連的兩臺交換機的端口的工做方式(即物理特性)相同。
4、開啓以太網通道
1.交換機相連的端口必須爲相鄰的端口,以及物理特性必須相同。 
交換機 1
Router>en
Router#vlan d
Router(vlan)#vl 2
VLAN 2 added:
Name: VLAN0002
Router(config)#interface range f0/1 - 2
Router(config-if-range)#switchport mode trunk [l1]
Router(config)#interface range f0/1 – 2
Router(config-if-range)#switchport access vlan 2
[l2] Router(config-if-range)#duplex full [l3]
Duplex will not be set until speed is set to non-auto value
Duplex will not be set until speed is set to non-auto value
Router(config-if-range)#speed 100 [l4]
*Mar 1 00:07:06.315: %DTP-5-TRUNKPORTON: Port Fa0/1-2 has become dot
*Mar 1 00:07:06.579: %LINEPROTO-5-UPDOWN: Line protocol on Interface
nged state to up
Router(config)#interface range f0/1 - 2
Router(config-if-range)#channel-group 1 mode on[l5] 
Creating a port-channel interface Port-channel1
Router#show etherchannel 1 summary
Flags: D - down P - in port-channel
I - stand-alone s - suspended
R - Layer3 S - Layer2
U - in use
Group Port-channel Ports
-----+------------+-------------------------
1 Po1(SU) Fa0/1(P) Fa0/2(P)
相關文章
相關標籤/搜索