一般來說,負載均衡是路由器將流量分配到距離目的地址相同的所有路由器網路埠的功能。負載均衡提高了網段的利用率,因此也增加了有效的網路頻寬。有兩種型別的負載平衡:
等價路徑 — 適用於到達目的網路的不同路徑報告相同的路由度量值的情況。maximum-paths命令確定路由協定可以使用的最大路由數。
不等價路徑 — 適用於到達目標網路報告的不同路徑具有不同的路由度量值的情況。variance命令可確定路由器使用的是哪條路由。
本檔案將說明不等價路徑負載均衡在增強型內部閘道路由通訊協定(EIGRP)中的運作方式。
本文檔要求您對IP路由協定和EIGRP路由協定有基本的瞭解。要瞭解有關IP路由協定和EIGRP的更多資訊,請參閱以下文檔:
Cisco IOS®軟體版本9.21及更高版本支援EIGRP。
您可以在所有路由器(如Cisco 2500系列和Cisco 2600系列)和所有第3層交換機中配置EIGRP。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
每個路由協定都支援等價路徑負載均衡。此外,內部網關路由協定(IGRP)和EIGRP還支援成本不等的路徑負載均衡。使用variance n 命令可指示路由器包含度量小於該目標最小度量路由n 倍的路由。變數n可以取一個介於1和128之間的值。預設值為1,表示等價負載均衡。流量也會以度量為基準,按比例在成本不等的鏈路之間分配。
注意:如果路徑不是可行後繼路由,則不會在負載平衡中使用該路徑。如需詳細資訊,請參閱增強型內部閘道路由通訊協定的可行距離、報告距離和可行後繼路由器一節。
本節提供了一個示例。在網路圖表中,有三種方法可到達網路X:
度量為30的E-B-A
度量為20的E-C-A
度量為45的E-D-A
路由器E選擇度量為20的路徑E-C-A,因為20優於30和45。為了指示EIGRP也選擇路徑E-B-A,請使用乘數2配置方差:
router eigrp 1
network x.x.x.x
variance 2
此配置將最小度量增加到40(2 * 20 = 40)。EIGRP包括度量小於或等於40且滿足可行性條件的所有路由。在本節的配置中,EIGRP現在使用兩條路徑來到達網路X,即E-C-A和E-B-A,因為兩條路徑的度量在40以下。EIGRP不使用路徑E-D-A,因為該路徑的度量為45,由於存在差異,因此該度量不小於最小度量值40。此外,鄰居D的報告距離為25,大於從20到C的可行距離(FD)。這意味著,即使方差設定為3,也不會選擇E-D-A路徑進行負載均衡,因為路由器D不是可行後繼路由器。
附註: 有關差異的詳細資訊,請參閱排除EIGRP差異命令。
EIGRP不僅提供成本不等的路徑負載均衡,還提供流量共用等智慧負載均衡。當同一目的網路有多個路由且開銷不同,為了控制流量在路由之間的分配方式,請使用traffic-share balanced命令。使用關鍵字balanced,路由器會根據與不同路由關聯的度量的比率按比例分配流量。這是預設設定:
router eigrp 1
network x.x.x.x
variance 2
traffic-share balanced
此示例的流量共用計數為:
對於路徑E-C-A:30/20 = 3/2 = 1
對於路徑E-B-A:30/30 = 1
由於比率不是整數,因此向下舍入到最接近的整數。在本示例中,EIGRP將一個資料包傳送到E-C-A,將另一個資料包傳送到E-B-A。
現在,假設E-B之間的度量為25,B-A之間的度量為15。在這種情況下,E-B-A的度量為40。但是,不會選擇此路徑進行負載均衡,因為該路徑的開銷40不小於(20 * 2),其中20是FD,2是方差。為了將此路徑也包括在負載共用中,應將差異更改為3。在這種情況下,流量共用計數比率為:
對於路徑E-C-A:40/20 = 2
對於路徑E-B-A:40/40 = 1
在這種情況下,EIGRP將兩個資料包傳送到E-C-A,一個資料包傳送到E-B-A。通過這種方式,EIGRP提供了成本不等的路徑負載均衡和智慧負載均衡。請參閱增強型內部網關路由協定的負載平衡部分,瞭解有關EIGRP如何在不等價鏈路上平衡流量的詳細資訊。
同樣,當您使用包含關鍵字min的traffic-share命令時,即使路由表中存在多個路徑,流量也只會通過成本最低的路徑傳送。
router eigrp 1
network x.x.x.x
variance 3
traffic-share min across-interfaces
在這種情況下,EIGRP僅通過E-C-A(通往目的網路的最佳路徑)傳送資料包。這與不使用variance命令的轉發行為相同。但是,如果您使用traffic-share min命令和variance命令,則即使流量僅通過最低成本路徑傳送,所有可行路由都將安裝到路由表中,從而縮短收斂時間。
您已經看到如何在EIGRP中配置不等價路徑負載均衡。同樣地,在IGRP中可以執行同樣操作,可行性條件除外。此條件不適用於IGRP。
Cisco Express Forwarding(CEF)是一種進階第3層交換技術,可用於路由器中的負載平衡。預設情況下,CEF使用基於目標的負載均衡。如果在介面上啟用該功能,則每個目標的負載平衡會根據到達目標的路徑轉發資料包。如果目標存在兩個或多個並行路徑,則CEF採用同一路徑(單路徑)並避免並行路徑。這是CEF的預設行為導致的結果。當負載共用在不同物理型別(如串列和隧道)的介面上同時完成時,CEF採用單一路徑。雜湊演算法確定要選擇的路徑。為了利用CEF中的所有並行路徑並對流量進行負載均衡,當您有不同的物理介面(如串列介面和隧道)時,必須啟用每資料包負載均衡。因此,根據配置和拓撲(串列或隧道),使用預設CEF負載平衡模式時,負載共用可能無法正常工作。
啟用以下命令以逐個資料包進行負載共用:
configure terminal interface serial 0 ip load-sharing per-packet