How to Configure IP SLA (Service Level Agreement) on Cisco Routers for Network Performance Monitoring

How to Configure IP SLA (Service Level Agreement) on Cisco Routers

How to Configure IP SLA (Service Level Agreement) on Cisco Routers

There’s a particular kind of network outage that’s worse than a full link failure — the “it’s slow but not down” kind, where users complain and you have no hard data to point to. That’s exactly the problem IP SLA was built to solve, and once I started using it properly, half my “is it the network?” debates ended in minutes instead of hours because I finally had numbers instead of guesses. This guide walks through IP SLA from the ground up: what it measures, how to configure it, and how to actually use the data it gives you.

What IP SLA Is and Why It Exists

Cisco IOS IP SLA (formerly known as Service Assurance Agent, SAA) is a feature built into Cisco routers and switches that actively generates synthetic traffic to measure network performance metrics: latency, jitter, packet loss, availability, and even application-layer response times like HTTP or DNS. Unlike passive monitoring tools that only see traffic that already exists, IP SLA proactively probes the network on a schedule you define, which means you get consistent, comparable measurements over time — exactly what you need for capacity planning, SLA verification with an ISP, or triggering automatic failover.

Networking Fundamentals: How IP SLA Operations Work

An IP SLA configuration is built around a few core concepts:

Step 1: Basic ICMP Echo Operation

This is the simplest operation — essentially an automated, continuously logged ping.

Router(config)# ip sla 1
Router(config-ip-sla)# icmp-echo 203.0.113.1 source-interface GigabitEthernet0/1
Router(config-ip-sla-echo)# frequency 30
Router(config-ip-sla-echo)# timeout 5000
Router(config-ip-sla-echo)# exit

Router(config)# ip sla schedule 1 life forever start-time now

This probes 203.0.113.1 every 30 seconds from GigabitEthernet0/1, indefinitely.

Step 2: UDP Jitter Operation for Voice/Video Quality Monitoring

If you’re supporting VoIP or video conferencing, latency alone doesn’t tell the whole story — jitter and packet loss matter just as much. This requires an IP SLA Responder on the target device.

On the target router:

Router(config)# ip sla responder

On the source router:

Router(config)# ip sla 2
Router(config-ip-sla)# udp-jitter 10.1.2.1 16400 source-interface GigabitEthernet0/1
Router(config-ip-sla-jitter)# frequency 60
Router(config-ip-sla-jitter)# exit

Router(config)# ip sla schedule 2 life forever start-time now

Step 3: HTTP Operation for Application-Layer Monitoring

Router(config)# ip sla 3
Router(config-ip-sla)# http get http://10.1.3.10/health
Router(config-ip-sla-http)# frequency 120
Router(config-ip-sla-http)# exit

Router(config)# ip sla schedule 3 life forever start-time now

This is genuinely useful for confirming that an application isn’t just pingable but actually responding correctly at Layer 7.

Step 4: TCP Connect Operation

Useful for confirming a specific service port is reachable, without needing a full HTTP transaction.

Router(config)# ip sla 4
Router(config-ip-sla)# tcp-connect 10.1.4.5 443 source-interface GigabitEthernet0/1
Router(config-ip-sla-tcp)# frequency 30
Router(config-ip-sla-tcp)# exit

Router(config)# ip sla schedule 4 life forever start-time now

Step 5: Tying IP SLA to Object Tracking for Automatic Failover

This is where IP SLA earns its keep in production networks — using a probe result to drive routing decisions.

Router(config)# track 10 ip sla 1 reachability
Router(config-track)# delay down 10 up 5
Router(config-track)# exit

