EIGRP will load balance traffic across up to 16 links (4 by default) of equal cost. One nice feature of EIGRP is that it can also be configured to load balance across unequal cost links, as opposed to other routing protocols like RIP and OSPF.
Our topology is made up of two routers connected to each other over 10Mbps Ethernet and 100Mbps Fast Ethernet links:
The first thing to note here is that even though there is only one router on each side of the link, because we have enabled EIGRP on both interfaces, two neighbour relationships are formed:
R1#sh ip eigrp neighbors IP-EIGRP neighbors for process 1000 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 1 192.168.1.2 Et1/0 10 00:36:21 3 200 0 24 0 192.168.1.6 Fa0/0 11 00:36:21 3 200 0 21
For simplicity I have configured EIGRP to only use the Bandwidth K value when calculating Feasible Distances. The formula used normally throws up some ridiculous numbers that are of no use when it comes to understanding the protocol, so by telling EIGRP to only use Bandwidth in its calculations, we’ll end up with easier numbers to deal with.
This is achieved by the following commands:
R2(config-router)#router eigrp 1000 R2(config-router)#metric weights 0 1 0 0 0 0
We’ve configured a Loopback interface on R1 with the address 10.1.1.1, and R2 will use the faster link via Fa0/0 to get to this network by default, rather than load balancing traffic across both links. R2’s routing table confirms this:
R2#sh ip route eigrp 10.0.0.0/24 is subnetted, 1 subnets D 10.1.1.0 [90/25600] via 192.168.1.5, 00:00:02, FastEthernet0/0
Also, if we look at R2’s topology table for the EIGRP 1000 routing process, we can see that it knows about both routes to the 10.1.1.0/24 network, but hasn’t placed the slower route in the routing table due to it’s Feasible Distance being 10 times that of the route via fa0/0:
R2#show ip eigrp 1000 topology IP-EIGRP Topology Table for AS(1000)/ID(192.168.1.6) Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - reply Status, s - sia Status P 10.1.1.0/24, 1 successors, FD is 25600 via 192.168.1.5 (25600/256), FastEthernet0/0 via 192.168.1.1 (256000/256), Ethernet1/0
Now let’s configure unequal-cost load balancing to make use of the link via e1/0. We do this with the variance command:
R2(config)#router eigrp 1000 R2(config-router)#variance 10
By setting the variance to 10 we are telling the router to load balance over routes that have an FD of up to 10 times worse than the FD of the Successor route. This means that R2 will now place both routes into the routing table:
R2#sh ip route eigrp 10.0.0.0/24 is subnetted, 1 subnets D 10.1.1.0 [90/25600] via 192.168.1.5, 00:10:25, FastEthernet0/0 [90/256000] via 192.168.1.1, 00:10:25, Ethernet1/0
The result of this is that for every 10 packets that R2 sends to the 10.1.1.0/24 network out of it’s 100Mbps interface it will also send 1 packet out of the 10Mbps interface – load balancing packets across the two unequal-cost links.
I hope this has been a useful explanation. Thanks for reading.
Follow Rich on Twitter