Cisco SD-WAN (Viptela) Overview
Traditional WAN architectures built on MPLS circuits, router-by-router CLI configuration, and static policy-based routing have struggled to keep pace with the demands of modern enterprises: cloud-first applications, direct internet breakout, multiple transport types (MPLS, broadband, 4G/5G), and the need to change routing policy across hundreds of branch sites in minutes rather than weeks. Cisco SD-WAN, built on the Viptela technology acquired by Cisco in 2017, addresses all of these requirements through a clean separation of the management, control, and data planes — each managed by a dedicated component with a well-defined role. For a high-level overview see SD-WAN Overview and Controller-Based Networking. For traditional WAN background see WAN and WAN Technologies.
At its core, Cisco SD-WAN is an overlay WAN fabric: the physical transport (MPLS, internet, LTE) forms the underlay, and an encrypted IPsec tunnel mesh — the overlay — is built on top of it. All routing intelligence lives in the centralised controller (vSmart), all configuration and policy management lives in the orchestration platform (vManage), authentication and NAT traversal are handled by vBond, and all actual data forwarding is performed by the branch and data centre routers (vEdge or cEdge). The result is a WAN where every routing and forwarding decision is policy-driven, topology-aware, and centrally visible — with zero-touch provisioning (ZTP) allowing new branch sites to come online automatically without on-site engineering.
This lab covers the SD-WAN architecture in full — the role of each component, the control-plane and data-plane protocols (OMP, DTLS/TLS, BFD, IPsec), the onboarding process for a vEdge router, VPN segmentation, and how to build and apply an application-aware routing policy that steers voice traffic to the low-latency MPLS path and bulk data to the broadband path. For the underlying IPsec concepts used in the SD-WAN data plane, see Site-to-Site IPsec VPN and IPsec Basics. For VRF segmentation concepts that map to SD-WAN VPNs, see VRF-Lite Configuration. For policy-based routing concepts that SD-WAN application-aware routing extends, see Policy-Based Routing. For DMVPN — the predecessor overlay technology — see DMVPN Phase 1, 2 & 3. For NETCONF/YANG that underpins vManage's device template push, see NETCONF & RESTCONF Overview and JSON, XML & YANG.
1. SD-WAN Architecture — The Four Planes
┌─────────────────────────────────────────────────────────────────┐
│ MANAGEMENT PLANE │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ vManage (NMS / Orchestration) │ │
│ │ • Single pane of glass GUI and REST API │ │
│ │ • Pushes device templates, feature templates, policies │ │
│ │ • Real-time monitoring, alarms, flow analytics │ │
│ │ • Certificate authority and device certificate mgmt │ │
│ │ • Communicates to controllers and vEdges via NETCONF │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│ NETCONF/HTTPS │ NETCONF
▼ ▼
┌──────────────────────┐ ┌──────────────────────────────┐
│ CONTROL PLANE │ │ ORCHESTRATION PLANE │
│ ┌────────────────┐ │ │ ┌────────────────────────┐ │
│ │ vSmart │ │ │ │ vBond │ │
│ │ (Controller) │ │ │ │ (Orchestrator) │ │
│ │ │ │ │ │ │ │
│ │ • Runs OMP │ │ │ │ • First point of │ │
│ │ • Receives │ │ │ │ contact for vEdge │ │
│ │ TLOC routes │ │ │ │ at ZTP boot │ │
│ │ from vEdges │ │ │ │ • Authenticates │ │
│ │ • Computes │ │ │ │ vEdge certificate │ │
│ │ best path │ │ │ │ • Provides vSmart │ │
│ │ • Distributes │ │ │ │ and vManage IP │ │
│ │ routes & │ │ │ │ addresses to vEdge │ │
│ │ policies │ │ │ │ • Facilitates NAT │ │
│ │ to vEdges │ │ │ │ traversal for vEdge │ │
│ │ • DTLS/TLS │ │ │ │ behind NAT │ │
│ │ to vEdges │ │ │ └────────────────────────┘ │
│ └────────────────┘ │ └──────────────────────────────┘
└──────────────────────┘
│ OMP (DTLS/TLS port 12346)
│ Policy distribution
▼
┌─────────────────────────────────────────────────────────────────┐
│ DATA PLANE │
│ ┌──────────────┐ BFD+IPsec ┌──────────────┐ │
│ │ vEdge/cEdge │◄─────────────►│ vEdge/cEdge │ (per site) │
│ │ Branch A │ │ Branch B │ │
│ │ │ Data tunnels │ │ │
│ │ • Forwards │ (UDP 12346) │ • Forwards │ │
│ │ packets │ │ packets │ │
│ │ • IPsec │ │ • IPsec │ │
│ │ encrypt │ │ encrypt │ │
│ │ • BFD path │ │ • BFD path │ │
│ │ monitoring│ │ monitoring│ │
│ │ • App-aware │ │ • App-aware │ │
│ │ routing │ │ routing │ │
└──┴──────────────┴───────────────┴──────────────┴──────────────┘
The Four SD-WAN Components
| Component | Plane | Primary Role | Protocols Used | Deployment |
|---|---|---|---|---|
| vManage | Management | Centralised configuration, monitoring, policy management, and orchestration GUI. The single pane of glass for the entire SD-WAN fabric. All configuration changes originate here and are pushed to vSmart and vEdge devices via NETCONF. Provides REST API for automation. Hosts the certificate authority for device authentication | NETCONF (to vSmart and vEdge — see NETCONF & RESTCONF Overview), HTTPS (GUI and REST API), SNMP (southbound monitoring — see SNMP v2c/v3 Configuration) | On-premises VM (ESXi, KVM) or Cisco cloud-hosted. Typically deployed as a cluster of three vManage nodes for HA |
| vSmart | Control | The SD-WAN routing controller. Runs OMP (Overlay Management Protocol) with all vEdge routers. Receives TLOC route advertisements from vEdges, computes optimal paths, and distributes routes and policies back to vEdges. Does NOT forward any data-plane traffic — it is a pure control-plane device | OMP over DTLS/TLS (port 12346 to vEdges), NETCONF (from vManage) | On-premises VM or cloud. Multiple vSmart controllers provide redundancy — each vEdge connects to all vSmarts simultaneously |
| vBond | Orchestration | The initial contact point for a new vEdge device. When a vEdge boots for the first time, it contacts vBond using a pre-configured or DHCP-provided IP address. vBond authenticates the vEdge's certificate, then provides the IP addresses of all vSmart controllers and vManage — enabling the vEdge to establish its OMP and management connections. vBond also assists with NAT traversal (hole punching) so vEdges behind NAT can build data-plane tunnels to each other | DTLS (port 12346), STUN-like NAT traversal | Must have a public IP address reachable from all vEdge sites. Often deployed in the cloud or DMZ. A single vBond can serve the entire fabric |
| vEdge / cEdge | Data | The WAN edge router deployed at branch sites, data centres, or colocation facilities. Forwards all user data traffic, maintains IPsec-encrypted tunnels to all remote vEdge routers, runs BFD on every tunnel to measure latency/jitter/loss, and enforces application-aware routing and QoS policies received from vSmart. vEdge = Viptela-specific hardware/software platform; cEdge = Cisco IOS-XE router (ISR 4K, ASR 1K, CSR 1000v) running SD-WAN software | OMP (to vSmart), IPsec (data plane tunnels — see Site-to-Site IPsec VPN), BFD (tunnel health), OSPF/BGP/EIGRP (LAN-side service-side routing — see OSPF and BGP) | Physical appliance or VM at every WAN edge location |
2. Key SD-WAN Concepts
Underlay vs Overlay
| Layer | What It Is | Who Manages It | Protocols |
|---|---|---|---|
| Underlay | The physical WAN transport network — MPLS, broadband internet, 4G/5G LTE, ADSL. The underlay provides IP connectivity between vEdge routers' WAN interfaces. The SD-WAN fabric does not control or configure the underlay — it simply uses whatever IP connectivity the ISP provides | ISP / carrier (MPLS), internet (broadband), no management needed for LTE | BGP (MPLS PE-CE), DHCP/PPPoE (broadband), LTE radio protocols |
| Overlay | The SD-WAN fabric built on top of the underlay — IPsec-encrypted tunnels between every pair of vEdge routers across every available transport. The overlay is fully managed by the SD-WAN fabric and is transparent to the underlay. All branch-to-branch and branch-to-DC traffic flows through the overlay tunnels | vManage (policy), vSmart (routing), vEdge (forwarding) | OMP (routing), IPsec (encryption), BFD (path monitoring) |
TLOC — Transport Locator
A TLOC (Transport Locator) is the SD-WAN equivalent of a next-hop address — it uniquely identifies an endpoint of a WAN tunnel on a vEdge router. A TLOC is defined by three values: the vEdge's system IP address (a unique loopback-like identifier), the colour (transport type label such as mpls, biz-internet, lte, public-internet), and the encapsulation (IPsec or GRE). Each WAN interface on a vEdge router has one TLOC. A dual-homed branch with both MPLS and broadband internet has two TLOCs — one for each transport. TLOCs are advertised to vSmart via OMP, and vSmart distributes them to all other vEdge routers so they can build data-plane tunnels directly between TLOCs.
OMP — Overlay Management Protocol
OMP is the SD-WAN control-plane routing protocol — it runs between vEdge routers and vSmart controllers over DTLS/TLS-secured sessions on TCP/UDP port 12346. OMP is conceptually similar to BGP: it is a path-vector protocol that carries routes (called OMP routes), TLOC advertisements, and policy information between controllers and edge routers. vEdge routers do not exchange OMP directly with each other — all OMP routing information flows through vSmart, which acts as the route reflector. When vEdge-A learns a route to a site-B prefix, it advertises that route to vSmart via OMP. vSmart evaluates all policies, selects the best TLOCs for the route, and redistributes the route with TLOC information to all other vEdge routers.
VPN Segmentation in SD-WAN
SD-WAN uses VPN numbers (0–65530) to segment traffic — conceptually equivalent to VRFs. There are two special system VPNs and an unlimited number of service VPNs:
| VPN | Name | Purpose |
|---|---|---|
| VPN 0 | Transport VPN | Contains all WAN-facing interfaces (MPLS, internet, LTE). All control-plane connections (OMP to vSmart, DTLS to vBond, NETCONF to vManage) run in VPN 0. IPsec data-plane tunnels are also established in VPN 0. VPN 0 is the underlay-facing VPN — it has routes to reach the internet and the MPLS network |
| VPN 512 | Management VPN | Out-of-band management access to the vEdge router itself — SSH, SNMP, syslog. Separate from data traffic. In most deployments, this connects to an out-of-band management network |
| VPN 1–511, 513–65530 | Service VPNs | Carry actual user/application traffic. LAN-facing interfaces are assigned to service VPNs. VPN 1 typically carries corporate data traffic; VPN 2 might carry voice; VPN 3 might carry guest/internet traffic. Each service VPN is logically isolated — traffic cannot cross VPN boundaries without explicit policy |
BFD — Bidirectional Forwarding Detection in SD-WAN
Every IPsec data-plane tunnel between vEdge routers runs BFD to continuously measure the health and performance of each transport path. BFD probes are sent at configurable intervals (default 1 second) and measure round-trip latency, jitter, and packet loss for every tunnel. These per-tunnel BFD metrics are the input to application-aware routing — the policy engine uses them to decide which transport path to use for each application class. If an MPLS path's latency spikes above a threshold, application-aware routing can automatically steer voice calls to the broadband path. BFD also detects tunnel failures within seconds, enabling fast failover. See IP SLA with Tracking for the traditional IOS equivalent of path monitoring, and MPLS for the underlying MPLS transport concepts.
Application-Aware Routing (AAR)
Application-aware routing is the SD-WAN policy feature that steers specific application traffic to the best available WAN transport based on real-time path quality (BFD metrics) rather than static routing decisions. An AAR policy defines: an application match (using NBAR2 Deep Packet Inspection to classify traffic — voice, video, Salesforce, Office 365, etc.), a set of SLA thresholds (maximum acceptable latency, jitter, and loss for that application), and a preferred transport order (try MPLS first; fall back to broadband if MPLS does not meet SLA). The policy is configured in vManage, pushed to vSmart, and vSmart distributes it to all relevant vEdge routers. Each vEdge enforces the policy locally using real-time BFD data for its own tunnel paths. For DSCP marking concepts used in AAR traffic matching see QoS Marking and DSCP Marking & Classification. For the traditional PBR equivalent see Policy-Based Routing.
3. Control Plane and Data Plane Separation
Control Plane — OMP and DTLS/TLS
OMP Route Advertisement Flow:
─────────────────────────────────────────────────────────────
Branch-A vEdge vSmart Branch-B vEdge
│ │ │
│─── OMP Update ────────────►│ │
│ Advertise: │ │
│ • Prefix: 10.1.0.0/24 │ │
│ • TLOC: [1.1.1.1, │ │
│ mpls, ipsec] │ │
│ • TLOC: [1.1.1.1, │ │
│ biz-internet, │ │
│ ipsec] │ │
│ │─── OMP Update ───────►│
│ │ Redistribute: │
│ │ • Prefix: 10.1.0.0/24
│ │ • TLOC list: │
│ │ [1.1.1.1,mpls] │
│ │ [1.1.1.1,inet] │
│ │ • Policy applied │
│ │ │
│◄── OMP Update ────────────│ │
│ Redistribute: │ │
│ • Prefix: 10.2.0.0/24 │ │
│ • TLOC list: │ │
│ [2.2.2.2, mpls] │ │
│ [2.2.2.2, inet] │ │
OMP Route Types:
┌─────────────────┬────────────────────────────────────────────┐
│ OMP Route Type │ Contents │
├─────────────────┼────────────────────────────────────────────┤
│ vRoute │ IP prefix + TLOC list — the core routing │
│ │ entry. "Prefix X is reachable at TLOC Y" │
├─────────────────┼────────────────────────────────────────────┤
│ TLOC Route │ TLOC endpoint advertisement — "I have a │
│ │ WAN interface with this system-IP, colour, │
│ │ encap, and public/private IP address" │
├─────────────────┼────────────────────────────────────────────┤
│ Service Route │ Advertisement of network services (firewall│
│ │ load balancer) reachable via this vEdge │
└─────────────────┴────────────────────────────────────────────┘
Control connections secured by:
• DTLS (Datagram TLS) — default, UDP-based, port 12346
• TLS — optional, TCP-based, same port
• All controllers and vEdge devices use X.509 certificates
signed by vManage's internal CA for mutual authentication
Data Plane — IPsec Tunnels and BFD
Data Plane Tunnel Mesh (Branch-A with 2 transports to Branch-B with 2 transports):
Branch-A vEdge Branch-B vEdge
WAN1 (MPLS) ──── IPsec tunnel ──────────────► WAN1 (MPLS)
WAN1 (MPLS) ──── IPsec tunnel ──────────────► WAN2 (Internet)
WAN2 (Internet) ── IPsec tunnel ──────────────► WAN1 (MPLS)
WAN2 (Internet) ── IPsec tunnel ──────────────► WAN2 (Internet)
4 tunnels total between 2 dual-homed sites.
Scales as: (transports-A × transports-B) tunnels per site pair.
Data Plane Key Facts:
─────────────────────────────────────────────────────────────
● Tunnels are established DIRECTLY between vEdge routers —
vSmart provides the TLOC addresses but does NOT forward data
● All data-plane traffic is encrypted with AES-256-GCM IPsec
● Tunnel keys are negotiated and rotated automatically —
no manual IKE or pre-shared key configuration needed
● Each tunnel runs BFD to measure latency, jitter, packet loss
every second (default 1000ms hello interval)
● vEdge uses BFD data + AAR policy to select which tunnel
to use for each application flow — forwarding table updated
in real time as path quality changes
● UDP port 12346 is used for both IPsec data encapsulation
and BFD probes
BFD Probe Packet Path:
vEdge-A ──[BFD probe]──► vEdge-B (RTT measured)
vEdge-A ◄─[BFD reply]── vEdge-B
Results: latency=8ms, jitter=2ms, loss=0%
→ Store in per-tunnel SLA database
→ AAR policy evaluates: voice requires latency ≤20ms → MPLS qualifies
→ Voice flows use MPLS tunnel
4. Lab Topology
┌─────────────────────────────────────────────────────────────────┐
│ SD-WAN Controllers (Cloud/DC) │
│ vManage: 100.64.0.10 vSmart: 100.64.0.20 vBond: 100.64.0.30│
└─────────────────────────────────────────────────────────────────┘
│ NETCONF/HTTPS │ OMP/DTLS │ DTLS
│ │ │
┌─────────────────────┐ ┌────────────────────────────────────┐
│ HQ Data Centre │ │ Branch Site │
│ vEdge-DC │ │ vEdge-BR1 │
│ System IP: 1.1.1.1│ │ System IP: 2.2.2.2 │
│ │ │ │
│ WAN Interfaces: │ │ WAN Interfaces: │
│ Gi0/0: MPLS │◄──►│ Gi0/0: MPLS (10.0.1.2/30) │
│ (10.0.1.1/30) │ │ colour: mpls │
│ colour: mpls │ │ │
│ │◄──►│ Gi0/1: Internet (203.0.113.2/30) │
│ Gi0/1: Internet │ │ colour: biz-internet │
│ (198.51.100.1/30) │ │ │
│ colour: biz-internet │ LAN Interface: │
│ │ │ Gi0/2: 10.20.0.1/24 (VPN 1) │
│ LAN Interface: │ │ PC-BR1: 10.20.0.10 │
│ Gi0/2: 10.10.0.1/24 └────────────────────────────────────┘
│ (VPN 1) │
│ Server: 10.10.0.50│
└─────────────────────┘
Lab Goals:
1. Review controller bootstrap and vEdge onboarding process
2. Verify OMP neighbour and route table on vEdge-BR1
3. Verify BFD tunnel status
4. Configure an application-aware routing policy:
Voice (DSCP EF) → prefer MPLS (latency ≤150ms, loss ≤1%)
Data → prefer Internet, fall back to MPLS
5. Step 1 — Controller Bootstrap and vBond Configuration
In a production SD-WAN deployment, the controllers (vManage, vSmart, vBond) are typically deployed as cloud-hosted instances by Cisco or as on-premises VMs. This section describes the bootstrap configuration applied to each controller and the key parameters they need to know about each other before any vEdge can onboard. In a lab environment using Cisco's SD-WAN DevNet sandbox or CML (Cisco Modelling Labs), these controllers are pre-deployed — the steps below reflect the initial configuration applied on first boot.
vBond Bootstrap Configuration
! ═══════════════════════════════════════════════════════════ ! vBond is the orchestrator — it must have a PUBLIC IP and ! must be reachable by all vEdge devices at onboarding time. ! vBond configuration uses the same IOS-XE CLI as cEdge, or ! the viptela-os CLI for dedicated vBond appliances. ! ═══════════════════════════════════════════════════════════ vbond# config terminal ! ── System-level identity ───────────────────────────────── vbond(config)# system vbond(config-system)# system-ip 100.64.0.30 vbond(config-system)# site-id 100 vbond(config-system)# organization-name "NetsTuts-Lab" vbond(config-system)# vbond 100.64.0.30 local ← vBond declares itself vbond(config-system)# exit ! ── VPN 0 — transport VPN (WAN-facing) ─────────────────── vbond(config)# vpn 0 vbond(config-vpn)# interface eth0 vbond(config-interface)# ip address 100.64.0.30/24 vbond(config-interface)# tunnel-interface vbond(config-tunnel)# encapsulation ipsec vbond(config-tunnel)# allow-service all ← permit OMP, DTLS, HTTPS vbond(config-interface)# no shutdown vbond(config-interface)# exit vbond(config-vpn)# ip route 0.0.0.0/0 100.64.0.1 ← default route to internet vbond(config-vpn)# exit ! ── VPN 512 — management VPN ───────────────────────────── vbond(config)# vpn 512 vbond(config-vpn)# interface eth1 vbond(config-interface)# ip address 192.168.100.30/24 vbond(config-interface)# no shutdown vbond(config-interface)# exit vbond(config-vpn)# exit vbond(config)# commit
system configuration
are: system-ip (the vEdge/controller's unique
identifier in the fabric — like a loopback address, never routed),
site-id (identifies which physical site this
device belongs to — all devices at the same site share a site-id),
and organization-name (must match exactly across
all controllers and vEdge devices — used during certificate
validation). The vbond 100.64.0.30 local command
tells this device it is the vBond orchestrator. On vEdge devices,
vbond [IP-address] without local points
to the vBond address. VPN 512 is the out-of-band management VPN —
for SSH access configuration see
SSH Configuration, and for
centralised logging see
Syslog Configuration.
vSmart Bootstrap Configuration
vsmart# config terminal vsmart(config)# system vsmart(config-system)# system-ip 100.64.0.20 vsmart(config-system)# site-id 100 vsmart(config-system)# organization-name "NetsTuts-Lab" vsmart(config-system)# vbond 100.64.0.30 ← points to vBond for initial contact vsmart(config-system)# exit vsmart(config)# vpn 0 vsmart(config-vpn)# interface eth0 vsmart(config-interface)# ip address 100.64.0.20/24 vsmart(config-interface)# tunnel-interface vsmart(config-tunnel)# encapsulation ipsec vsmart(config-tunnel)# allow-service netconf vsmart(config-tunnel)# allow-service stun ← required for vBond NAT traversal vsmart(config-interface)# no shutdown vsmart(config-interface)# exit vsmart(config-vpn)# ip route 0.0.0.0/0 100.64.0.1 vsmart(config-vpn)# exit vsmart(config)# commit
Add Controllers to vManage
! ── These steps are performed in the vManage GUI ──────────
! ── (GUI path: Configuration → Devices → Controllers) ─────
! Step 1: Add vBond
! Click "Add Controller" → vBond
! IP Address: 100.64.0.30
! Username: admin / Password: [vBond password]
! Generate CSR → Install Certificate
! Step 2: Add vSmart
! Click "Add Controller" → vSmart
! IP Address: 100.64.0.20
! Username: admin / Password: [vSmart password]
! Generate CSR → Install Certificate
! ── After adding controllers, verify in vManage ───────────
! ── Monitor → Network → Controllers
! ── vBond: ● Connected
! ── vSmart: ● Connected
! ── Equivalent CLI check on vSmart ───────────────────────
vsmart# show control connections
PEER PEER
PEER PEER PEER SITE DOMAIN PEER PRIVATE PEER
TYPE PROT SYSTEM IP ID ID STATE UPTIME IP PORT
-----------------------------------------------------------------------
vmanage dtls 100.64.0.10 100 0 up 0:03:42:17 100.64.0.10 12346
6. Step 2 — vEdge Router Onboarding (Zero-Touch Provisioning)
SD-WAN's Zero-Touch Provisioning (ZTP) allows a new vEdge router to come online and join the fabric automatically — without any on-site engineer logging in to configure it. The router arrives with a factory-default configuration, is connected to a WAN link, gets a DHCP address, contacts a Cisco cloud ZTP server that redirects it to the organisation's vBond, authenticates, and downloads its full device template from vManage. The entire process takes 5–15 minutes after the router powers on. Understanding the ZTP flow is essential for both exam and production deployments.
ZTP Onboarding Flow
New vEdge-BR1 boots with factory-default config
│
▼ Step 1: Get WAN IP via DHCP
vEdge-BR1 gets 203.0.113.2/30 on Gi0/1 (Internet link)
Default gateway: 203.0.113.1
│
▼ Step 2: Contact Cisco ZTP server (cloud.cisco.com)
vEdge sends HTTPS request with its chassis serial number
Cisco ZTP server looks up serial → returns:
• Organisation name: "NetsTuts-Lab"
• vBond IP: 100.64.0.30
│
▼ Step 3: Contact vBond
vEdge connects to vBond 100.64.0.30 via DTLS (port 12346)
vBond validates vEdge's certificate (signed by Cisco root CA)
vBond returns:
• vSmart IP addresses: [100.64.0.20]
• vManage IP address: 100.64.0.10
• NAT traversal info (public IP/port mappings)
│
▼ Step 4: Establish OMP session with vSmart
vEdge connects to vSmart 100.64.0.20 via DTLS
OMP session established → vEdge receives routing info
│
▼ Step 5: Establish NETCONF session with vManage
vEdge connects to vManage 100.64.0.10 via NETCONF
vManage identifies vEdge by serial number → finds assigned template
vManage pushes full device template configuration to vEdge
│
▼ Step 6: vEdge fully operational
All WAN interfaces up → MPLS and Internet TLOCs advertised via OMP
IPsec tunnels built to vEdge-DC
BFD probes running on all tunnels
LAN interfaces up → VPN 1 prefixes advertised via OMP
Site reachable from all other SD-WAN sites
Pre-Staging a vEdge in vManage (Before Physical Deployment)
! ── These steps are performed in vManage GUI BEFORE ──────── ! ── the physical router arrives at the branch ─────────────── ! ── Step 1: Upload vEdge serial number to vManage ────────── ! ── Configuration → Devices → WAN Edge List ! ── Upload CSV or add manually: ! ── Chassis Number: [from router label or Cisco portal] ! ── Certificate Serial: [from Cisco PKI portal] ! ── Step 2: Create Feature Templates ────────────────────── ! ── Configuration → Templates → Feature Templates ! ── ! ── Create: System Template ! ── Organization Name: NetsTuts-Lab ! ── Site ID: 200 (Branch site = 200) ! ── System IP: 2.2.2.2 (unique per device, use variable) ! ── vBond: 100.64.0.30 ! ── ! ── Create: VPN 0 Template (Transport VPN) ! ── VPN: 0 ! ── Interface Gi0/0: ! ── IP: DHCP or static (use variable for static) ! ── Tunnel colour: mpls ! ── Encap: ipsec ! ── Interface Gi0/1: ! ── IP: DHCP ! ── Tunnel colour: biz-internet ! ── Encap: ipsec ! ── Default route: 0.0.0.0/0 (via each interface gateway) ! ── ! ── Create: VPN 1 Template (Service/LAN VPN) ! ── VPN: 1 ! ── Interface Gi0/2: ! ── IP: 10.20.0.1/24 (use variable) ! ── No tunnel-interface (LAN — not a WAN tunnel endpoint) ! ── OSPF or static routes for LAN subnets ! ── Step 3: Create Device Template ──────────────────────── ! ── Configuration → Templates → Device Templates ! ── Attach feature templates: ! ── System Template: [System-Branch] ! ── VPN 0 Template: [VPN0-Branch-DualWAN] ! ── VPN 1 Template: [VPN1-Branch-LAN] ! ── Step 4: Attach Device Template to vEdge-BR1 ─────────── ! ── Select template → Attach Devices → Select vEdge-BR1 ! ── Enter per-device variables: ! ── System IP: 2.2.2.2 ! ── Site ID: 200 ! ── Gi0/0 IP: 10.0.1.2/30 ! ── Gi0/2 IP: 10.20.0.1/24 ! ── Click Send → template is queued for delivery when vEdge connects ! ── vManage CLI equivalent — verify template attachment ──── vmanage# show device template list Template Name Device Type Device Count --------------------------------------------------- Branch-Template vedge-cloud 1 DC-Template vedge-cloud 1
{{system_ip}})
allow the same template to be applied to many devices with
different per-device values. This is the SD-WAN equivalent of
network-wide configuration management — define the policy once
in the template, set device-specific values per device, and
vManage generates and pushes the correct configuration to each
vEdge automatically.
Manual Bootstrap for vEdge-BR1 (Lab/Fallback Method)
! ═══════════════════════════════════════════════════════════ ! If ZTP is not available (lab environment, no internet ! access, or staged deployment), the vEdge can be manually ! configured with a minimal bootstrap to reach vBond. ! vManage then pushes the full template. ! ═══════════════════════════════════════════════════════════ vEdge-BR1# config terminal ! ── System identity ─────────────────────────────────────── vEdge-BR1(config)# system vEdge-BR1(config-system)# system-ip 2.2.2.2 vEdge-BR1(config-system)# site-id 200 vEdge-BR1(config-system)# organization-name "NetsTuts-Lab" vEdge-BR1(config-system)# vbond 100.64.0.30 vEdge-BR1(config-system)# exit ! ── VPN 0 — transport VPN ───────────────────────────────── vEdge-BR1(config)# vpn 0 vEdge-BR1(config-vpn)# interface ge0/0 vEdge-BR1(config-interface)# ip address 10.0.1.2/30 vEdge-BR1(config-interface)# tunnel-interface vEdge-BR1(config-tunnel-if)# encapsulation ipsec vEdge-BR1(config-tunnel-if)# color mpls vEdge-BR1(config-tunnel-if)# allow-service all vEdge-BR1(config-interface)# no shutdown vEdge-BR1(config-interface)# exit vEdge-BR1(config-vpn)# vEdge-BR1(config-vpn)# interface ge0/1 vEdge-BR1(config-interface)# ip address 203.0.113.2/30 vEdge-BR1(config-interface)# tunnel-interface vEdge-BR1(config-tunnel-if)# encapsulation ipsec vEdge-BR1(config-tunnel-if)# color biz-internet vEdge-BR1(config-tunnel-if)# allow-service all vEdge-BR1(config-interface)# no shutdown vEdge-BR1(config-interface)# exit vEdge-BR1(config-vpn)# vEdge-BR1(config-vpn)# ip route 0.0.0.0/0 203.0.113.1 vEdge-BR1(config-vpn)# exit ! ── VPN 1 — service VPN (LAN) ──────────────────────────── vEdge-BR1(config)# vpn 1 vEdge-BR1(config-vpn)# interface ge0/2 vEdge-BR1(config-interface)# ip address 10.20.0.1/24 vEdge-BR1(config-interface)# no shutdown vEdge-BR1(config-interface)# exit vEdge-BR1(config-vpn)# ip route 0.0.0.0/0 10.20.0.254 ← LAN gateway vEdge-BR1(config-vpn)# exit ! ── VPN 512 — management ───────────────────────────────── vEdge-BR1(config)# vpn 512 vEdge-BR1(config-vpn)# interface eth0 vEdge-BR1(config-interface)# ip address 192.168.100.50/24 vEdge-BR1(config-interface)# no shutdown vEdge-BR1(config-interface)# exit vEdge-BR1(config-vpn)# exit vEdge-BR1(config)# commit
tunnel-interface sub-configuration is what
designates an interface as a WAN tunnel endpoint. Without
tunnel-interface, the interface is a service-side
(LAN) interface and will not participate in IPsec tunnel
establishment or BFD. The color command assigns
the TLOC colour — this label is used in application-aware
routing policies to specify which transport type to prefer
(e.g., "prefer colour mpls for voice"). The
allow-service all command permits all SD-WAN
control-plane services (OMP, DTLS, NETCONF, BFD, STUN) to
use this tunnel interface. In production, you would restrict
this to only the services needed on each transport.
7. Step 3 — Verify OMP and Data-Plane Tunnels
Verify OMP Neighbour Sessions
! ── Check OMP sessions on vEdge-BR1 ──────────────────────
vEdge-BR1# show omp peers
DOMAIN OVERLAY SITE
PEER TYPE ID ID ID STATE UPTIME
---------------------------------------------------------------------------
100.64.0.20 vsmart 1 1 100 up 0:02:15:08
show omp peers confirms the OMP session between
vEdge-BR1 and vSmart is up. The state should
always be up for a healthy fabric. Each vEdge connects
to all vSmart controllers — in a dual-vSmart deployment you
would see two entries here. The DOMAIN ID and OVERLAY ID are
used for multi-tenant or segmented fabric deployments. SITE ID
100 is vSmart's site (the controller site). If the OMP peer
state is not up, the first checks are: Is the
certificate valid? Is there a route to vSmart's IP (100.64.0.20)
in VPN 0? Is DTLS port 12346 not blocked by the underlay?
Verify OMP Routes Received
! ── Show all OMP routes in the routing table ─────────────
vEdge-BR1# show omp routes
CODE:
C -> chosen (installed in fib)
I -> ignored
Red -> redistributed
Rej -> rejected
L -> looped
R -> resolved
S -> stale
Ext -> extranet
VPN 1 ROUTE TABLE
TLOC ORIGIN METRIC
IP PREFIX FROM PEER STATUS IP COLOR ENCAP TYPE PREF
---------------------------------------------------------------------------------------------------
10.10.0.0/24 100.64.0.20 C,R 1.1.1.1 mpls ipsec OMP 100
100.64.0.20 C,R 1.1.1.1 biz-internet ipsec OMP 100
10.20.0.0/24 0.0.0.0 C,Red - - - Connctd 0
Verify BFD Tunnel Sessions
! ── Show all BFD sessions (data-plane tunnel health) ──────
vEdge-BR1# show bfd sessions
SOURCE TLOC REMOTE TLOC
SYSTEM IP SITE ID STATE COLOR COLOR PROTO ENCAP UPTIME TX/RX
---------------------------------------------------------------------------------------------
1.1.1.1 100 up mpls mpls bfd ipsec 0:00:47:22 1000/1000
1.1.1.1 100 up mpls biz-internet bfd ipsec 0:00:47:20 1000/1000
1.1.1.1 100 up biz-internet mpls bfd ipsec 0:00:47:18 1000/1000
1.1.1.1 100 up biz-internet biz-internet bfd ipsec 0:00:47:16 1000/1000
Verify BFD Path Quality Statistics
! ── Check latency/jitter/loss per tunnel ───────────────── vEdge-BR1# show bfd sessions detail System IP: 1.1.1.1 Site ID: 100 Source Color: mpls Remote Color: mpls State: Up Uptime: 0:00:47:22 TX Interval: 1000ms BFD Policy: Default Source TLOC: Local IP: 10.0.1.2 Colour: mpls Remote TLOC: Remote IP: 10.0.1.1 Colour: mpls Encap: ipsec Proto: bfd Latency: 8ms ← current round-trip latency Jitter: 2ms ← latency variance Loss: 0% ← packet loss percentage Rx Errors: 0 System IP: 1.1.1.1 Site ID: 100 Source Color: biz-internet Remote Color: biz-internet State: Up Uptime: 0:00:47:16 TX Interval: 1000ms Source TLOC: Local IP: 203.0.113.2 Colour: biz-internet Remote TLOC: Remote IP: 198.51.100.1 Colour: biz-internet Latency: 45ms ← internet path higher latency Jitter: 12ms Loss: 0%
8. Step 4 — Application-Aware Routing Policy
Application-aware routing (AAR) policies are created in vManage and distributed to vEdge routers by vSmart. A complete AAR policy has three components: an SLA class (defining the acceptable latency/jitter/loss thresholds for a traffic type), an application list or DSCP match (identifying which traffic this policy applies to), and a preferred path list (the ordered list of TLOC colours to try, falling back in order if the preferred path does not meet SLA).
AAR Policy — vManage GUI Workflow (Step by Step)
! ═══════════════════════════════════════════════════════════ ! All AAR policy steps are performed in the vManage GUI. ! Navigation: Configuration → Policies ! ═══════════════════════════════════════════════════════════ ! ── Step 1: Create SLA Classes ──────────────────────────── ! Configuration → Policies → Custom Options → SLA Class ! ! SLA Class: VOICE-SLA ! Latency: 150ms maximum ! Jitter: 30ms maximum ! Loss: 1% maximum ! ! SLA Class: DATA-SLA ! Latency: 300ms maximum ! Jitter: 100ms maximum ! Loss: 5% maximum ! ── Step 2: Create Application Lists ───────────────────── ! Configuration → Policies → Custom Options → Application ! ! Application List: VOICE-APPS ! Match: DSCP EF (46) ← VoIP RTP streams ! AND/OR: Application: cisco-webex-calling, zoom, ms-teams-calling ! ! Application List: DATA-APPS ! Match: All traffic NOT in VOICE-APPS ! ── Step 3: Create the AAR Policy ───────────────────────── ! Configuration → Policies → Application Aware Routing ! Click "Add Policy" → Add Topology ! ! Policy Name: Branch-AAR-Policy ! ! Sequence Rule 1 (Voice): ! Match: ! DSCP: 46 (EF) ← match voice traffic ! Action: ! SLA Class: VOICE-SLA ! Preferred Color: mpls ← try MPLS first ! Fallback: biz-internet ← fall back if MPLS fails SLA ! If no path meets SLA: use preferred-color anyway (best effort) ! ! Sequence Rule 2 (Default Data): ! Match: ! (no specific match — catches all remaining traffic) ! Action: ! SLA Class: DATA-SLA ! Preferred Color: biz-internet ← prefer internet for data ! Fallback: mpls ← fall back to MPLS if needed ! ── Step 4: Attach Policy to a Site List ───────────────── ! Configuration → Policies ! Click "Add Policy" → Topology = Hub and Spoke or Full Mesh ! Site List: All-Branch-Sites (site IDs 200-299) ! Attach AAR Policy: Branch-AAR-Policy ! Direction: From-Service (LAN → WAN) ! ── Step 5: Activate Policy ────────────────────────────── ! Click "Activate" → vManage pushes policy to vSmart ! vSmart distributes policy to all vEdge routers in site list
Verify AAR Policy Applied on vEdge
! ── Confirm policy received from vSmart ───────────────────
vEdge-BR1# show policy from-vsmart
From vsmart:
data-policy:
Branch-AAR-Policy
sequence 1 match dscp 46
action: sla-class VOICE-SLA
preferred-color mpls
fallback-to-best-tunnel color biz-internet
sequence 2 match default
action: sla-class DATA-SLA
preferred-color biz-internet
fallback-to-best-tunnel color mpls
! ── Check real-time forwarding decisions ──────────────────
vEdge-BR1# show app-route stats
Application route statistics:
Tunnel: 1.1.1.1 Source Color: mpls Remote Color: mpls
Mean Latency: 8ms Mean Jitter: 2ms Loss: 0%
SLA Classes Met: VOICE-SLA, DATA-SLA
Packets forwarded: 45823
Tunnel: 1.1.1.1 Source Color: biz-internet Remote Color: biz-internet
Mean Latency: 45ms Mean Jitter: 12ms Loss: 0%
SLA Classes Met: DATA-SLA
Packets forwarded: 312048
! ── Note: VOICE-SLA not met on internet path (jitter 12ms > 30ms? NO)
! ── But latency 45ms < 150ms, jitter 12ms < 30ms, loss 0% < 1%
! ── So both paths meet VOICE-SLA currently
! ── AAR prefers MPLS for voice due to preferred-color setting
show app-route stats shows the real-time forwarding
statistics per tunnel, including which SLA classes each tunnel
is currently meeting. When a tunnel's BFD metrics degrade
and it no longer meets the SLA class thresholds, the vEdge
automatically moves flows matching that SLA class to the next
qualifying tunnel in the preference list. This entire failover
happens locally on the vEdge without requiring any communication
to vSmart — the policy and SLA thresholds were already
distributed; the vEdge makes forwarding decisions autonomously
using real-time BFD data.
Simulate AAR Failover — MPLS Path Degradation
! ── In a lab: simulate MPLS degradation by increasing ───── ! ── latency on the MPLS interface (or bring it down) ────── ! ── Before degradation: voice flows on MPLS ────────────── vEdge-BR1# show app-route sla-class VOICE-SLA TUNNEL LATENCY JITTER LOSS SLA-MET 1.1.1.1 mpls→mpls 8ms 2ms 0% YES ← voice using this 1.1.1.1 biz-internet→biz 45ms 12ms 0% YES ! ── Simulate MPLS SLA violation (latency spikes to 200ms) ─ ! ── (In real production: MPLS congestion causes this) ────── ! ── After degradation ───────────────────────────────────── vEdge-BR1# show app-route sla-class VOICE-SLA TUNNEL LATENCY JITTER LOSS SLA-MET 1.1.1.1 mpls→mpls 200ms 45ms 0% NO ← exceeds 150ms 1.1.1.1 biz-internet→biz 45ms 12ms 0% YES ← voice auto-moved here ! ── Voice flows automatically moved to biz-internet ─────── ! ── No manual intervention, no routing change, no tickets ──
9. SD-WAN Verification Command Reference
| Command | Run On | What It Shows | Key Fields |
|---|---|---|---|
show omp peers |
vEdge | OMP sessions to vSmart controllers — the control-plane connection status | State: up = control plane healthy. If down, no routing information is being distributed to this vEdge |
show omp routes |
vEdge | All OMP routes received from vSmart — remote site prefixes with their TLOC next-hops and status codes | C,R (chosen, resolved) = route installed in forwarding table. Missing routes indicate the remote vEdge has not advertised them or a policy is filtering them |
show omp tlocs |
vEdge | All known TLOCs (remote vEdge tunnel endpoints) received via OMP — system IP, colour, encap, and public IP/port | Public IP addresses used for IPsec tunnel establishment. If a TLOC is missing, the corresponding tunnel cannot be built |
show bfd sessions |
vEdge | All active BFD sessions for data-plane IPsec tunnels — source and remote TLOC, state, uptime, TX/RX counts | State: up = tunnel active and BFD probes flowing. Asymmetric TX/RX = path loss detected. State down = tunnel broken |
show bfd sessions detail |
vEdge | Per-tunnel SLA metrics — latency, jitter, packet loss, and error counts | Raw BFD metric values used by AAR policy. Compare against configured SLA class thresholds to understand path selection |
show app-route stats |
vEdge | Application-route forwarding statistics per tunnel — packets forwarded and SLA classes met per tunnel | Which tunnels are being used for which traffic classes. High packet counts on an unexpected tunnel indicate AAR has made a failover |
show policy from-vsmart |
vEdge | All policies received from vSmart and currently active on the vEdge — AAR policies, data policies, CFLoP (Centralized Forwarding and Localized Policy) | Confirms the correct policy was received and distributed. If a policy change was made in vManage but is not shown here, the vSmart distribution failed |
show interface [intf] |
vEdge | Interface status including tunnel-interface parameters — colour, encapsulation, and whether the tunnel is operational | Confirm colour assignment and tunnel-interface configuration matches the device template that was pushed |
show control connections |
vEdge / vSmart | All active control connections — vEdge to vSmart/vBond/vManage sessions and their states | All three controller connections (vBond, vSmart, vManage) should show up. A specific controller connection down indicates a reachability or certificate issue |
show certificate validity |
vEdge | Certificate expiry dates for the vEdge's installed certificates — root CA, enterprise CA, and device certificate | Expired certificates cause authentication failures at vBond and prevent all control connections. Monitor expiry dates proactively |
show sdwan omp peers (IOS-XE cEdge) |
cEdge (IOS-XE) | OMP peers on a cEdge (IOS-XE SD-WAN router). Uses the show sdwan prefix instead of bare commands |
Same fields as vEdge show omp peers. Use show sdwan prefix for all SD-WAN commands on IOS-XE cEdge devices |
SD-WAN Troubleshooting Quick Reference
| Symptom | First Check | Likely Cause and Fix |
|---|---|---|
| vEdge not appearing in vManage after ZTP | show control connections on vEdge — is vBond connection up? |
vBond unreachable (no route in VPN 0 to vBond IP, or UDP 12346 blocked), certificate not yet uploaded to vManage, or wrong organization-name. Verify VPN 0 default route, ping vBond IP from VPN 0, confirm serial number is in vManage WAN Edge list |
| OMP peer down (vSmart connection lost) | show omp peers — state not "up"; show control connections |
VPN 0 route to vSmart IP lost (underlay failure), certificate expired, or DTLS port 12346 blocked. Check underlay connectivity, certificate validity, and firewall ACLs on the WAN path |
| BFD session down for specific tunnel colour | show bfd sessions — identify which colour/tunnel is down |
Underlay connectivity failure for that transport (ISP outage, MPLS circuit down), IPsec key exchange failed, or the remote TLOC's public IP changed. Check physical WAN interface status and verify underlay IP reachability to the remote TLOC address shown in show omp tlocs |
| AAR policy not steering voice to MPLS | show policy from-vsmart — is the AAR policy present? show bfd sessions detail — does MPLS meet the SLA thresholds? |
Policy not received (check vSmart distribution), DSCP EF marking not set on voice traffic (verify QoS marking upstream), or MPLS path is currently failing the SLA class thresholds causing AAR to legitimately prefer internet. Check show app-route sla-class VOICE-SLA |
| Remote site prefixes missing from OMP route table | show omp routes — are remote VPN 1 prefixes present? |
Remote vEdge has not advertised the prefix (LAN interface not in a service VPN, or service VPN not attached to the device template), or a centralized data policy on vSmart is filtering the route. Check the remote vEdge's VPN 1 configuration and any active vManage route policies |
Key Points & Exam Tips
- Four SD-WAN components, four planes: vManage (management plane — GUI, templates, policies, REST API), vSmart (control plane — OMP routing, policy distribution), vBond (orchestration plane — ZTP, NAT traversal, initial authentication), vEdge/cEdge (data plane — IPsec tunnels, BFD, packet forwarding, AAR enforcement). Know which component belongs to which plane — this is a common exam question.
- The three VPN system defaults: VPN 0 (transport — all WAN-facing interfaces and control connections; do NOT put LAN interfaces here), VPN 512 (management — out-of-band SSH/SNMP access to the router itself), and service VPNs 1–511/513–65530 (user traffic, segmented per application or department). The VPN number in SD-WAN maps conceptually to a VRF in traditional IOS — see VRF-Lite Configuration.
- A TLOC (Transport Locator) is defined by three values: system IP + colour + encapsulation. Every WAN interface on a vEdge has one TLOC. TLOCs are advertised to vSmart via OMP. vSmart distributes TLOC information to all other vEdges — they use TLOC public IP addresses to establish direct IPsec data-plane tunnels without vSmart in the forwarding path. vSmart never forwards user data.
- OMP is the SD-WAN routing protocol — runs only between vEdge and vSmart (never directly vEdge-to-vEdge). It carries three route types: vRoutes (prefixes + TLOC next-hops), TLOC routes (tunnel endpoint advertisements), and service routes. All OMP traffic is secured with DTLS/TLS on port 12346. Know the
show omp peers,show omp routes, andshow omp tlocsverification commands. - BFD runs on every IPsec data-plane tunnel between vEdge pairs, measuring latency, jitter, and packet loss every second (default). BFD metrics are the real-time input to application-aware routing policy decisions. BFD also provides fast tunnel failure detection.
show bfd sessionsshows tunnel state;show bfd sessions detailshows the SLA metrics. - ZTP onboarding sequence: vEdge boots → DHCP on WAN interface → contacts Cisco ZTP cloud → gets vBond address → contacts vBond → authenticates certificate → gets vSmart/vManage addresses → OMP session to vSmart → NETCONF session to vManage → receives device template → fully operational. Failure at any step is identifiable with
show control connections. - Application-aware routing is configured in vManage (SLA class → application match → preferred colour order), pushed via vSmart to vEdge, and enforced locally on the vEdge using real-time BFD data. Failover between paths is automatic, sub-second, and requires no vSmart involvement at enforcement time. This is fundamentally different from traditional PBR, which is static — see Policy-Based Routing.
- The underlay vs overlay distinction: the underlay is the physical WAN (MPLS, internet) managed by ISPs; the SD-WAN overlay is the IPsec tunnel mesh built on top of it. SD-WAN improves WAN operations by abstracting from the underlay — it can use any combination of underlay transports and make intelligent forwarding decisions across them based on real-time quality metrics. Traditional MPLS WAN provides only one transport with no path-quality awareness.
- On the exam: know that vBond must have a public IP (it is the first contact for ZTP and must be reachable from all sites), vSmart does NOT forward data traffic, the data plane tunnels are direct vEdge-to-vEdge (vSmart is not in the forwarding path), and certificates/PKI are central to SD-WAN security — all devices authenticate with X.509 certificates signed by vManage's CA. Certificate expiry is a common production failure mode.