Home > HSRP IP Route Tracking

HSRP IP Route Tracking

May 13th, 2020 Go to comments

In this article we will discuss about HSRP and do a lab on it.

Quick reminder about HSRP

+ Hot Standby Router Protocol (HSRP) is a Cisco proprietary protocol.
+ With HSRP, two or more devices support a virtual router with a fictitious MAC address and unique IP address
+ Hosts use this IP address as their default gateway and the MAC address for the Layer 2 header
+ The virtual router’s MAC address is 0000.0c07.ACxx , in which xx is the HSRP group. Multiple groups (virtual routers) are allowed.
+ The Active router forwards traffic. The Standby router is backup and monitors periodic hellos (multicast to 224.0.0.2,
UDP port 1985) to detect a failure of the active router.
+ The active router is chosen because it has the highest HSRP priority (default priority is 100). In case of a tie, the router
with the highest configured IP address wins the election
+ A new router with a higher priority does not cause an election unless it is configured to preempt.

HSRP States

+ Initial: HSRP is not running.
+ Learn: The router does not know the virtual IP address and is waiting to hear from the active router.
+ Listen: The router knows the IP and MAC of the virtual router, but it is not the active or standby router.
+ Speak: Router sends periodic HSRP hellos and participates in the election of the active router.
+ Standby: Router monitors hellos from active router and assumes responsibility if active router fails.
+ Active:Router forwards packets on behalf of the virtual router.

Load balancing traffic across two uplinks to two HSRP routers with a single HSRP group is not possible. The trick is to use two
HSRP groups:
+ One group assigns an active router to one switch.
+ The other group assigns another active router to the other switch.

(Reference: SWITCH official Certification Guide)

That is all for the boring HSRP theory, let do a lab to understand more about HSRP! We will use the topology below for this lab:

HSRP_Tracking_Topology.jpg

IOS used: c3640-jk9s-mz.124-16.bin

Tasks in this lab:

+ Configure IP addresses as shown and run EIGRP on R2, R3, R4
+ Configure HSRP: R2 is the Active HSRP while R3 is the Standby HSRP
+ Tracking route to 4.4.4.4, traffic should goes to R3 once the route to 4.4.4.4 is lost in R2 or the metric to R4’s loopback interface increases.

IP Address and EIGRP Configuration

R1 (configured as a host)
no ip routing
ip default-gateway 123.123.123.254 //This is the virtual IP of HSRP group
interface FastEthernet0/0
ip address 123.123.123.1 255.255.255.0
no shutdown
R2
interface FastEthernet0/0
ip address 123.123.123.2 255.255.255.0
no shutdown
!
interface FastEthernet1/0
ip address 24.24.24.2 255.255.255.0
no shutdown
!
router eigrp 1
network 24.0.0.0
network 123.0.0.0
R3
interface FastEthernet0/0
ip address 123.123.123.3 255.255.255.0
no shutdown
!
interface FastEthernet1/0
ip address 34.34.34.3 255.255.255.0
no shutdown
!
router eigrp 1
network 34.0.0.0
network 123.0.0.0
R4
interface Loopback0
ip address 4.4.4.4 255.255.255.0
!
interface FastEthernet0/0
ip address 24.24.24.4 255.255.255.0
no shutdown
!
interface FastEthernet1/0
ip address 34.34.34.4 255.255.255.0
no shutdown
!
router eigrp 1
network 4.0.0.0
network 24.0.0.0
network 34.0.0.0

HSRP Configuration

R2
interface FastEthernet0/0
standby 10 ip 123.123.123.254
standby 10 priority 200
standby 10 preempt
R3
interface FastEthernet0/0
standby 10 ip 123.123.123.254
standby 10 priority 150
standby 10 preempt

Note: The virtual IP address of HSRP group must be in the same subnet of the IP address on this interface (Fa0/0)

After entering above commands we will see R2 takes Active state after going from Speak to Standby:

%HSRP-5-STATECHANGE: FastEthernet0/0 Grp 10 state Speak -> Standby
*Mar 1 00:10:22.487: %HSRP-5-STATECHANGE: FastEthernet0/0 Grp 10 state Standby -> Active
*Mar 1 00:10:22.871: %SYS-5-CONFIG_I: Configured from console by console

The “show standby” command on R2 confirms its state:

HSRP_Tracking_R2_show_standby.jpg

Now R2 is in HSRP Active state with virtual MAC address of 00000c07.ac0a. Notice that the last two numbers of the MAC address (0a) is the HSRP group number in hexadecimal form (0a in hexa = 10 in decimal)

The “show standby” command on R3 reveals it is in Standby state:

HSRP_Tracking_R3_show_standby.jpg

Now we will see what happens if we turn off interface Fa0/0 on R2:
R2(config)#interface fa0/0
R2(config-if)#shutdown

HSRP_Tracking_R2_show_standby_interface_down.jpg

HSRP_Tracking_R3_show_standby_interface_R2_down.jpg

As we can see, the HSRP state of R2 went back to Init while the HSRP state of R3 moved to Active.

HSRP Tracking IP Route

