This article will discuss Cisco’s Enhanced Object Tracking (EOT) feature.

First we will start with some introductory information about EOT and then we will see a few examples of how it can be used in conjunction with HSRP.

EOT is a Cisco feature that allows objects to be tracked. Clients would then perform actions based on the state of these objects. The most common clients are HSRP, VRRP, GLBP and IP SLA (IP Service Level Agreement).

CCNA Training – Resources (Intense)

Each tracked object has its own unique number. Clients track the object by referencing this number.

Each object is polled regularly by the tracking process to see if there is any status change. If there is one, then it is communicated to the clients. The delay between status change and the time when it is communicated to the clients can be either zero or a configured value. The value of the object can be either up or down.

These are the basic features of EOT:

  • Interface state tracking where an IP routing object is up when the line-protocol of the interface is up or the IP address is known or when IP routing is enabled on that interface.
  • IP route tracking where an IP route tracking object is up when you have a route in the routing table.

Because this is an ‘enhanced’ version, you have a few interesting features available, like threshold tracking or Boolean tracking, which are applicable to a list of tracked objects.

For instance, you could use:

  • AND operation where both tracked objects from the list have to be up so that the list of tracked objects will be up.
  • OR operation where at least one object from the list has to be up so that the list of tracked objects will be up.
  • Threshold values where the objects from the list have a weight assigned and you could bring the list up or down if the overall list weight is above or below a configured value.

The benefits of EOT are:

  • Faster network fault detection
  • Decreases the length of outage
  • Allows other FHRP, other than HSRP and IP SLA, to use object tracking

Because HSRP was the initial intended beneficiary of object tracking, let’s use HSRP and see how we can benefit from enhanced object tracking.

This is our topology:

For reachability purposes, OSPF is running on all three routers and the host can ping R3.

1.1.1.1/32 subnet is configured on R3 and we will track the presence of the route in the routing table in our examples.

Because this is strongly connected to HSRP, we will HSRP as a mechanism to demonstrate the track feature. Right now, R1 is the active router and R2 is the standby:

R1#show standby

FastEthernet0/0 - Group 1
State is Active
2 state changes, last state change 00:56:57
Virtual IP address is 10.10.12.3
Active virtual MAC address is 0000.0c07.ac01
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.984 secs
Authentication text "cisco-hs"
Preemption enabled
Active router is local
Standby router is 10.10.12.2, priority 100 (expires in 7.444 sec)
Priority 105 (configured 105)
IP redundancy name is "HSRP_GROUP" (cfgd)

R1#

The most common usage of EOT is to detect if an interface is down and then take an action.

For instance, in our topology, we want to make R2 the HSRP active router if the F1/0 interface on R1 goes down. This configuration has to be applied on R1:

track 101 interface FastEthernet1/0 line-protocol

And under F0/0, we need to inform HSRP that it should decrement the priority in case the trackobject is down:

interface FastEthernet0/0
ip address 10.10.12.1 255.255.255.0
duplex auto
speed auto
standby 1 ip 10.10.12.3
standby 1 priority 105
standby 1 preempt
standby 1 authentication cisco-hs
standby 1 name HSRP_GROUP
standby 1 track 101 decrement 15
end

Let’s check the status of the track object and confirm that it’s ‘Up’:

R1#show track

Track 101
Interface FastEthernet1/0 line-protocol
Line protocol is Up
1 change, last change 00:02:03
Tracked by:
HSRP FastEthernet0/0 1

R1#

Now, let’s bring down F1/0 on R1, confirm that the track object is down and that HSRP priority on R1 dropped to 90.

Interface is down:

R1#

*Mar 1 01:02:53.419: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/0, changed state to down

R1#

The track is down:

R1#show track

Track 101
Interface FastEthernet1/0 line-protocol
Line protocol is Down (hw admin-down)
2 changes, last change 00:01:13
Tracked by:
HSRP FastEthernet0/0 1

R1#

The HSRP priority is 90 and R1 is now the standby router:

R1#show standby

FastEthernet0/0 - Group 1
State is Standby
4 state changes, last state change 00:01:21
----- CUT HERE -----
Active router is 10.10.12.2, priority 100 (expires in 8.680 sec)
Standby router is local
Priority 90 (configured 105)
Track object 101 state Down decrement 15
IP redundancy name is "HSRP_GROUP" (cfgd)