Router(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1 track 10
Router(config)# ip route 0.0.0.0 0.0.0.0 198.51.100.1 250

Here, the primary default route is installed only while track object 10 (backed by IP SLA operation 1) reports the primary gateway as reachable. If it fails, the route is withdrawn and the higher administrative-distance backup route takes over automatically — a clean, hardware-based failover mechanism that doesn’t rely on a routing protocol convergence process.

Step 6: Verifying IP SLA Operations

Router# show ip sla configuration 1
Router# show ip sla statistics 1
Router# show ip sla statistics aggregated 1
Router# show track 10

Expected output from show ip sla statistics 1:

IPSLAs Latest Operation Statistics

IPSLA operation id: 1
        Latest RTT: 24 milliseconds
Latest operation start time: 14:32:10 UTC Wed Jul 29 2026
Latest operation return code: OK
Number of successes: 118
Number of failures: 2
Operation time to live: Forever

And show track 10:

Track 10
  IP SLA 1, reachability
  Reachability is Up
    3 changes, last change 00:12:44
  Delay up 5 secs, down 10 secs

These two commands together tell you almost everything you need: is the target reachable, what’s the round-trip time trend, and is the tracked object currently influencing routing.

Practical Lab: Dual-ISP Failover with IP SLA

Build a lab with a branch router connected to two ISPs — a primary fiber link and a backup LTE/broadband link. Goal: automatically fail over the default route if the primary ISP’s gateway (or, better, a reliable upstream target like the ISP’s next hop or a public anycast address) becomes unreachable.

Router(config)# ip sla 1
Router(config-ip-sla)# icmp-echo 203.0.113.1 source-interface GigabitEthernet0/0
Router(config-ip-sla-echo)# frequency 10
Router(config-ip-sla-echo)# threshold 200
Router(config-ip-sla-echo)# timeout 1000
Router(config-ip-sla-echo)# exit
Router(config)# ip sla schedule 1 life forever start-time now

Router(config)# track 1 ip sla 1 reachability
Router(config-track)# delay down 6 up 10
Router(config-track)# exit

Router(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1 track 1
Router(config)# ip route 0.0.0.0 0.0.0.0 198.51.100.1 200

A frequency 10 with timeout 1000 gives you fast detection, while the delay down 6 on the track object avoids flapping on a single missed probe — a balance every good failover design needs.

Real-World Enterprise Scenario

At a retail company with dozens of branch sites, the network team needed hard evidence for an ISP SLA dispute over “guaranteed” latency and packet loss figures. Instead of relying on anecdotal complaints, they deployed IP SLA UDP jitter operations from every branch router to a central hub, logging statistics continuously and exporting them via SNMP to a monitoring platform. When the data consistently showed latency spikes exceeding the ISP’s contracted threshold during business hours, it became a documented, timestamped case rather than a subjective argument — and led to real compensation credits from the provider.

Security Best Practices

Optimization and Performance Tuning

Troubleshooting and Common Mistakes

Frequently Asked Questions

Does IP SLA generate real user traffic or synthetic traffic? Synthetic — it’s purpose-built probe traffic, not a sample of actual application traffic, though operation types like HTTP get can closely mimic real application behavior.

Can IP SLA run on switches, or only routers? Many Cisco Catalyst switches support IP SLA as well, though the available operation types can be more limited than on ISR/ASR routers depending on the platform and IOS/IOS-XE version.

How is IP SLA different from just scripting pings? IP SLA integrates natively with IOS features like Enhanced Object Tracking, SNMP MIBs, and historical statistics storage, and can measure things a simple ping can’t, like jitter, one-way delay (with proper time sync), and application-layer response codes.

What’s a reasonable probe frequency for a production WAN failover design? This depends on your tolerance for false positives versus detection speed, but many enterprises land between 5 and 15 seconds for critical failover links, paired with sensible track delay timers to avoid flapping.

Summary

IP SLA turns “I think the network is fine” into “here’s the measured latency, jitter, and packet loss over the last 24 hours.” Configuring it well means choosing the right operation type for what you’re actually trying to measure, scheduling it properly, and — when it matters most — tying it into Enhanced Object Tracking so your router can react automatically to real reachability and performance problems instead of just logging them. Once you have this running across your critical paths, performance conversations with ISPs, application teams, and management get a lot more grounded in fact.

References

Exit mobile version