HSRP stands for Hot Standy Routing Protocol which provides Automatic Router backup when an active router in the group fails. HSRP allows building resiliency in the network gateways wherein should an Active Router fail in a HSRP group, the standby router assumes the role of the active router and continue routing packets.
HSRP works by sending multicast "Hello" messages (default: every 3 secs). If the Standby router do not receive any Hello packets from the active router for a preset time (default 10secs) then it assumes the active router is down and becomes the active router. Also, if we are tracking an interface and if the tracked interface is down, the Active Router reduces its priority so a Standby Router can assume to role of Primary Router.
A realtime example would be access to a service providers servers at a remote location. Lets say there are two distinct routes to the same server(s), each through individual routers. The clients on the internal network segment are configured to send the traffic through a gateway. The gateway being the HSRP Address. Then the Server is accessible through one service provider always (based on the active router). However, in a disaster situation when the active router goes down, the standby router assumes the active router role and continues to serve connection to the remote servers but using the other service provider. This way routing redundancy is provided to a remote resource.
To setup HSRP on a pair of routers,
From the Interface Configuration Mode add the IP Address of the Interface
hsrp-router1(config)# int fa0/0
hsrp-router1(config-if)# ip address 192.168.0.2 255.255.255.0
Set the Virtual IP Address
Sets the Virtual IP Address for the interface where "1" is the HSRP group and "18.104.22.168" is the Virtual IP for the HSRP group.
hsrp-router1(config-if)# standby 1 ip 192.168.0.1
This is required to make the router from being a Standby Router to an Active Router when it finds the Active Router is down or if it has become the higher priority router in the group
hsrp-router1(config-if)# standby 1 preempt
Set Router Priority
The default priority is "100". We set here as "110" to make the Router 1 as active.
hsrp-router1(config-if)# standby 1 priority 110
Set Authentication String
This is an optional plain text 8 character string that can be used in the multicast "hello" packets to authenticate the HSRP group.
hsrp-router1(config-if)# standby 1 authentication LocalLAN
Sets the time period between the "hello" packets and the hold time before assuming an active router is down. Default is 3seconds and 10 seconds respectively.
hsrp-router1(config-if)# standby 1 timers 5 15
If you track interface to check link status then the following command will track an interface and when the tracked link is down, the active router will mark its priority low so as to allow a Standby router to take over.
hsrp-router1(config-if)# standby 1 track se0/0
Repeat the procedure altering the IP Address of the Local interface and the priority and the tracked interface.
hsrp-router2(config)# int fa0/0
hsrp-router2(config-if)# ip address 192.168.0.3 255.255.255.0
hsrp-router2(config-if)# standby 1 ip 192.168.0.1
hsrp-router2(config-if)# standby 1 preempt
hsrp-router2(config-if)# standby 1 priority 100
hsrp-router2(config-if)# standby 1 authentication LocalLAN
hsrp-router2(config-if)# standby 1 timers 5 15
hsrp-router2(config-if)# standby 1 track se0/0
Thats it. HSRP configuration is complete. You may test the connectivity to a remote route and see for yourself the redudancy in place.