簡介
本檔案將說明Cisco Catalyst交換器上用於負載平衡和備援的EtherChannel演演算法。
必要條件
需求
本文件沒有特定需求。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
慣例
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
背景資訊
Fast EtherChannel 可將多個實體 Fast Ethernet 連結結合到單一邏輯通道中。這樣可允許通道中連結間的流量進行負載共用,以及在通道中有一或多個連結失敗時進行備援。Fast EtherChannel 可用來透過非屏蔽雙絞線 (UTP) 或單一模式和多模式光纖,將 LAN 交換器、路由器、伺服器和用戶端互連。本文件會以單一用語 EtherChannel 指稱 Fast EtherChannel、Gigabit EtherChannel、連接埠通道、通道以及連接埠群組。文件中的資訊適用於以上所有 EtherChannel。
本檔案介紹使用EtherChannel在Cisco Catalyst交換器上進行負載平衡和備援的概念。本檔案也說明了EtherChannel上的連線埠彙總通訊協定(PAgP)和中繼支援。本檔案沒有說明如何在Catalyst交換器上設定EtherChannel。有關如何在Catalyst交換器上設定EtherChannel的詳細資訊,請參閱相關資訊一節中的檔案。
Catalyst 6500、Catalyst 2950、EtherChannel
確定要通過其傳送流量的鏈路
本節介紹每個交換器平台在EtherChannel群組上封包的負載平衡。
Catalyst 6500/6000 系列
EtherChannel將幀格式中地址的二進位制模式部分減少為選擇通道中一個鏈路的數值,以便在通道中的鏈路上分發幀。EtherChannel幀分發使用Cisco專有的雜湊演算法。演算法是確定性的;如果您使用相同的地址和會話資訊,則始終雜湊到通道中的相同埠。此方法可防止封包傳輸順序混亂。
思科專有雜湊演算法會計算範圍在0到7之間的值。以這個值為基礎,會選擇EtherChannel中的特定連線埠。埠設定包括一個掩碼,指示埠接受哪些值進行傳輸。由於單個EtherChannel(八埠)中的埠數量最多,每個埠只接受一個值。如果EtherChannel中有四個埠,則每個埠接受兩個值,以此類推。下表列出每個連線埠接受值的比率,取決於EtherChannel中的連線埠數量:
EtherChannel中的連線埠數量 |
負載平衡 |
8 |
1:1:1:1:1:1:1:1 |
7 |
2:1:1:1:1:1:1 |
6 |
2:2:1:1:1:1 |
5 |
2:2:2:1:1 |
4 |
2:2:2:2 |
3 |
3:3:2 |
2 |
4:4 |
註:此表僅列出特定埠接受的雜湊演算法計算的值數。您無法控制特定流使用的埠。您只能通過幀分配方法影響負載平衡,因為幀分配方法會產生最大的變化。
注意:不能配置或更改雜湊演算法以在EtherChannel中的埠之間對流量進行負載均衡
註:運行Cisco IOS®軟體的Cisco Catalyst 6500/6000系列交換機也實施了相同的Cisco專有雜湊演算法。
因此,如果埠通道中有兩個、四個或八個埠,則即使使用隨機地址,也只能實現完美的負載均衡。
Cisco IOS
執行Cisco IOS系統軟體的Catalyst 6500/6000交換器最多支援64個EtherChannel。在Catalyst 6500/6000系列交換器中的任何模組上,您都可以組成一個包含最多八個相容設定的LAN連線埠的EtherChannel。每個EtherChannel中的所有LAN埠都必須為相同的速度,並且您必須將所有埠配置為第2層或第3層LAN埠。
執行Cisco IOS系統軟體的Catalyst 6500/6000交換器使用Cisco專有的雜湊演演算法。
EtherChannel負載平衡可以將MAC位址、IP位址或第4層連線埠號碼與原則功能卡2(PFC2)以及來源模式、目的地模式或兩者都使用。您選擇的模式適用於在交換機上配置的所有EtherChannel。使用在您的配置中提供最大變化的選項。例如,如果通道上的流量僅到達一個MAC地址,則使用目的MAC地址會導致每次在通道中選擇同一鏈路。使用源地址或IP地址可以產生更好的負載平衡。發出port-channel load-balance {src-mac | dst-mac | src-dst-mac | src-ip | dst-ip | src-dst-ip | src-port | dst埠 | src-dst-port | mpls} global configuration命令以設定負載平衡。
註: port-channel load-balance src-dst-mixed-ip-port 命令可以更改Supervisor的PFC/DFC/CFC上的硬體轉發,並可能導致流量中斷數秒到數分鐘,直到計算新的雜湊演算法並開始相應地轉發流量。建議在非生產時段對雜湊演算法進行任何更改。
發出show etherchannel load-balance 命令以檢查幀分配策略。您可以確定EtherChannel中的哪個介面以幀分配策略為基礎來轉發流量。發出remote login switch 命令以遠端登入到交換機處理器(SP)控制檯以進行此確定。然後,發出test etherchannel load-balance interface port-channelnumber{ip | l4port | mac} [source_ip_add|source_mac_add|source_l4_port] [dest_ip_add|dest_mac_add|dest_l4_port] 命令。
以下是一些範例:
-
6509#remote login switch
Trying Switch ...
Entering CONSOLE for Switch
Type "^C^C^C" to end this session
6509-sp#test etherchannel load-balance interface port-channel 1 ip 10.10.10.2 10.10.10.1
Would select Gi6/1 of Po1
6509-sp#
-
6509#remote login switch
Trying Switch ...
Entering CONSOLE for Switch
Type "^C^C^C" to end this session
6509-sp#test etherchannel load-balance interface port-channel 1 mac 00d0.c0d7.2dd4 0002.fc26.2494
Would select Gi6/1 of Po1
6509-sp#
Catalyst 4500/4000 系列
Cisco IOS
採用Cisco IOS軟體(Supervisor Engine II+和更新版本)的Catalyst 4500/4000系列交換器最多支援64個EtherChannel。您可以組成一個EtherChannel,其中在任何模組上以及跨模組配置多達8個相容的乙太網介面。每個EtherChannel中的所有介面都必須為相同的速度,並且您必須將所有介面配置為第2層或第3層介面。
EtherChannel將從幀中的地址形成的二進位制模式的一部分減少為選擇通道中一個鏈路的數值,以平衡通道中鏈路間的流量負載。EtherChannel負載均衡可以使用MAC位址、IP位址或第4層連線埠號碼,以及來源模式、目的地模式或同時使用兩者。使用在您的配置中提供最大變化的選項。例如,如果通道上的流量僅到達一個MAC地址,則使用目的MAC地址會導致每次在通道中選擇同一鏈路。使用源地址或IP地址可以產生更好的負載平衡。發出port-channel load-balance {src-mac | dst-mac | src-dst-mac | src-ip | dst-ip | src-dst-ip | src-port | dst埠 | src-dst-port} 全域性配置命令以配置負載平衡。必須全域性配置負載平衡,並且不能基於每個埠更改負載均衡選項。
註:交換機使用源MAC地址和目的MAC地址的低位來確定必須使用哪些鏈路來傳輸資料。因此,如果從同一源接收資料,則會使用EtherChannel的同一鏈路來轉發資料。
Catalyst 2900XL/3500XL 系列
執行Cisco IOS軟體版本(低於Cisco IOS軟體版本11.2(8)SA3)的Catalyst 2900XL會根據最後聽到目的地MAC位址的連結選擇通道中的連結。如果獲知地址的鏈路比其他鏈路更繁忙,軟體會將此地址動態重新分配給通道中的另一條鏈路。您可以設定執行Cisco IOS軟體版本11.2(8)SA3或更新版本的Catalyst 2900XL,和執行Cisco IOS軟體版本11.2(8)SA6或更新版本的Catalyst 3500XL,以選擇要透過快速EtherChannel傳送的連結。交換機根據幀的目標或源MAC地址選擇鏈路。預設使用源MAC地址。此預設值表示交換器在具有相同MAC來源位址的非快速EtherChannel連線埠上接收的所有封包,若在通道的另一端具有MAC位址目的地,便會採用通道中的同一連結。當連線到Catalyst 2900XL/3500XL的許多站台傳送到Fast EtherChannel另一端的少數站(例如單一路由器)時,請使用來源型轉送。在這種情況下,使用基於源的轉發可以在通道中的所有鏈路上均勻分配流量。此外,Catalyst 2900XL/3500XL交換器保留傳輸流量的預設連線埠概念,例如跨距樹狀目錄通訊協定(STP)、多點傳送和未知的單點傳送。
Catalyst 3750/3560
Catalyst 3750/3560系列交換器最多可在EtherChannel中支援八個相容設定的乙太網路介面。EtherChannel提供交換器與另一個交換器或主機之間的全雙工頻寬,最高可達800 Mbps(快速EtherChannel)或8 Gbps(Gigabit EtherChannel)。使用Cisco IOS軟體版本12.2(20)SE和更新版本時,EtherChannel的數量限製為12。使用Cisco IOS軟體版本12.2(25)SE和更新版本時,EtherChannel的數量限製為48。
EtherChannel通過將幀格式中地址的二進位制模式部分減少為選擇通道中某個鏈路的數值,來平衡通道中各鏈路上的流量負載。EtherChannel負載平衡可以使用MAC地址或IP地址、源或目標地址,或者同時使用源地址和目標地址。此模式適用於交換器上設定的所有EtherChannel。您可以使用port-channel load-balance {dst-ip配置負載均衡和轉發方法 | dst-mac | src-dst-ip | src-dst-mac | src-ip | src-mac} global configuration命令。
您可以根據負載均衡方法瞭解EtherChannel中使用哪個介面來轉發流量。用於此確定的命令是test etherchannel load-balance interface port-channel number {ip | mac} [source_ip_add|source_mac_add] [dest_ip_add|dest_mac_add]
Catalyst 2950/2955/3550
Catalyst 2950/2955系列交換器最多可在EtherChannel中支援八個相容設定的乙太網路介面。EtherChannel可在交換器與其他交換器或主機之間提供最高800 Mbps(快速EtherChannel)或2 Gbps(Gigabit EtherChannel)的全雙工頻寬。EtherChannel的數量限製為六個,每個EtherChannel有八個埠。
Catalyst 3550系列交換器同時支援第2層和第3層EtherChannel,並最多提供八個相容設定的乙太網路介面。EtherChannel提供交換器與另一個交換器或主機之間的全雙工頻寬,最高可達800 Mbps(快速EtherChannel)或8 Gbps(Gigabit EtherChannel)。EtherChannel數量的限制是相同型別的埠數量。
針對2950/2955/3550系列交換器,EtherChannel會透過與通道中其中一個連結的新學MAC位址進行隨機關聯,來平衡通道中連結間的流量負載。EtherChannel負載平衡可以使用源MAC或目標MAC地址轉發。
透過來源MAC位址轉送,當封包轉送到EtherChannel時,系統會根據傳入封包的來源MAC位址,透過通道中的連線埠分發封包。因此,為了提供負載均衡,來自不同主機的資料包使用通道中的不同埠,但來自同一主機的資料包使用通道中的相同埠。透過目的地MAC位址轉送,當封包轉送到EtherChannel時,系統會根據傳入封包的目的地主機MAC位址,透過通道中的連線埠分發封包。因此,傳送到相同目的地的封包會透過相同的連線埠轉送,傳送到不同目的地的封包會在通道中的不同連線埠上傳送。
對於3550系列交換器,當使用來源MAC位址轉送時,也會為路由的IP流量啟用基於來源和目的地IP位址的負載分配。所有路由IP流量都會根據源IP地址和目標IP地址選擇埠。兩個IP主機之間的資料包始終使用通道中的同一埠,任何其他主機對之間的流量可以使用通道中的不同埠。
發出port-channel load-balance {dst-mac | src-mac} 全域性配置命令,以配置負載平衡和轉發方法。
注意:預設埠用於傳輸流量,例如生成樹協定(STP)、組播和未知單播。預設埠可以通過show etherchannel summary命令的輸出中標出d。
Catalyst 1900/2820
啟用PAgP後,鏈路確定的兩種可能方法是保持順序並最大程度地實現快速EtherChannel上鍊路之間的負載均衡。本檔案的What Is PAgP and Where Do You Use It?(什麼是PAgP和在哪裡使用它?)部分描述了PAgP。預設值為最大化負載平衡。PAgP用於與通道另一端的裝置協商配置的方法。如果設定了保留順序,則會指示另一端的裝置使用來源型傳輸,以使Catalyst 1900/2820總是在通道中的同一連結上接收具有相同來源MAC位址的封包。這是Catalyst 1900/2820總是用來將流量傳送到此MAC位址的連結。如果配置了最大負載均衡,PAgP會告訴另一端它可任意分配流量,並且單播流量由Catalyst 1900/2820在上次看到源地址的鏈路上傳輸。這樣可提供最大可能的負載均衡配置。在禁用PAgP的情況下配置Fast EtherChannel時,交換機無法與合作夥伴協商交換機學習功能。交換機是否保留幀順序取決於Fast EtherChannel合作夥伴是否執行基於源的分發。
Catalyst 1900/2820s也會選擇作用中連線埠。活動埠用於泛洪流量,例如未知的單點傳播、未註冊的組播和廣播資料包。如果連線埠通道模式為開啟(PAgP停用),則作用中連線埠是優先順序值最高的連結。如果模式為desirable或auto(啟用PAgP),則根據乙太網地址較高的交換機上鍊路的優先順序選擇活動埠。當交換器上乙太網路位址較高的兩個連線埠具有相同的優先順序時,會選擇具有較低ifIndex的連線埠。
Catalyst 2948G-L3/4908G-L3
當一條鏈路發生故障時,以前使用該鏈路的所有流量現在都使用它旁邊的鏈路。例如,如果捆綁包中的鏈路1發生故障,則以前在故障之前使用鏈路1的流量現在使用鏈路2。
負載均衡方法矩陣
此矩陣整合了負載均衡方法:
平台 |
XOR中使用的地址 |
基於源? |
基於目的地? |
基於源目標? |
負載均衡方法 — 可配置/固定? |
6500/6000 |
第2層、第3層地址、第4層資訊或MPLS資訊2 |
是 |
是 |
是 |
可設定 |
4500/4000 |
第2層、第3層地址或第4層資訊 |
是 |
是 |
是 |
可設定 |
2900XL/3500XL |
僅第2層地址 |
是 |
是 |
— |
可設定 |
3750/3560 |
僅第2層或第3層地址 |
是 |
是 |
是 |
可設定 |
2950/2955/3550 |
僅第2層地址1 |
是 |
是 |
—1 |
可設定 |
1900/2820 |
這些平台使用一種特殊的負載均衡方法。有關詳細資訊,請參閱Catalyst 1900/2820部分。 |
1 對於3550系列交換器,當使用來源MAC位址轉送時,也會為路由的IP流量啟用基於來源和目的地IP位址的負載分配。所有路由IP流量都會根據源IP地址和目標IP地址選擇埠。
2 對於執行Cisco IOS的6500系列交換器,MPLS第2層資訊也可用於平衡MPLS封包。
什麼是PAgP,在哪裡使用?
PAgP有助於自動建立EtherChannel鏈路。在具備EtherChannel功能的埠之間傳送PAgP資料包,以協商通道的形成。PAgP中特意引入了一些限制。限制如下:
-
PAgP不會在針對動態VLAN配置的埠上形成捆綁包。PAgP要求通道中的所有埠屬於同一個VLAN或配置為中繼埠。如果套件組合已存在,且修改了連線埠的VLAN,則套件組合中的所有連線埠都會修改為與該VLAN相符。
-
PAgP不對以不同速度或埠雙工運行的埠進行分組。如果存在捆綁包時速度和雙工發生更改,則PAgP會更改捆綁包中所有埠的埠速度和雙工。
-
PAgP模式為off、auto、desirable和on。只有組合auto-desirable、desirable-desirable和on-on允許形成通道。如果通道一端的裝置(例如路由器)不支援PAgP,另一端的裝置必須將PAgP設定為on。
這些交換機不支援PAgP:
EtherChannel上的ISL/802.1Q中繼支援
您可以使用或不使用交換器間連結通訊協定(ISL)/IEEE 802.1Q中繼來設定EtherChannel連線。通道建立後,將通道中的任何連線埠設定為主幹會將組態套用到通道中的所有連線埠。配置相同的中繼埠可以配置為EtherChannel。您必須擁有所有ISL或所有802.1Q;不能將兩者混合使用。ISL/802.1Q封裝(如果已啟用)將獨立於Fast EtherChannel的來源/目的地負載平衡機制執行。VLAN ID對資料包採用的鏈路沒有影響。ISL/802.1Q只是使中繼屬於多個VLAN。如果未啟用中繼,則與快速EtherChannel相關聯的所有連線埠都必須屬於同一個VLAN。
相關資訊