5.4 SD-WAN Controller Deployment
- Version: 1.0
- Last Updated: December 2025
- Author: Abhavtech Network Engineering
- Classification: Internal Use
5.4.1 Controller Architecture
vSmart Topology
+------------------------------------------------------------------+
| ABHAVTECH SD-WAN CONTROLLER ARCHITECTURE |
+------------------------------------------------------------------+
| |
| MUMBAI DATA CENTER CHENNAI DR CENTER |
| ┌──────────────────────┐ ┌──────────────────────┐ |
| │ vSmart-Mumbai-1 │ │ vSmart-Chennai-1 │ |
| │ 10.255.1.11 │◄────────────►│ 10.255.1.21 │ |
| │ (Primary) │ OMP │ (DR Primary) │ |
| └──────────┬───────────┘ └──────────┬───────────┘ |
| │ │ |
| │ Full Mesh OMP Peering │ |
| │ │ |
| ┌──────────┴───────────┐ ┌──────────┴───────────┐ |
| │ vSmart-Mumbai-2 │◄────────────►│ vSmart-Chennai-2 │ |
| │ 10.255.1.12 │ OMP │ 10.255.1.22 │ |
| │ (Secondary) │ │ (DR Secondary) │ |
| └──────────────────────┘ └──────────────────────┘ |
| |
| CONTROLLER ROLES: |
| - Route Reflector: Distribute OMP routes to WAN Edges |
| - Policy Engine: Apply centralized policies |
| - Service Orchestration: Service chain management |
| |
| CAPACITY: |
| - 4 vSmarts support up to 4,000 WAN Edges |
| - Each vSmart can handle 1,000 connections |
| - Full redundancy with any single controller failure |
| |
+------------------------------------------------------------------+
vSmart Specifications
| Parameter |
Mumbai vSmarts |
Chennai vSmarts |
| vCPU |
8 cores |
8 cores |
| Memory |
16 GB |
16 GB |
| Storage |
100 GB SSD |
100 GB SSD |
| Network |
1 Gbps |
1 Gbps |
| Site-ID |
1 |
2 |
| System-IP |
10.255.1.11/12 |
10.255.1.21/22 |
5.4.2 vSmart Deployment
VM Deployment
# Deploy vSmart OVA for Mumbai-1
ovftool --name="vSmart-Mumbai-1" \
--datastore="DS_SDWAN_01" \
--network="VM_SDWAN_MGMT" \
--diskMode=thin \
--prop:com.cisco.vm.hostname=vsmart-mumbai-1.abhavtech.com \
--prop:com.cisco.vm.login=admin \
--prop:com.cisco.vm.password=Abh@vT3ch$DW@N! \
--prop:com.cisco.vm.eth0.ip=10.255.1.11 \
--prop:com.cisco.vm.eth0.netmask=255.255.255.0 \
--prop:com.cisco.vm.eth0.gateway=10.255.1.1 \
viptela-smart-20.15.1-x86_64.ova \
"vi://admin@vcenter.abhavtech.com/DC-Mumbai/host/Cluster-SDWAN"
Initial Configuration
! vSmart-Mumbai-1 Configuration
vsmart# config terminal
system
host-name vsmart-mumbai-1
system-ip 10.255.1.11
site-id 1
organization-name "Abhavtech"
vbond sdwan-validator.abhavtech.com port 12346
!
vpn 0
ip route 0.0.0.0/0 10.255.1.1
interface eth0
ip address 10.255.1.11/24
tunnel-interface
allow-service all
encapsulation dtls
!
no shutdown
!
!
vpn 512
ip route 0.0.0.0/0 10.255.100.1
interface eth1
ip address 10.255.100.21/24
no shutdown
!
!
! Commit configuration
commit
5.4.3 Certificate Installation
Generate and Install Certificate
! Step 1: Generate CSR
vsmart-mumbai-1# request certificate generate csr
! Output CSR - submit to Enterprise CA
-----BEGIN CERTIFICATE REQUEST-----
MIIC...
-----END CERTIFICATE REQUEST-----
! Step 2: Sign with Enterprise CA (external process)
! Subject: CN=vsmart-mumbai-1.abhavtech.com,O=Abhavtech,C=IN
! Extended Key Usage: clientAuth, serverAuth
! Step 3: Install Root CA
vsmart-mumbai-1# request root-cert-chain install /home/admin/abhavtech-ca-chain.pem
! Step 4: Install signed certificate
vsmart-mumbai-1# request certificate install /home/admin/vsmart-mumbai-1-signed.pem
! Step 5: Verify certificate
vsmart-mumbai-1# show certificate installed
Certificate:
Subject: CN=vsmart-mumbai-1.abhavtech.com,O=Abhavtech,C=IN
Issuer: CN=Abhavtech-Issuing-CA,O=Abhavtech,C=IN
Serial: 5B4C3D2E
Valid: Dec 15 2025 - Dec 15 2027
Status: Valid
5.4.4 OMP Configuration
OMP Settings
! OMP configuration on vSmart
vsmart# config terminal
omp
no shutdown
graceful-restart
timers
graceful-restart-timer 43200
holdtime 60
keepalive 20
advertisement-interval 1
!
address-family ipv4
advertise bgp
advertise connected
advertise static
advertise ospf external
!
address-family ipv6
advertise bgp
advertise connected
!
!
commit
! Verify OMP status
vsmart# show omp summary
OMP Tuning for Large Scale
! For 500+ WAN Edges, tune OMP parameters
omp
send-path-limit 16
ecmp-limit 8
timers
advertisement-interval 5
holdtime 300
keepalive 60
!
!
! Enable graceful restart for maintenance
omp
graceful-restart
timers
graceful-restart-timer 43200
!
!
5.4.5 vSmart Affinity Configuration
Site Affinity Groups
! Configure affinity for regional controllers
! Mumbai vSmarts primary for India region
! Chennai vSmarts primary for DR
vsmart-mumbai-1# config terminal
system
controller-group-id 1
!
! On vManage, configure affinity policy
vManage GUI: Configuration > Templates > (System Template)
Controller Group Preference:
Group 1 (Mumbai): Sites 1-99 (India)
Group 2 (Chennai): Sites 100-199 (EMEA/Americas backup)
! Result: India sites prefer Mumbai vSmarts
! EMEA/Americas failover to Chennai
Multi-Tenant Isolation (If Required)
! For multi-tenant deployments, isolate tenants
vsmart# config terminal
tenant abhavtech
organization-name "Abhavtech"
domain-id 1
!
! Route isolation per tenant
policy
lists
site-list ABHAVTECH_SITES
site-id 1-199
!
!
!
5.4.6 Policy Distribution
Control Policy Application
! Control policies are configured on vManage and pushed to vSmart
! vSmart applies policies to OMP routes
vManage GUI: Configuration > Policies > Centralized Policy
! Example: Hub-and-Spoke Topology Policy
policy
control-policy HUB-SPOKE
sequence 10
match route
site-list BRANCH_SITES
!
action accept
set
tloc-list HUB_TOCS
!
!
!
default-action accept
!
!
! Apply to site-list
apply-policy
site-list BRANCH_SITES
control-policy HUB-SPOKE out
!
!
Verify Policy Distribution
! On vSmart, verify policies received
vsmart# show running-config policy
vsmart# show omp policy
! Check policy application
vsmart# show sdwan running-config | section apply-policy
! Verify routes with policy applied
vsmart# show omp routes vpn 10
vsmart# show omp routes vpn 10 detail | include preference
5.4.7 Controller HA Validation
HA Test Procedure
#!/bin/bash
# vsmart_ha_test.sh - vSmart HA validation
echo "=== VSMART HA VALIDATION ==="
# Test 1: Verify all vSmarts have OMP peers
echo "Test 1: OMP Peering"
for vsmart in vsmart-mumbai-1 vsmart-mumbai-2 vsmart-chennai-1 vsmart-chennai-2; do
echo "Checking $vsmart..."
ssh admin@$vsmart "show omp peers"
done
# Test 2: Verify route consistency
echo "Test 2: Route Consistency"
ssh admin@vsmart-mumbai-1 "show omp routes vpn 10 | count"
ssh admin@vsmart-chennai-1 "show omp routes vpn 10 | count"
# Test 3: Failover test
echo "Test 3: Controller Failover"
echo "ACTION: Shutdown vsmart-mumbai-1"
echo "EXPECTED: WAN Edges failover to vsmart-mumbai-2 within 60 seconds"
echo "VERIFY: show sdwan control connections on WAN Edge"
# Test 4: Split-brain prevention
echo "Test 4: Split-Brain Prevention"
echo "VERIFY: Only one active OMP session per WAN Edge to Mumbai cluster"
HA Status Verification
! On any vSmart
vsmart# show omp peers
! Expected output (healthy):
Peer Type Domain System IP State Uptime
vsmart-mum-2 vsmart 1 10.255.1.12 up 5d 3h 22m
vsmart-che-1 vsmart 1 10.255.1.21 up 5d 3h 22m
vsmart-che-2 vsmart 1 10.255.1.22 up 5d 3h 22m
mumbai-hub-1 vedge 1 10.255.255.1 up 4d 12h 15m
mumbai-hub-2 vedge 1 10.255.255.2 up 4d 12h 15m
...
! Verify control connections from WAN Edge
wan-edge# show sdwan control connections | include vsmart
vsmart dtls 10.255.1.11 12346 10.255.255.11 12346 Yes up 5d 3h
vsmart dtls 10.255.1.12 12346 10.255.255.11 12346 Yes up 5d 3h
5.4.8 Monitoring and Alerting
vSmart Health Monitoring
#!/usr/bin/env python3
"""vSmart Health Monitor"""
import requests
import json
VMANAGE = "sdwan-manager.abhavtech.com"
def get_vsmart_status():
session = requests.Session()
session.verify = False
# Authenticate
session.post(
f"https://{VMANAGE}/j_security_check",
data={"j_username": "admin", "j_password": "password"}
)
token = session.get(f"https://{VMANAGE}/dataservice/client/token").text
session.headers["X-XSRF-TOKEN"] = token
# Get vSmart status
response = session.get(
f"https://{VMANAGE}/dataservice/device/controllers",
params={"deviceCategory": "controllers"}
)
controllers = response.json().get("data", [])
for controller in controllers:
if controller.get("device-type") == "vsmart":
print(f"vSmart: {controller['host-name']}")
print(f" System IP: {controller['system-ip']}")
print(f" Status: {controller['reachability']}")
print(f" OMP Peers: {controller.get('ompPeers', 'N/A')}")
print()
if __name__ == "__main__":
get_vsmart_status()
SNMP Monitoring
! Enable SNMP on vSmart for NMS monitoring
vsmart# config terminal
snmp
view ALL-ACCESS
oid 1
!
user snmpmonitor group ADMIN-GROUP auth sha-256 Snmp@Auth123! priv aes-256 Snmp@Priv123!
group ADMIN-GROUP view ALL-ACCESS
trap group TRAPS
target-ip 10.10.1.50 port 162
!
!
commit
5.4.9 Post-Deployment Verification
vSmart Verification Checklist
| Check |
Command |
Expected |
Status |
| All vSmarts reachable |
ping from vManage |
100% |
☐ |
| OMP peers established |
show omp peers |
All UP |
☐ |
| Control connections |
show control connections |
vBond, vManage |
☐ |
| Certificate valid |
show certificate installed |
Valid |
☐ |
| Routes received |
show omp routes |
Expected count |
☐ |
| Policies active |
show omp policy |
Applied |
☐ |
| Memory utilization |
show system status |
<80% |
☐ |
| CPU utilization |
show system status |
<70% |
☐ |
Document Control
| Version |
Date |
Author |
Changes |
| 1.0 |
December 2025 |
Abhavtech Network Engineering |
Initial release |
Abhavtech Confidential - SD-WAN Controller Deployment Guide