In this part instead of tracking an interface going up or down we can track if the metric of a route to a destination changes or not. In particular we will try to track the route to the loopback interface of R4 (4.4.4.4). First we should check the routing table of R2:

HSRP_Tracking_R2_show_ip_route.jpg

We learn that the metric to the loopback interface of R4 (4.4.4.4) is 156160 and is summarized to 4.0.0.0/8 prefix because EIGRP summarizes route by default.

Now add tracking ip routing to R2

R2(config)#track 1 ip route 4.0.0.0 255.0.0.0 metric threshold
R2(config-track)#threshold metric up 61 down 62

and on interface fa0/0 add these commands to apply the track:

R2(config)#interface fa0/0
R2(config-if)#standby 10 track 1 decrement 60

The command track ip route metric threshold is used to track the metric change of a route. For example in this case the second command threshold metric up 61 down 62 specifies the low and high thresholds.

up: Specifies the up threshold. The state is up if the scaled metric for that route is less than or equal to the up threshold. The default up threshold is 254.
down: Specifies the down threshold. The state is down if the scaled metric for that route is greater than or equal to the down threshold. The default down threshold is 255.

Then, how do we indicate the up value should be 61 and down value should be 62? This is because EIGRP routes are scaled by means of 2560 so if we divide the EIGRP metric (156160 in this case) by 2560 we will get 61 (156160 / 2560 = 61). 2560 is the default metric resolution value for EIGRP and can be modified by the track resolution command (for example: track resolution ip route eigrp 400). The table below lists the metric resolution for popular routing protocols.

Routing protocol Metric Resolution
Static 10
EIGRP 2560
OSPF 1
RIP is scaled directly to the range from 0 to 255 because its maximum metric is less than 255

In this case if the metric for route to 4.0.0.0/8 in the routing table is less than or equal to 61 then the state is up. If the metric is greater or equal to 62, the state is down. We can verify if the track is working correctly by the show track command.

HSRP_Tracking_R2_show_track.jpg

When the state is Down, R2’s priority will be deduced by 60: 200 – 60 = 140 which is less than the priority of R3 (150) -> R3 will take the Active state of R2.

HSRP_Tracking_R2_show_standby_down_state.jpg

HSRP_Tracking_R3_show_track_no_route.jpg

A very important note we wish to mention here is: the route for tracking should be exactly same as displayed in the routing table or the track would go down because no route is found. For example if we try tracking the route to the more specific route 4.4.4.0/24 or 4.4.4.4/24 the track would go down because EIGRP summarizes route by default before advertising through another major network. Let’s try this!

R2(config)#no track 1 ip route 4.0.0.0 255.0.0.0 metric threshold
R2(config)#track 1 ip route 4.4.4.0 255.255.255.0 metric threshold
R2(config-track)#threshold metric up 61 down 62

Now check if the track is working or not:

HSRP_Tracking_R2_show_track_no_route.jpg

The track on R2 goes down so R2’s priority is reduced by 60 which causes R3 takes the Active state.

In this case if we wish to bring up the track route to 4.4.4.0/24 we just need to use the “no auto-summary” command on R4 which causes R4 to advertise the more specific route of 4.4.4.0/24.

R4(config)#router eigrp 1
R4(config-router)#no auto-summary

Now R4 advertises the detailed 4.4.4.0/24 network and it matches with our tracking process so the tracking process will go up.

HSRP_Tracking_R2_show_ip_route_no_auto-summary.jpg

HSRP_Tracking_R2_show_track_no_auto-summary.jpg

The GNS3 initial and final configs can be downloaded here:

Initial Configs: https://www.networktut.com/download/HSRP_initial.zip
Final Configs: https://www.networktut.com/download/HSRP_finalConfigs.zip

(Good reference: http://www.cisco.com/en/US/docs/ios/12_2sb/feature/guide/sbaiptrk.html)

Comments (10) Comments
  1. peternetworktutmember
    January 27th, 2020

    Great explanation, especially the metric/track resolution part!
    Big thanks!

  2. anyous
    May 21st, 2022

    thanks for a new method of track object that I never knew before

  3. Anonymous
    June 12th, 2022

    great

  4. Patty
    September 11th, 2022

    Has anyone seen an HSRP question in the ENARSI test? I have not seen HSRP as a study topic in the test blueprint. I saw it in ENCOR, but not ENARSI.

  5. Sr Incrible
    September 30th, 2022

    Is any has VCE player ?

  6. Sr Incrible
    September 30th, 2022

    Info.messus at gmail dot com

  7. Mathias Akin
    November 4th, 2022

    Where are you?

  8. Dumbwit
    December 26th, 2023

    the R1 should have a static or default route for this to work.
    @networktut please update.

  9. networktut
    December 27th, 2023

    @Dumbwit: R1 is disabled routing function (no ip routing) to mimic a host, not a router so we cannot configure a static or default route. So we used “ip default-gateway 123.123.123.254” command instead.
    If you don’t disable routing function then you need to configure a default route instead.

  10. Macho
    March 7th, 2024

    HSRP