在eigrp中如何做到不等值路由的負載平衡
EIGRP Load Balancing
每個路由協議都支援等值路徑的負載平衡.除此之外,IGRP和EIGRP也支援不等值路徑的負載平衡,使用variance命令. Variance命令向路由器通告一個n值,n值使用variance命令指定.n值為1-128之間,預設為1。
網路拓撲
Variance
在上圖中,router E有三個路徑到網路X
• E-B-A with a metric of 30
• E-C-A with a metric of 20
• E-D-A with a metric of 45
Router E選擇第二個路徑,E-C-A的metric為20,20為三個路徑的最小值,如果希望EIGRP選擇優先E-B-A路徑,配置variance值為乘數2
router eigrp 1
network x.x.x.x
variance 2
這樣增加了metric到40(2*20=40)。這樣EIGRP包括了所有metric小於40的路由,在上面的配置中,路由器使用了兩個路徑到達網路X,E-C-A和E-B-A,因為兩個路徑的metric值都在40以下。因為E-D-A的metric為45,大於40,所以eigrp不選擇此路徑到達網路X。而且,路由器D報告到達網路X的metric為25,這個值比可行的metric值20要大。這就意味著即使variance設定為3,E-D-A路徑也不會被選擇為負載平衡的路徑,因為router D不是一個可行的後繼者。
Traffic Sharing
Eigrp不僅支援不等值路徑的負載平衡,而且也支援智能負載平衡,例如traffic sharing。有多個路由到達同一目的網路有不同cost的情況下,想要控制在不同路由上的traffic,可以使用traffic sharing命令。使用balanced關鍵字,路由器按照不同路由的metrics比率成比例的分配流量。這是預設設定
router eigrp 1
network x.x.x.x
variance 2
traffic-share balanced
下面是traffic share計算案例
• For path E-C-A: 30/20 = 3/2 = 1
• For path E-B-A: 30/30 = 1
如果不能整除,我們按照其整數計算(注意:不是四捨五入)。在這個案例中eigrp發送包通過E-C-A和E-B-A的比率為1:1,這樣做到了負載平衡的目的。
現在我們假設在E-B間的metric為25,B-A間的metric為15。這樣E-B-A的metric為40,因為40不小於2×20(20是可行的路徑metric,2是variance值),這樣在E-C-A和E-B-A之間不可以實現負載平衡。如果希望實現負載平衡,我們需要將variance值設定為3。這樣兩條鏈路上的traffic share比率為
• For path E-C-A: 40/20 = 2
• For path E-B-A: 40/40 = 1
這樣eigrp在E-C-A和E-B-A的流量比率為2:1。通過這樣的方法,eigrp不僅支援了不等值的路由負載平衡,而且也支援了智能負載平衡
在關鍵字min使用時,traffic僅僅通過最小cost路徑發送,即使在路由表中有多個路由路徑
router eigrp 1
network x.x.x.x
variance 3
traffic-share min across-interfaces
這樣配置的結果是,eigrp僅僅通過E-C-A的路徑發送
此文章同樣適用於igrp