簡介
本檔案介紹負載均衡在路由器軟體和平台功能中的運作方式。
必要條件
需求
本文件沒有特定需求。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
慣例
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
背景資訊
負載均衡是Cisco IOS®路由器軟體的標準功能,可在所有路由器平台上使用。
這是路由器中轉發過程所固有的,如果路由表有多個到達目的地的路徑,則會自動啟用它。
它基於標準路由協定,例如
- 路由資訊通訊協定(RIP)
- RIPv2
- 增強型內部閘道路由通訊協定(EIGRP)
- 開放最短路徑優先(OSPF)
- 內部閘道路由通訊協定 (IGRP)
或源自靜態配置的路由和資料包轉發機制。它允許路由器在轉發資料包時使用多條路徑到達目的地。
負載平衡
當路由器通過多個路由進程(或RIP、RIPv2、IGRP、EIGRP和OSPF等路由協定)獲知到特定網路的多個路由時,它會在路由表中安裝管理距離最小的路由。
如需詳細資訊,請參閱Cisco路由器中的路由選擇。
有時,路由器必須從通過具有相同管理距離的同一路由進程獲知的眾多路由中選擇一條路由。在這種情況下,路由器會選擇具有最低成本(或指標)的路徑來到達目的地。
每個路由過程會以不同的方式計算其成本,有時需要操縱成本以實現負載均衡。
如果路由器收到多條路徑並將其安裝到目的地,且多條路徑的管理距離和開銷相同,則可能會進行負載均衡。
使用的路徑數受路由協定在路由表中加入的條目數限制。
對於大多數IP路由通訊協定,Cisco IOS預設有四個專案,但邊界閘道通訊協定(BGP)除外,其中一個專案為預設專案。
所配置的六個不同路徑是最大數量。
IGRP和EIGRP路由進程還支援成本不等的負載均衡。您可以將variance命令與IGRP和EIGRP配合使用,以實現成本不等的負載平衡。
發出maximum-paths 命令,以根據為協定配置的值確定可安裝的路由數。
如果將路由表設定為一個條目,則會禁用負載均衡。
請參閱不等價路徑負載平衡(方差)如何在IGRP和EIGRP中工作?以獲得有關超差的更多資訊。
通常可以使用show ip route 命令查詢等價路由。下一個示例是show ip route 命令輸出到具有多個路由的特定子網。
注意,有兩個路由描述符塊。每塊是一條路由。其中一個塊條目旁邊還有星號(*)。這對應於用於新流量的活動路由。
術語「新流量」根據配置的交換型別,對應於到達目的地的單個資料包或整個流。
每次服務資料包/流時,星號(*)的位置繼續在等價路徑之間旋轉。
M2515-B#show ip route 10.0.0.0
Routing entry for 10.0.0.0/8
Known via "rip", distance 120, metric 1
Redistributing via rip
Advertised by rip (self originated)
Last update from 192.168.75.7 on Serial1, 00:00:00 ago
Routing Descriptor Blocks:
* 192.168.57.7, from 192.168.57.7, 00:00:18 ago, via Serial0
Route metric is 1, traffic share count is 1
192.168.75.7, from 192.168.75.7, 00:00:00 ago, via Serial1
Route metric is 1, traffic share count is 1
依照目的地和依照封包負載平衡
您可以將負載均衡設定為按目標或按資料包工作。
Per-destination-load-balancing表示路由器根據目標地址分配資料包。
如果給定兩條路徑通往同一網路,則該網路上發往destination1的所有資料包都將經過第一條路徑,該網路上發往destination2的所有資料包都將經過第二條路徑,以此類推。
這樣可保持資料包順序,並且鏈路的使用可能是不對等的。如果一台主機收到大部分流量,則所有資料包都使用一個鏈路,這會使其他鏈路上的頻寬處於未使用狀態。
目的地址數量越多,鏈路使用就越均勻。要獲得使用更均衡的鏈路,請使用Cisco IOS軟體為每個目標地址(而不是每個目標網路)構建路由快取條目,如只存在一條路徑。
因此,同一目的地網路中不同主機的流量可以使用不同的路徑。這種方法的缺點是,對於承載數千台目的主機、記憶體和處理要求的核心主幹路由器而言,維護快取是一項挑戰。
每資料包負載均衡意味著路由器通過第一路徑向destination1傳送一個資料包,通過第二路徑向(相同)destination1傳送第二個資料包,依此類推。
每個資料包的負載平衡可以保證所有鏈路上的負載相等。但是,由於網路中可能存在差異延遲,因此資料包可能會在目的地順序混亂。
在Cisco IOS軟體中(除了11.1CC版),每個封包負載均衡都會停用路由快取造成的轉送加速,因為路由快取資訊包含傳出介面。
對於每資料包負載均衡,當轉發進程查詢路由表並選取使用最少的介面時,會確定每個資料包的傳出介面。
這可確保鏈路的同等利用率,但這是一項處理器密集型任務,會影響整體轉發效能。這種形式的每資料包負載均衡不適合高速介面。
每個目標或每個資料包的負載平衡取決於IP資料包使用的交換方案的型別。預設情況下,在大多數Cisco路由器上,快速交換在介面下啟用。
這是一種根據目標執行負載均衡的需求快取方案。
要設定每個資料包的負載平衡、啟用進程交換(或禁用快速交換),請使用以下命令:
Router#configure terminal
Router(config)#interface Ethernet 0
Router(config-if)#no ip route-cache
Router(config-if)#^Z
現在,路由器CPU會檢視每個資料包,並檢視路由表中目的地路由數上的負載均衡。這可能使低端路由器崩潰,因為CPU必須執行所有處理。
要重新啟用快速交換,請使用以下命令:
Router#configure terminal
Router(config)#interface Ethernet 0
Router(config-if)#ip route-cache
Router(config-if)#^Z
較新的交換方案(例如Cisco Express Forwarding(CEF))可讓您更快速地執行每個封包和每個目的地的負載平衡。
但是,這表示您擁有額外資源來維護CEF條目和鄰接關係。
與CEF合作時,您可以問:使用的負載均衡、CEF或路由協定由誰執行?
CEF的工作方式是CEF根據由EIGRP等路由協定填充的路由表執行資料包交換。簡而言之,一旦計算路由協定表,CEF就會執行負載均衡。
有關CEF負載平衡的詳細資訊,請參閱使用Cisco Express Forwarding和Load Balancing with CEF對並行鏈路上的負載平衡進行故障排除。
接下來的文檔將詳細介紹各種協定如何選擇最佳路徑、計算到達特定目標的成本,以及應用時如何執行負載均衡。
相關資訊