Skip to content

4.2 Application-Aware Routing (AAR)

Document Information

Field Value
Document ID SDWAN-POL-4.2
Version 1.0
Last Updated December 2025
Author Network Architecture Team
Classification Internal Use

1. Executive Summary

Application-Aware Routing (AAR) enables intelligent path selection based on real-time network performance metrics. This section documents the AAR implementation for Abhavtech's SD-WAN deployment, including SLA class definitions, path selection algorithms, and fallback mechanisms.

1.1 AAR Architecture

+------------------------------------------------------------------+
|                    AAR ARCHITECTURE                               |
+------------------------------------------------------------------+
|                                                                   |
|  Application Traffic                                              |
|  +------------------+                                             |
|  | MS Teams Call    |                                             |
|  | App ID: ms-teams |                                             |
|  +--------+---------+                                             |
|           |                                                       |
|           v                                                       |
|  +------------------+     +------------------+                    |
|  | DPI Engine       |---->| App Classification|                   |
|  | (NBAR2)          |     | ms-teams detected |                   |
|  +------------------+     +--------+---------+                    |
|                                    |                              |
|                                    v                              |
|  +------------------+     +------------------+                    |
|  | App-Route Policy |<----| SLA Class Match  |                    |
|  | VOICE-SLA        |     | Latency < 150ms  |                    |
|  +--------+---------+     +------------------+                    |
|           |                                                       |
|           v                                                       |
|  +------------------+     +------------------+                    |
|  | BFD Probes       |---->| Path Health      |                    |
|  | Per Transport    |     | MPLS: OK         |                    |
|  +------------------+     | Internet: Degraded|                   |
|                           +--------+---------+                    |
|                                    |                              |
|                                    v                              |
|  +------------------+                                             |
|  | Path Selection   |                                             |
|  | Choose MPLS      |                                             |
|  +------------------+                                             |
|                                                                   |
+------------------------------------------------------------------+

1.2 Key Components

Component Function Configuration
NBAR2 Deep packet inspection Automatic
BFD Path health monitoring Per TLOC
SLA Class Performance thresholds Policy defined
App-Route Policy Application-to-SLA mapping Per VPN

2. SLA Class Definitions

2.1 Abhavtech SLA Classes

+------------------------------------------------------------------+
|                    SLA CLASS DEFINITIONS                          |
+------------------------------------------------------------------+
|                                                                   |
|  SLA Class         | Latency | Loss  | Jitter | Use Case         |
|  ------------------+---------+-------+--------+------------------|
|  VOICE-CRITICAL    | 100 ms  | 0.5%  | 20 ms  | Voice/UC         |
|  VIDEO-REALTIME    | 150 ms  | 1%    | 30 ms  | Video conferencing|
|  BUSINESS-CRITICAL | 200 ms  | 1%    | 50 ms  | SAP, ERP, CRM    |
|  BUSINESS-STANDARD | 300 ms  | 2%    | 100 ms | Email, file share|
|  BEST-EFFORT       | 500 ms  | 5%    | 200 ms | Internet, updates|
|                                                                   |
+------------------------------------------------------------------+

2.2 SLA Class Configuration

! SLA Class Definitions
policy
 sla-class VOICE-CRITICAL
  latency 100
  loss 0
  jitter 20
 !
 sla-class VIDEO-REALTIME
  latency 150
  loss 1
  jitter 30
 !
 sla-class BUSINESS-CRITICAL
  latency 200
  loss 1
  jitter 50
 !
 sla-class BUSINESS-STANDARD
  latency 300
  loss 2
  jitter 100
 !
 sla-class BEST-EFFORT
  latency 500
  loss 5
  jitter 200
 !
!

2.3 SLA Measurement

+------------------------------------------------------------------+
|                    BFD-BASED SLA MEASUREMENT                      |
+------------------------------------------------------------------+
|                                                                   |
|  BFD Probe Configuration:                                         |
|  +----------------------------------------------------------+    |
|  | Parameter          | Value        | Description          |    |
|  +----------------------------------------------------------+    |
|  | Hello Interval     | 1000 ms      | Probe frequency      |    |
|  | Poll Interval      | 600000 ms    | SLA calculation      |    |
|  | Multiplier         | 6            | Failure detection    |    |
|  | App Probe Class    | All SLAs     | Per-SLA probing      |    |
|  +----------------------------------------------------------+    |
|                                                                   |
|  Measurement Window:                                              |
|  - Rolling 10-minute average                                      |
|  - Updated every poll interval                                    |
|  - Exponential weighted moving average                            |
|                                                                   |
+------------------------------------------------------------------+

