Today’s
topic is HSRP (Hot Standby Routing Protocol). HSRP is a Cisco
proprietary “First Hop Redundancy Protocol”. It is typically used for
redundancy at the first hop from a client segment. It is used with two
or more routers in a group who share a virtual IP address. One router
is active at a given time and will reply to ARP requests. In this
example, we have R1 and R2 in standby group 100 with a virtual IP of
192.168.100.1. This IP will be the default gateway for all hosts in VLAN
100. Here is the topology:
This
is a basic topology, both R1 and R2 have connections to the internet.
They are running HSRP on their FastEthernet 0/0 interfaces. Here’s the
basic HSRP config:
R1(config)#interface fa0/0 R1(config-if)#ip address 192.168.100.2 255.255.255.0 R1(config-if)#standby 100 ip 192.168.100.1 R2(config)#interface fa0/0 R2(config-if)#ip address 192.168.100.3 255.255.255.0 R2(config-if)#standby 100 ip 192.168.100.1 |
Very simple so far. We use the “standby [0-255] ip [virtual ip address]” command.
Let’s verify the config:
R1#sh standby
FastEthernet0/0 - Group 100
State is Active
2 state changes, last state change 00:20:19
Virtual IP address is 192.168.100.1
Active virtual MAC address is 0000.0c07.ac64
Local virtual MAC address is 0000.0c07.ac64 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 1.696 secs
Preemption disabled
Active router is local
Standby router is 192.168.100.3, priority 100 (expires in 8.980 sec)
Priority 100 (default 100)
Group name is "hsrp-Fa0/0-100" (default)
R2#sh standby
FastEthernet0/0 - Group 100
State is Standby
1 state change, last state change 00:19:40
Virtual IP address is 192.168.100.1
Active virtual MAC address is 0000.0c07.ac64
Local virtual MAC address is 0000.0c07.ac64 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.836 secs
Preemption disabled
Active router is 192.168.100.2, priority 100 (expires in 9.544 sec)
Standby router is local
Priority 100 (default 100)
Group name is "hsrp-Fa0/0-100" (default)
The
main command we’ll use with HSRP is “show standby”. It gives us quite a
bit of information, we see the group number (100), we see that R1 is
the active router in the group, we also see information about state
changes, the VIP, timers, other useful details, and priority, which
we’ll talk about next.
HSRP
routers use “priority” to determine which router should be active, the
default is 100. We’ll set R1′s priority to 110, forcing it to be the
active router. We will also use interface tracking, which tells the
router to decrement its priority if the tracked interface goes down.
Here we’ll track both routers’ Fa0/1 interfaces, which connect them to
the internet. We will also enable preemption, which will cause the
router with the highest priority to become active.
Here’s the config:
R1(config)#int fa0/0
R1(config-if)#standby 100 priority 110
R1(config-if)#standby 100 preempt
R1(config-if)#standby 100 track fa0/1 20
R2(config)#int fa0/0
R2(config-if)#standby 100 preempt
R2(config-if)#standby 100 track fa0/1 20
|
We’ve
configured R1 to decrement its priority by 20 if its fa0/1 interface
goes down, this will cause R2 to become active for the group.
Now we’ll test the config:
R1(config)#int fa0/1
R1(config-if)#shut
R1(config-if)#
*Mar 1 00:38:29.495: %TRACKING-5-STATE: 1 interface Fa0/1 line-protocol Up->Down
R1(config-if)#
*Mar 1 00:39:51.747: %HSRP-5-STATECHANGE: FastEthernet0/0 Grp 100 state Active -> Speak
R1(config-if)#
*Mar 1 00:40:01.747: %HSRP-5-STATECHANGE: FastEthernet0/0 Grp 100 state Speak -> Standby
R1(config-if)#^Z
R1#sh standby
FastEthernet0/0 - Group 100
State is Standby
4 state changes, last state change 00:00:45
Virtual IP address is 192.168.100.1
Active virtual MAC address is 0000.0c07.ac64
Local virtual MAC address is 0000.0c07.ac64 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.568 secs
Preemption enabled
Active router is 192.168.100.3, priority 100 (expires in 8.556 sec)
Standby router is local
Priority 90 (configured 110)
Track interface FastEthernet0/1 state Down decrement 20
Group name is "hsrp-Fa0/0-100" (default)
It
worked as expected. R2 transitioned to active for the group. When we
no shut R1′s fa0/1 interface, we should see it regain its active status
for the group.
Let’s verify:
R1(config)#int fa0/1
R1(config-if)#no shut
R1(config-if)#
*Mar 1 00:43:23.251: %TRACKING-5-STATE: 1 interface Fa0/1 line-protocol Down->Up
R1(config-if)#
*Mar 1 00:43:24.759: %HSRP-5-STATECHANGE: FastEthernet0/0 Grp 100 state Standby -> Active
R1(config-if)#^Z
R1#sh s
*Mar 1 00:44:03.479: %SYS-5-CONFIG_I: Configured from console by console
R1#sh standby
FastEthernet0/0 - Group 100
State is Active
5 state changes, last state change 00:00:41
Virtual IP address is 192.168.100.1
Active virtual MAC address is 0000.0c07.ac64
Local virtual MAC address is 0000.0c07.ac64 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.360 secs
Preemption enabled
Active router is local
Standby router is 192.168.100.3, priority 100 (expires in 8.376 sec)
Priority 110 (configured 110)
Track interface FastEthernet0/1 state Up decrement 20
Group name is "hsrp-Fa0/0-100" (default)
No surprise here, it’s back being the active router for standby group 100.
In
my experience, HSRP is very, very common. I’ve seen it used in nearly
every medium to large company I’ve worked with. I hope this post has
been helpful. :)