Thursday, December 1, 2011

EIGRP Load Balancing

Load balancing is a router capability to distribute traffic over multiple network paths that have the same metric to a destination network.

Good load balancing algorithms utilize both line speed and reliability information. Load balancing increases the utilization of network links and eventually increases the effective bandwidth and throughput.

Cisco IOS perform load balancing across of 4 equal-cost paths by default. The maximum-paths {max-paths-num} router subcommand defines the number of same metric parallel paths to a same destination network that can be added to the routing table and perform load balancing across the links in round-robin basis. Set max-paths-num to 1 to disable load balancing.
Note: When packets are process-switched, load balancing occurs on a per-packet basis. When packets are fast-switched, load balancing occurs on a per-destination basis.

Note: Load balancing is performed only on traffic that passes through a router, not traffic that originated by the router. Hence when testing load balancing, do not issue ping and observe the results from the router that connects to the same metric parallel paths, as the locally generated ping packets are process-switched rather than fast-switched and might produce confusing results.

EIGRP and IGRP are able to perform load balancing across multiple routes with different metrics – unequal-cost load balancing. The variance {multiplier} router subcommand defines the variance value (between 1 and 128) which defines routes with metric value less than or equal to lowest metric x variance multiplier are considered equal and will be used for load balancing. The default is 1, which means equal cost load balancing. Ex: With a lowest metric of 100 and variance of 2, all routes with a metric ≤ 200 are considered equal.


Only paths that meet the feasibility condition can be used for unequal-cost load balancing. A path or route can only be considered as a feasible successor when:
i) The advertised distance from the next router (the feasible distance of the next router) must be less than the lowest-metric (feasible distance) of the local router to the destination. This means that the next router in the path must be closer to the destination than the local router in order to prevent routing loops.
ii) The feasible distance through the next router must be less than or equal to the lowest metric (feasible distance) of the local router multiplied with the variance multiplier.
* If a path isn’t a feasible successor, it isn’t used in load balancing, even if variance is configured!

Network Setup for EIGRP Load Balancing

Below shows that after changing the variance multiplier to 10 on RT1, the path to 172.16.1.0/24 via RT4 is not considered feasible, even the FD via RT4 – 309760 is less than lowest metric multiplied with the variance multiplier – 332800; because the AD of RT4 – 284160, is not less than the FD of RT1 to 172.16.1.0/24 – 33280.
RT1#sh ip route

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 1 subnets
D       172.16.1.0 [90/33280] via 10.10.10.2, 00:01:00, FastEthernet0/0
     10.0.0.0/30 is subnetted, 6 subnets
C       10.10.10.8 is directly connected, Ethernet1/0
D       10.10.10.12 [90/33280] via 10.10.10.2, 00:01:00, FastEthernet0/0
C       10.10.10.0 is directly connected, FastEthernet0/0
D       10.10.10.4 [90/30720] via 10.10.10.2, 00:01:00, FastEthernet0/0
C       10.10.10.16 is directly connected, Ethernet1/1
D       10.10.10.20 [90/286720] via 10.10.10.2, 00:01:00, FastEthernet0/0
RT1#
RT1#sh ip eigrp topology all-links | b 172.16.1.0
P 172.16.1.0/24, 1 successors, FD is 33280, serno 10
        via 10.10.10.2 (33280/30720), FastEthernet0/0
        via 10.10.10.18 (309760/284160), Ethernet1/1
        via 10.10.10.10 (286720/30720), Ethernet1/0
RT1#
RT1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
RT1(config)#router eigrp 100
RT1(config-router)#variance 10
RT1(config-router)#^Z
RT1#sh ip route

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 1 subnets
D       172.16.1.0 [90/33280] via 10.10.10.2, 00:00:10, FastEthernet0/0
                   [90/286720] via 10.10.10.10, 00:00:10, Ethernet1/0
     10.0.0.0/30 is subnetted, 6 subnets
C       10.10.10.8 is directly connected, Ethernet1/0
D       10.10.10.12 [90/33280] via 10.10.10.2, 00:00:10, FastEthernet0/0
                    [90/284160] via 10.10.10.10, 00:00:10, Ethernet1/0
C       10.10.10.0 is directly connected, FastEthernet0/0
D       10.10.10.4 [90/30720] via 10.10.10.2, 00:00:10, FastEthernet0/0
C       10.10.10.16 is directly connected, Ethernet1/1
D       10.10.10.20 [90/286720] via 10.10.10.2, 00:00:10, FastEthernet0/0
                    [90/307200] via 10.10.10.18, 00:00:10, Ethernet1/1
                    [90/309760] via 10.10.10.10, 00:00:10, Ethernet1/0
RT1#
Tips: Always write out the FD and AD of all routes in a network diagram before deciding whether the variance command allows the use of all paths.

The traffic-share {balanced | min across-interfaces} router subcommand controls how traffic is being distributed among routes when multiple different costs routes exist for the same destination network – traffic sharing. With the balanced keyword, the router distributes traffic proportionately to the ratios of the metrics associated with the different routes. With the min across-interfaces keyword, the router uses only routes that have minimum costs – all routes that are feasible and within the variance are maintained in the routing table, but only those with the minimum cost will used for forwarding packets.

No comments:

Post a Comment