Load-Balancing with HSRP
Problem
You want to load-balance your traffic between two (or more) HSRP routers.
Solution
You can configure HSRP so that both routers are always in use if they are available. This allows you to use your network resources more efficiently, but it is slightly more complicated to configure.
Configure the first router as follows, with two HSRP groups:
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#interface FastEthernet0/1
Router1(config-if)#ip address 172.22.1.3 255.255.255.0
Router1(config-if)#standby 1 ip 172.22.1.1
Router1(config-if)#standby 1 priority 120
Router1(config-if)#standby 1 preempt
Router1(config-if)#standby 2 ip 172.22.1.2
Router1(config-if)#standby 2 priority 110
Router1(config-if)#standby 2 preempt
Router1(config-if)#exit
Router1(config)#end
Router1#
Then, on the second router, you create the same two HSRP groups, but change the priority levels from those of the first router so that Router1 is active for group 1 and Router2 is active for group 2:
Router2#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)#interface FastEthernet1/0
Router2(config-if)#ip address 172.22.1.4 255.255.255.0
Router2(config-if)#standby 1 ip 172.22.1.1
Router2(config-if)#standby 1 priority 110
Router2(config-if)#standby 1 preempt
Router2(config-if)#standby 2 ip 172.22.1.2
Router2(config-if)#standby 2 priority 120
Router2(config-if)#standby 2 preempt
Router2(config-if)#exit
Router2(config)#end
Router2#
This ensures that both router back up one another simultaneously. You must then configure half of your end devices on this segment to use the address 172.22.1.1 for their default gateway, and the other half to use 172.22.1.2.
Discussion
By default, when you use HSRP on a LAN segment, all of the traffic goes through whichever router is currently active. This means that the second router and its links are generally idle. If this is a remote site, and both routers have WAN links, then you will need to pay for an expensive WAN connection that is almost always unused. So this recipe shows you a way to use both routers.
This method only affects the outgoing traffic from the workstations to the routers and out to the WAN. If you want to balance the traffic going from the WAN to the LAN as well, you will need to look at your routing protocol, which determines which WAN connection is the best path to this LAN segment.
The recipe is actually very simple. It just creates two separate HSRP groups on the same segment. When everything is working normally, Router1 is the active router for one of the groups and Router2 is active for the other. Then, if either of these routers fails, the other takes over and becomes the active router for both groups.
This feature uses Multigroup HSRP (MHSRP). Not all routers support MHSRP. In particular, it does not work on Cisco 1600, 2500, 4000, or 5200/5300 devices. For Token Ring LANs, you can use MHSRP, but there are only three available HSRP groups for Token Rings. Other LAN media, such as Ethernet, FDDI, ATM, and various VLAN encapsulations (including LANE, ISL, 802.10, 802.1Q, and EtherChannel) will support 256 groups. Note that you can actually configure more HSRP groups for Token Ring if you use the use-bia option. But this means that every group will use the same MAC address. We will discuss this option and its benefits and restrictions in Recipe 22.7.
Once you have configured the routers this way so that they both back one another up, you need to configure the end devices. Half of these devices need to have a default gateway address of 172.22.1.1, and the other half must use 172.22.1.2. Deciding which devices use which address is the key to balancing the load between your routers. If you configure all of your busiest devices to use the same address, and consequently the same router, then you won't have a very well-balanced network load. This is also where the administration starts to become a little bit more complicated because you must decide which gateway each new device will use.
Of course, in a situation where both routers support two or more LAN segments, you could simply make one router primary for one segment and the other one primary for the other segment, instead of configuring two HSRP groups on the same interface. This is considerably simpler to administer, and it works well in larger networks.
The show standby command output includes information about both groups. For the first router in the example, you get the following output:
Router1#show standby
FastEthernet0/1 - Group 1
Local state is Active, priority 120, may preempt
Hellotime 3 sec, holdtime 10 sec
Next hello sent in 1.184
Virtual IP address is 172.22.1.1 configured
Active router is local
Standby router is 172.22.1.4 expires in 9.164
Virtual mac address is 0000.0c07.ac01
17 state changes, last state change 01:14:06
FastEthernet0/1 - Group 2
Local state is Standby, priority 110, may preempt
Hellotime 3 sec, holdtime 10 sec
Next hello sent in 2.394
Virtual IP address is 172.22.1.2 configured
Active router is 172.22.1.4, priority 120 expires in 8.892
Standby router is local
4 state changes, last state change 00:32:22
Router1#
You can see that this router is active for group 1 and in standby for group 2. The same command on the second router shows the converse:
Router2#show standby
FastEthernet1/0 - Group 1
Local state is Standby, priority 110, may preempt
Hellotime 3 sec, holdtime 10 sec
Next hello sent in 0.274
Virtual IP address is 172.22.1.1 configured
Active router is 172.22.1.3, priority 120 expires in 9.312
Standby router is local
4 state changes, last state change 01:23:46
IP redundancy name is "hsrp-Fa1/0-1" (default)
FastEthernet1/0 - Group 2
Local state is Active, priority 120, may preempt
Hellotime 3 sec, holdtime 10 sec
Next hello sent in 2.536
Virtual IP address is 172.22.1.2 configured
Active router is local
Standby router is 172.22.1.3 expires in 8.936
Virtual mac address is 0000.0c07.ac02
1 state changes, last state change 01:21:49
Router2#
Cisco has recently developed a new solution to this same problem, called Gateway Load-Balancing Protocol (GLBP), which allows you to load-balance between several HSRP routers without having to reconfigure the end devieces. Please refer to Recipe 22.14 for more information on this technique.