Load-Balancing 9.9

Load-Balancing

Problem

You want to load-balance traffic over two or more links, between two eBGP or iBGP neighbors.

Solution

Although BGP goes to great lengths to ensure that there is only one path for each route by default, Cisco routers also allow you to configure load-balancing for equal cost paths:

Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#router bgp 65500
Router1(config-router)#maximum-paths 4
Router1(config-router)#exit
Router1(config)#end
Router1#

Discussion

This option is useful when there are multiple paths to a particular adjacent AS. As you can see from the following BGP route table, there are three different options for these routes:

Router1#show ip bgp
BGP table version is 12, local router ID is 172.18.5.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path
* 10.0.0.0 192.168.1.5 0 65510 65520 i
*> 192.168.2.5 0 0 65520 i
* 192.168.3.5 0 65520 i
* 172.25.0.0 192.168.1.5 0 65510 65520 i
*> 192.168.2.5 0 0 65520 i
* 192.168.3.5 0 65520 i
Router1#

But without the maximum-paths command enabled, there is only one route for each of these destinations in the IP routing table:

Router1#show ip route bgp
172.25.0.0/16 is variably subnetted, 2 subnets, 2 masks
B 172.25.0.0/16 [20/0] via 192.168.2.5, 00:06:58
B 10.0.0.0/8 [20/0] via 192.168.2.5, 00:06:58

We then increase the maximum path value to 4 from the default of 1:

Router1(config)#router bgp 65500
Router1(config-router)#maximum-paths 4

The router now installs two routes in the IP routing table for each prefix:

Router1#show ip route bgp
172.25.0.0/16 is variably subnetted, 2 subnets, 2 masks
B 172.25.0.0/16 [20/0] via 192.168.2.5, 00:00:02
[20/0] via 192.168.3.5, 00:00:02
B 10.0.0.0/8 [20/0] via 192.168.2.5, 00:00:02
[20/0] via 192.168.3.5, 00:00:02

Note the router did not install all three of the available BGP routes. This is because the other routes, the ones that use 192.168.1.5 for the next-hop router, both have a longer AS Path. Similarly, if one of these routes had a smaller Local Preference value, it also would not be used. As we mentioned when discussing the BGP route selection rules in the introduction to this chapter, the router uses BGP Multipath feature only for routes that are equivalent after all tests up to and including the MED test.

This feature only works for routes that leave the AS. If you have multiple paths to a remote AS, but they depart through different routers, then they will not load balance.

Also note that for eBGP connections, this only balances the outbound traffic load. Incoming packets are subject to whatever routing policies your neighboring AS uses.