R1#

As you can see, the tracked object, 101, is down and the action is to decrement the priority down to 90 from the configured one, 105.

Another usage of track object is to take action if you have reachability to a route. For instance, R1 should decrement HSRP priority if the 1.1.1.1/32 route is no longer in its routing table:

R1#show ip route | i 1.1.1
O 1.1.1.1 [110/2] via 10.10.13.3, 00:00:32, FastEthernet1/0
R1#

This is how the track object should be configured:

track 102 ip route 1.1.1.1 255.255.255.255 reachability

Of course, this has to be referenced under F0/0 on R1 like we referenced the previous track object.

The track object is up and R1 is the active HSRP router:

R1#show track

Track 102
IP route 1.1.1.1 255.255.255.255 reachability
Reachability is Up (OSPF)
1 change, last change 00:01:52
First-hop interface is FastEthernet1/0
Tracked by:
HSRP FastEthernet0/0 1
R1#show standby
FastEthernet0/0 - Group 1
State is Active
5 state changes, last state change 00:03:42
----- CUT HERE -----
Active router is local
Standby router is 10.10.12.2, priority 100 (expires in 7.808 sec)
Priority 105 (configured 105)
Track object 102 state Up decrement 15
IP redundancy name is "HSRP_GROUP" (cfgd)

R1#

I made R3 to stop advertising 1.1.1.1/32 route in OSPF, hence the route is no longer in R1 routing table. Therefore the track object should be down:

R1#show ip route | i 1.1.1

R1#show track
Track 102
IP route 1.1.1.1 255.255.255.255 reachability
Reachability is Down (no route)
2 changes, last change 00:01:44
First-hop interface is unknown
Tracked by:
HSRP FastEthernet0/0 1

R1#

As one could imagine, R1 is the standby router now:

R1#show standby

FastEthernet0/0 - Group 1
State is Standby
7 state changes, last state change 00:02:08
----- CUT HERE -----
Active router is 10.10.12.2, priority 100 (expires in 9.100 sec)
Standby router is local
Priority 90 (configured 105)
Track object 102 state Down decrement 15
IP redundancy name is "HSRP_GROUP" (cfgd)

R1#

Another example of track object usage is that you can track a list of objects. More than that, you have the option to apply logic operations, AND and/or OR.

For instance, the 1.1.1.1/32 route is accessible via F1/0 from R1, but also through F2/0. Because of the lower OSPF cost, only the route through F1/0 is installed in the routing table.

Consider the first example, where we lowered the HSRP priority when the interface f1/0 is down. Because you have multiple paths to reach 1.1.1.1/32, there is no point to do this except when all your upstream interfaces are down.

This means that the track object will be up if F1/0 OR F2/0 is up.

Let’s see how this looks:

track 1 interface FastEthernet1/0 line-protocol
!
track 2 interface FastEthernet2/0 line-protocol
!
track 103 list boolean or
object 1
object 2

The above configuration should be read like so: if either F1/0 or F2/0 is up, then the track object 103 is up. You are referencing this track object under HSRP configuration:

R1#show running-config int f0/0
Building configuration...

Current configuration : 259 bytes
!
interface FastEthernet0/0
ip address 10.10.12.1 255.255.255.0
duplex auto
speed auto
standby 1 ip 10.10.12.3
standby 1 priority 105
standby 1 preempt
standby 1 authentication cisco-hs
standby 1 name HSRP_GROUP
standby 1 track 103 decrement 15
end

R1#

The track object is up:

R1#show track

Track 1
Interface FastEthernet1/0 line-protocol
Line protocol is Up
1 change, last change 00:02:36
Track 2
Interface FastEthernet2/0 line-protocol
Line protocol is Up
1 change, last change 00:02:29
Track 103
List boolean or
Boolean OR is Up
2 changes, last change 00:02:36
object 1 Up
object 2 Up
Tracked by:
HSRP FastEthernet0/0 1

R1#

Now, let’s bring F1/0 down and check the track object again to confirm it’s still up:

R1#show track

Track 1
Interface FastEthernet1/0 line-protocol
Line protocol is Down (hw admin-down)
2 changes, last change 00:00:07
Track 2
Interface FastEthernet2/0 line-protocol
Line protocol is Up
1 change, last change 00:03:19
Track 103
List boolean or
Boolean OR is Up
2 changes, last change 00:03:26
object 1 Down
object 2 Up
Tracked by:
HSRP FastEthernet0/0 1