3. Application Classification

3.1 Application Lists

! Voice Applications
policy
 lists
  app-list VOICE-APPS
   app cisco-jabber
   app cisco-phone
   app cisco-webex-calling
   app ms-teams-audio
   app zoom-audio
   app sip
   app rtp
   app rtcp
  !

  ! Video Applications
  app-list VIDEO-APPS
   app ms-teams-video
   app cisco-webex-video
   app zoom-video
   app youtube
   app vimeo
  !

  ! Business Critical Applications
  app-list BUSINESS-CRITICAL-APPS
   app salesforce
   app sap
   app oracle-db
   app ms-office-365
   app ms-sharepoint
   app servicenow
  !

  ! Collaboration Applications
  app-list COLLABORATION-APPS
   app ms-teams
   app cisco-webex
   app slack
   app zoom
  !

  ! Low Priority Applications
  app-list LOW-PRIORITY-APPS
   app bittorrent
   app windows-update
   app apple-update
   app dropbox
   app box
  !
 !
!

3.2 Custom Application Signatures

! Custom Application for Internal Apps
policy
 lists
  app-list INTERNAL-APPS
   app-family custom
  !
 !
!

! Define Custom Application on WAN Edge
app-hosting appid ABHAV-ERP
 app-resource profile custom
 name-server 10.254.1.20

policy-map type inspect match-first ABHAV-APPS
 class type inspect ABHAV-ERP
  match protocol http host "*.erp.abhavtech.com"
  match protocol https host "*.erp.abhavtech.com"
!

4. App-Route Policy Design

4.1 Complete App-Route Policy

! Abhavtech App-Route Policy
policy
 app-route-policy AAR-POLICY
  vpn-list VPN-10-EMPLOYEE
   ! Voice - Strictest SLA
   sequence 10
    match
     app-list VOICE-APPS
    !
    action
     sla-class VOICE-CRITICAL strict
     !
     backup-sla-preferred-color mpls
    !
   !

   ! Video - Real-time SLA
   sequence 20
    match
     app-list VIDEO-APPS
    !
    action
     sla-class VIDEO-REALTIME strict
     !
     backup-sla-preferred-color mpls biz-internet
    !
   !

   ! Business Critical - High SLA
   sequence 30
    match
     app-list BUSINESS-CRITICAL-APPS
    !
    action
     sla-class BUSINESS-CRITICAL
     !
     backup-sla-preferred-color mpls
    !
   !

   ! Collaboration - Medium SLA
   sequence 40
    match
     app-list COLLABORATION-APPS
    !
    action
     sla-class VIDEO-REALTIME
    !
   !

   ! Low Priority - Best Effort
   sequence 50
    match
     app-list LOW-PRIORITY-APPS
    !
    action
     sla-class BEST-EFFORT
     !
     backup-sla-preferred-color biz-internet lte
    !
   !

   ! Default - Standard SLA
   default-action
    sla-class BUSINESS-STANDARD
   !
  !
 !
!

4.2 SLA Action Modes

+------------------------------------------------------------------+
|                    SLA ACTION MODES                               |
+------------------------------------------------------------------+
|                                                                   |
|  MODE: STRICT                                                     |
|  +----------------------------------------------------------+    |
|  | - Traffic ONLY sent if SLA is met                         |   |
|  | - If no path meets SLA, traffic is DROPPED                |   |
|  | - Use for voice/video where quality > availability        |   |
|  +----------------------------------------------------------+    |
|                                                                   |
|  MODE: FALLBACK (Default)                                         |
|  +----------------------------------------------------------+    |
|  | - Try paths meeting SLA first                             |   |
|  | - If none available, use best available path              |   |
|  | - Balances quality and availability                       |   |
|  +----------------------------------------------------------+    |
|                                                                   |
|  MODE: PREFERRED COLOR                                            |
|  +----------------------------------------------------------+    |
|  | - Prefer specific transport colors                        |   |
|  | - Used with backup-sla-preferred-color                    |   |
|  | - Fallback order: preferred colors → any path             |   |
|  +----------------------------------------------------------+    |
|                                                                   |
+------------------------------------------------------------------+

5. Path Selection Algorithm

5.1 Path Selection Process

+------------------------------------------------------------------+
|                   PATH SELECTION ALGORITHM                        |
+------------------------------------------------------------------+
|                                                                   |
|  Step 1: Application Identification                               |
|  +----------------------------------------------------------+    |
|  | NBAR2 inspects packet → Identifies application           |    |
|  +----------------------------------------------------------+    |
|                            |                                      |
|                            v                                      |
|  Step 2: Policy Matching                                          |
|  +----------------------------------------------------------+    |
|  | Match app-route-policy sequence → Get SLA class          |    |
|  +----------------------------------------------------------+    |
|                            |                                      |
|                            v                                      |
|  Step 3: Path Evaluation                                          |
|  +----------------------------------------------------------+    |
|  | For each available TLOC:                                  |    |
|  |   - Check BFD metrics (latency, loss, jitter)            |    |
|  |   - Compare against SLA thresholds                       |    |
|  |   - Mark as SLA-compliant or non-compliant               |    |
|  +----------------------------------------------------------+    |
|                            |                                      |
|                            v                                      |
|  Step 4: Path Ranking                                             |
|  +----------------------------------------------------------+    |
|  | Rank compliant paths by:                                  |    |
|  |   1. Color preference (if configured)                    |    |
|  |   2. Lowest latency                                      |    |
|  |   3. Highest bandwidth                                   |    |
|  +----------------------------------------------------------+    |
|                            |                                      |
|                            v                                      |
|  Step 5: Path Selection                                           |
|  +----------------------------------------------------------+    |
|  | Select best path or ECMP load balance                    |    |
|  +----------------------------------------------------------+    |
|                                                                   |
+------------------------------------------------------------------+

5.2 Path Selection Example

! Example: Voice call from Mumbai to Chennai

Available Paths:
+----------------------------------------------------------+
| Path        | Latency | Loss  | Jitter | SLA Met | Rank  |
+----------------------------------------------------------+
| MPLS        | 45 ms   | 0.1%  | 8 ms   | Yes     | 1     |
| Internet    | 85 ms   | 0.5%  | 15 ms  | Yes     | 2     |
| LTE         | 120 ms  | 1.2%  | 35 ms  | No*     | -     |
+----------------------------------------------------------+
* LTE exceeds jitter threshold (20ms) for VOICE-CRITICAL

Result: Traffic sent via MPLS (best compliant path)

! If MPLS degrades:
+----------------------------------------------------------+
| Path        | Latency | Loss  | Jitter | SLA Met | Rank  |
+----------------------------------------------------------+
| MPLS        | 150 ms  | 2%    | 45 ms  | No      | -     |
| Internet    | 90 ms   | 0.8%  | 18 ms  | Yes     | 1     |
| LTE         | 110 ms  | 1.0%  | 22 ms  | No      | -     |
+----------------------------------------------------------+

Result: Traffic fails over to Internet automatically

6. Fallback and Failover

6.1 Fallback Behavior

! Fallback Configuration Options
policy
 app-route-policy AAR-WITH-FALLBACK
  vpn-list VPN-10-EMPLOYEE
   sequence 10
    match
     app-list VOICE-APPS
    !
    action
     ! Option 1: Strict (drop if no SLA)
     sla-class VOICE-CRITICAL strict

     ! Option 2: Fallback to preferred colors
     ! sla-class VOICE-CRITICAL
     ! backup-sla-preferred-color mpls biz-internet

     ! Option 3: Fallback to any path
     ! sla-class VOICE-CRITICAL fallback-to-best-path
    !
   !
  !
 !
!

6.2 Failover Timing

Event Detection Time Failover Time Total
BFD Failure 6 seconds < 1 second ~7 seconds
SLA Degradation 10-60 seconds < 1 second ~60 seconds
Transport Down Immediate < 1 second < 2 seconds

6.3 Graceful Failback

! Prevent flapping with dampening
policy
 sla-class VOICE-CRITICAL
  latency 100
  loss 0
  jitter 20
  ! Implicit dampening prevents rapid oscillation
 !
!

! BFD configuration for stability
bfd default-dscp 48
bfd app-route multiplier 6
bfd app-route poll-interval 600000

7. Transport Preferences

7.1 TLOC Lists

! Transport Preference Lists
policy
 lists
  ! MPLS Preferred for Voice/Business
  tloc-list MPLS-PREFERRED
   tloc 10.100.1.1 color mpls encap ipsec preference 1000
   tloc 10.100.1.1 color biz-internet encap ipsec preference 500
   tloc 10.100.1.1 color lte encap ipsec preference 100
  !

  ! Internet Preferred for General
  tloc-list INTERNET-PREFERRED
   tloc 10.100.1.1 color biz-internet encap ipsec preference 1000
   tloc 10.100.1.1 color mpls encap ipsec preference 500
   tloc 10.100.1.1 color lte encap ipsec preference 100
  !

  ! LTE Only for Backup
  tloc-list LTE-BACKUP
   tloc 10.100.1.1 color lte encap ipsec preference 100
  !
 !
!

7.2 Color Restrict

! Restrict traffic to specific colors
policy
 data-policy COLOR-RESTRICT
  vpn-list VPN-40-VOICE
   sequence 10
    match
     app-list VOICE-APPS
    !
    action accept
     set
      ! Only use MPLS for voice
      local-tloc color mpls
     !
    !
   !
  !
 !
!

8. Monitoring and Verification

8.1 Verification Commands

! Verify SLA class definitions
show sdwan policy sla-class

! Verify app-route policy
show sdwan policy app-route-policy-filter

! Verify path health per application
show sdwan app-route statistics

! Verify BFD sessions
show sdwan bfd sessions

! Real-time path selection
show sdwan app-route sla-class name VOICE-CRITICAL

! Application statistics
show sdwan app-fwd cflowd flow-count

8.2 AAR Dashboard Metrics

+------------------------------------------------------------------+
|                    AAR MONITORING DASHBOARD                       |
+------------------------------------------------------------------+
|                                                                   |
|  SLA Compliance by Application:                                   |
|  +----------------------------------------------------------+    |
|  | Application      | SLA Class      | Compliance | Trend   |   |
|  +----------------------------------------------------------+    |
|  | Voice (Teams)    | VOICE-CRITICAL | 99.8%      | ↑       |   |
|  | Video (WebEx)    | VIDEO-REALTIME | 98.5%      | →       |   |
|  | SAP              | BIZ-CRITICAL   | 99.2%      | ↑       |   |
|  | O365             | BIZ-STANDARD   | 99.9%      | →       |   |
|  +----------------------------------------------------------+    |
|                                                                   |
|  Path Utilization:                                                |
|  +----------------------------------------------------------+    |
|  | Transport | Traffic (Gbps) | SLA Met | Latency (avg)     |   |
|  +----------------------------------------------------------+    |
|  | MPLS      | 4.2            | 99.5%   | 42 ms             |   |
|  | Internet  | 2.8            | 97.2%   | 78 ms             |   |
|  | LTE       | 0.3            | 94.1%   | 125 ms            |   |
|  +----------------------------------------------------------+    |
|                                                                   |
+------------------------------------------------------------------+

9. Best Practices Summary

9.1 SLA Class Design

  • Define 4-6 SLA classes covering all application tiers
  • Set realistic thresholds based on transport capabilities
  • Use strict mode only for truly critical applications
  • Test SLA thresholds in lab before production

9.2 App-Route Policy Design

  • Group similar applications for policy efficiency
  • Use default-action for unclassified traffic
  • Order sequences from most to least specific
  • Document application-to-SLA mappings

9.3 Operational Best Practices

  • Monitor SLA compliance daily
  • Tune thresholds based on observed performance
  • Regular review of path selection decisions
  • Alert on persistent SLA violations

References

Document Description Location
Cisco AAR Deployment Guide Official AAR documentation cisco.com
NBAR2 Protocol Pack Application signatures cisco.com
Abhavtech SLA Policy Internal SLA requirements SharePoint

Document Version: 1.0 Last Updated: December 2025 Classification: Internal Use Document ID: SDWAN-POL-4.2