Cisco routers can dynamically react to changing network conditions using **IP SLA** and **Object Tracking**. These features are often used to influence **HSRP priorities**, **static routes**, or **routing protocol failover**.
## Basic Object Tracking
### Interface State Tracking
This monitors whether an interface is up at **Layer 1 (line-protocol)** or **Layer 3 (IP routing)**.
```none
track 100 interface GigabitEthernet0/0/0 line-protocol
```
**Use Case:** HSRP will **decrement priority** if the interface goes down.
```none
standby 1 track 100 decrement 10
```
If this tracked interface goes down, the HSRP group will reduce its priority, which may cause it to lose active status — allowing the standby router to take over.
### IP Routing Capability Tracking
This tracks if the interface has a working **IP routing path**, not just a physical link.
```none
track 101 interface GigabitEthernet0/0/0 ip routing
```
**Use Case:** Interface might be physically up, but not routing (e.g., downstream device failure). HSRP can still react based on IP reachability.
### Static Route Reachability Tracking
This tracks the presence of a route in the RIB (routing table).
```none
track 110 ip route 10.10.10.0/24 reachability
```
**Use Case:** If a static route disappears, HSRP will reduce priority, or a tracked static route will be withdrawn entirely.
## IP SLA Integration with Tracking
**IP SLA** generates synthetic probes (ping, TCP, UDP) to verify real-time availability of a remote destination.
### Example: ICMP Echo with Static Route Tracking
```none
ip sla 1
icmp-echo 8.8.8.8 source-ip 10.100.2.59
frequency 5
timeout 6000
ip sla schedule 1 start-time now life forever
```
Tie to tracking:
```none
track 1 ip sla 1
ip route 0.0.0.0 0.0.0.0 10.100.2.1 track 1
```
**Use Case:** If the router cannot reach 8.8.8.8, the static route to 10.100.2.1 is removed — preventing black-hole routing and enabling failover to a backup path.
### Example: TCP/UDP Port Availability Between Routers
#### R2 – Initiator
```none
ip sla 2
tcp-connect 10.100.1.1 80 source-ip 192.168.1.25 control disable
ip sla schedule 2 start-time now life forever
```
```none
ip sla 3
udp-connect 10.100.1.1 80 source-ip 192.168.1.25 control disable
ip sla schedule 3 start-time now life forever
```
#### R1 – Responder
```none
ip sla responder tcp-connect ip 10.100.2.1 port 80
ip sla responder udp-echo ip 10.100.2.1 port 80
```
**Use Case:** Track port-level availability of a remote server (e.g., web service). If the service fails, you can withdraw routes or reduce HSRP priority.
## Enhanced Object Tracking (Track Lists)
Track lists allow evaluating multiple objects together, providing more robust failure logic.
### Boolean Tracking (AND, OR, NOT)
```none
track 10 list boolean and
object 1
object 2 not
delay up 10 down 20
```
**Use Case with HSRP:**
```none
standby 1 track 10 decrement 20
```
HSRP priority is reduced only if **object 1 is down and object 2 is up**. This allows refined failover logic — e.g., only fail if a primary path fails but a backup stays up.
### Threshold Tracking – Weight
Objects contribute weighted values. The combined weight is compared against thresholds.
```none
track 20 list threshold weight
object 1 weight 60
object 2 weight 40
threshold weight up 70 down 30
delay up 5 down 10
```
**Use Case with Static Route:**
```none
ip route 0.0.0.0 0.0.0.0 10.100.2.1 track 20
```
- Route remains up if total object weight is ≥ 70
- Route is withdrawn if total drops below 30
This provides a **graded failover** strategy — useful when monitoring different link types (e.g., MPLS and Broadband).
### Threshold Tracking – Percentage
Objects are equally weighted; the logic uses percentage of **how many are up**.
```none
track 30 list threshold percentage
object 1
object 2
object 3
threshold percentage up 100 down 50
delay up 5 down 5
```
**Use Case with HSRP:**
```none
standby 1 track 30 decrement 15
```
- HSRP priority is reduced if fewer than 50% of monitored services are up
- All must be up to restore full status
## HSRP Application – Complete Examples
### Interface-Based HSRP Failover
```none
track 100 interface GigabitEthernet1/0/0 ip routing
interface GigabitEthernet0/0/0
ip address 10.1.0.21 255.255.0.0
standby 1 preempt
standby 1 ip 10.1.0.1
standby 1 priority 110
standby 1 track 100 decrement 10
```
**Use Case:** Fail HSRP over if routing is lost on the upstream interface.
### Route-Based HSRP Failover
```none
track 100 ip route 10.2.2.0/24 reachability
interface GigabitEthernet0/0/0
ip address 10.1.1.21 255.255.255.0
standby 1 preempt
standby 1 ip 10.1.1.1
standby 1 priority 110
standby 1 track 100 decrement 10
```
**Use Case:** Fail HSRP if a **remote site route** is lost due to upstream failure — even if local interfaces are still up.