R1#

Let’s bring down the other interface as well and confirm if the track object is now down and the HSRP priority is 90:

R1#show track

Track 1
Interface FastEthernet1/0 line-protocol
Line protocol is Down (hw admin-down)
2 changes, last change 00:00:58
Track 2
Interface FastEthernet2/0 line-protocol
Line protocol is Down (hw admin-down)
2 changes, last change 00:00:08
Track 103
List boolean or
Boolean OR is Down
3 changes, last change 00:00:08
object 1 Down
object 2 Down
Tracked by:
HSRP FastEthernet0/0 1
R1#show standby
FastEthernet0/0 - Group 1
State is Standby
10 state changes, last state change 00:00:03
----- CUT HERE -----
Active router is 10.10.12.2, priority 100 (expires in 8.700 sec)
Standby router is local
Priority 90 (configured 105)
Track object 103 state Down decrement 15
IP redundancy name is "HSRP_GROUP" (cfgd)

R1#

Another interesting way of using track object is to assign a weight to other objects. Based on the weights assigned to those objects and their status, you can use the track to decrement the priority of HSRP.

For example, let’s say that you want to track the status of F1/0, F2/0 and the presence of 1.1.1.2/32 in the routing table. Each status has an object assigned with the same weight.

You would like to bring down the main track object if all of the sub-objects are down, but in case that at least two of them are up, then bring up the main track object.

Let’s see the example:

track 3 ip route 1.1.1.1 255.255.255.255 reachability
!
track 4 interface FastEthernet1/0 line-protocol
!
track 5 interface FastEthernet2/0 line-protocol
!
track 104 list threshold weight
object 3 weight 15
object 4 weight 15
object 5 weight 15
threshold weight up 30
!

The track object 104 is up:

R1#show track

Track 3
IP route 1.1.1.1 255.255.255.255 reachability
Reachability is Up (OSPF)
1 change, last change 00:00:42
First-hop interface is FastEthernet1/0
Tracked by:
Track-list 104
Track 4
Interface FastEthernet1/0 line-protocol
Line protocol is Up
1 change, last change 00:00:42
Tracked by:
Track-list 104
Track 5
Interface FastEthernet2/0 line-protocol
Line protocol is Up
1 change, last change 00:00:42
Tracked by:
Track-list 104
Track 104
List threshold weight
Threshold Weight is Up (45/45)
2 changes, last change 00:00:26
object 3 weight 15 Up (15/45)
object 4 weight 15 Up (15/45)
object 5 weight 15 Up (15/45)
Threshold weight down 0 up 30
Tracked by:
HSRP FastEthernet0/0 1

R1#

Let’s bring down F1/0 and F2/0 and check object 104:

R1#show track 104

Track 104
List threshold weight
Threshold Weight is Up (15/45)
2 changes, last change 00:05:32
object 3 weight 15 Up (15/45)
object 4 weight 15 Down (0/45)
object 5 weight 15 Down (0/45)
Threshold weight down 0 up 30
Tracked by:
HSRP FastEthernet0/0 1

R1#

It’s still up, with a weight of 15.

But if we are going to remove 1.1.1.1/32 from the routing table, then the object 104 will be down. To bring it up, we don’t need only one sub object up (this will be a weight of 15), but we need at least two to be up (because we configured like this: ‘up 30’).

I brought down 104 by removing 1.1.1.1/32 from the routing table and added it back. We have 15/45 weight, but the object 104 is still down:

R1#show track 104

Track 104
List threshold weight
Threshold Weight is Down (15/45)
3 changes, last change 00:00:54
object 3 weight 15 Up (15/45)
object 4 weight 15 Down (0/45)
object 5 weight 15 Down (0/45)
Threshold weight down 0 up 30
Tracked by:
HSRP FastEthernet0/0 1

R1#

The object 104 will only be up when we have at least a weight of 30 and this means that at least two objects from the list have to be up.

And with this being said, we reached the end of the article. I hope you found this article very interesting.

Now it’s up to you to find how you can benefit from EOT to speed up network fault detection and network recovery.

By reaching the end of the article, you should know what EOT is and how it can be beneficial for your network. Also, you should know how to configure most of its features.

References: