Cisco Catalyst SD-WAN Lab Documentation
A Comprehensive Guide for CCIE Enterprise Infrastructure Preparation
Introduction to Cisco SD-WAN
Cisco Catalyst SD-WAN (formerly Viptela) is a software-defined wide area network solution that simplifies WAN management, enhances application performance, and improves security. It creates an overlay network over various transports (e.g., MPLS, Internet, LTE) using centralized management and policy enforcement.
Key components include:
- vManage: Centralized management for configuration, monitoring, and analytics.
- vBond: Orchestrator for device onboarding and controller discovery.
- vSmart: Control plane controller for routing and policy distribution via Overlay Management Protocol (OMP).
- WAN Edge Devices: Physical or virtual routers (e.g., vEdge, Cisco IOS XE SD-WAN) forming the data plane.
- OMP: Proprietary protocol for exchanging routes, TLOCs (Transport Locators), and policies.
- TLOC: Identifier combining system IP, color, and encapsulation (e.g., IPsec).
- Color: Label for transport types (e.g., MPLS, public-internet).
This lab deploys a functional SD-WAN environment, demonstrates certificate installation using Linux, and covers CCIE-relevant configurations.
Lab Objectives
- Deploy and configure SD-WAN controllers (vManage, vBond, vSmart).
- Onboard two WAN Edge routers (Edge1, Edge2) and establish the overlay network.
- Install certificates on controllers and WAN Edge devices using a Linux OS.
- Configure control and data plane policies.
- Verify connectivity and troubleshoot issues.
- Understand SD-WAN concepts and certificate management.
Lab Topology
Controllers:
- vManage: Management IP 192.168.1.1 (VPN 512), Transport IP 10.0.0.1 (VPN 0).
- vBond: Management IP 192.168.1.2, Transport IP 10.0.0.2.
- vSmart: Management IP 192.168.1.3, Transport IP 10.0.0.3.
WAN Edge Routers:
- Edge1: System IP 192.168.1.11, Site ID 100, Transport IP 10.0.1.11 (public-internet), LAN IP 172.16.100.1 (VPN 10).
- Edge2: System IP 192.168.1.12, Site ID 200, Transport IP 10.0.1.12 (mpls), LAN IP 172.16.200.1 (VPN 10).
Transport: Simulated public Internet and MPLS (VPN 0).
Service VPN: VPN 10 for LAN connectivity.
Linux System: Ubuntu 20.04 LTS, IP 192.168.1.100, for certificate management.
Assumptions: Virtualized environment (VMware ESXi/KVM), Cisco SD-WAN Release 20.12, DNS resolves vbond.example.com to 10.0.0.2, Symantec/DigiCert or enterprise CA certificates available.
SD-WAN Concepts Explained
A virtual network over physical transports, using tunnels to connect sites securely. Example: Edge1 and Edge2 form IPsec tunnels over public-internet and MPLS.
vSmart uses OMP to advertise routes and policies. vBond facilitates initial device connections. OMP is lightweight, similar to BGP, but optimized for SD-WAN.
WAN Edge devices establish tunnels with BFD to monitor path quality (latency, loss, jitter). Policies influence traffic forwarding (e.g., preferring MPLS for critical apps).
Certificates authenticate devices and secure DTLS/IPsec connections. Each device requires a root CA certificate and a signed device certificate. In this lab, a Linux system generates and signs certificates.
Control Policies: Modify OMP route attributes (e.g., prefer MPLS paths).
Data Policies: Control forwarding based on application or SLA requirements.
Localized Policies: Device-specific configurations (e.g., ACLs).
VPN 0: Transport for control/data plane traffic.
VPN 512: Out-of-band management.
Service VPNs (e.g., VPN 10): Isolate user traffic, akin to VRFs.
Lab Prerequisites
Hardware/Software:
- vManage: 16 vCPUs, 32 GB RAM, 100 GB disk.
- vBond: 2 vCPUs, 4 GB RAM, 20 GB disk.
- vSmart: 4 vCPUs, 8 GB RAM, 20 GB disk.
- WAN Edge: Cisco IOS XE SD-WAN routers (e.g., ISR 1100) or vEdge.
- Software: Cisco SD-WAN Release 20.12 (
viptela-20.12.qcow2,isr1100-ucmk9.17.12.01a.bin). - Linux: Ubuntu 20.04 LTS, IP 192.168.1.100, with OpenSSL installed.
Licensing: Cisco Smart Licensing account with DNA Advantage licenses.
Network: Simulated Internet/MPLS via lab switch/router. Open ports: DTLS (UDP 12346), IPsec (UDP 4500), HTTPS (TCP 443).
Tools: SSH client (e.g., PuTTY), browser for vManage GUI, Linux system with SCP and OpenSSL.
Step-by-Step Configuration
1.1 vManage Setup
Purpose: vManage provides centralized management for the SD-WAN fabric.
1. Deploy vManage VM: Download viptela-20.12.qcow2. Deploy on ESXi/KVM with two NICs (eth0: VPN 0, eth1: VPN 512). Boot and set persona:
Persona: vmanage
2. Configure vManage:
config
system
host-name vmanage
system-ip 192.168.1.1
site-id 1
organization-name "CCIE-Lab"
vbond 10.0.0.2
vpn 0
interface eth0
ip address 10.0.0.1/24
tunnel-interface
no shutdown
ip route 0.0.0.0/0 10.0.0.254
vpn 512
interface eth1
ip address 192.168.1.1/24
no shutdown
commit
Explanation: system-ip is a unique identifier. site-id groups devices by location. vbond points to vBond. vpn 0 is for transport, vpn 512 for management.
3. Access vManage GUI: Open https://192.168.1.1:8443, log in with admin/admin, and change the password.
1.2 vBond Setup
Purpose: vBond orchestrates device onboarding and controller discovery.
1. Deploy vBond VM: Use vBond image with 2 vCPUs, 4 GB RAM. One NIC for VPN 0.
2. Configure vBond:
config
system
host-name vbond
system-ip 192.168.1.2
site-id 1
organization-name "CCIE-Lab"
vbond 10.0.0.2 local
vpn 0
interface ge0/0
ip address 10.0.0.2/24
tunnel-interface
no shutdown
ip route 0.0.0.0/0 10.0.0.254
commit
Explanation: vbond local designates this as the orchestrator. tunnel-interface enables DTLS.
1.3 vSmart Setup
Purpose: vSmart manages the control plane, distributing OMP routes and policies.
1. Deploy vSmart VM: Use vSmart image with 4 vCPUs, 8 GB RAM. One NIC for VPN 0.
2. Configure vSmart:
config
system
host-name vsmart
system-ip 192.168.1.3
site-id 1
organization-name "CCIE-Lab"
vbond 10.0.0.2
vpn 0
interface ge0/0
ip address 10.0.0.3/24
tunnel-interface
no shutdown
ip route 0.0.0.0/0 10.0.0.254
commit
Purpose: Certificates secure SD-WAN communications. Use Ubuntu 20.04 to generate a root CA, create CSRs, sign certificates, and install them.
2.1 Set Up Linux Environment
1. Install OpenSSL:
sudo apt update
sudo apt install openssl
2. Create Directory Structure:
mkdir -p ~/sdwan-certs/{ca,certs,csr}
cd ~/sdwan-certs
2.2 Create Root CA
1. Generate Root CA Private Key:
openssl genrsa -out ca/root-ca.key 4096
Explanation: Creates a 4096-bit private key.
2. Create Root CA Certificate:
openssl req -x509 -new -nodes -key ca/root-ca.key -sha256 -days 3650 -out ca/root-ca.crt -subj "/C=US/ST=CA/O=CCIE-Lab/CN=RootCA"
Explanation: Creates a self-signed certificate valid for 10 years.
2.3 Generate and Sign Certificates
Repeat for vManage, vBond, vSmart, Edge1, Edge2.
1. Generate Device Private Key (e.g., vManage):
openssl genrsa -out certs/vmanage.key 2048
2. Create CSR:
openssl req -new -key certs/vmanage.key -out csr/vmanage.csr -subj "/C=US/ST=CA/O=CCIE-Lab/CN=vmanage"
3. Sign CSR:
echo -e "[v3_ca]\nsubjectAltName=IP:10.0.0.1" > v3.ext
openssl x509 -req -in csr/vmanage.csr -CA ca/root-ca.crt -CAkey ca/root-ca.key -CAcreateserial -out certs/vmanage.crt -days 1825 -sha256 -extfile v3.ext
Explanation: Adds transport IP as SAN, signs certificate for 5 years.
4. Repeat: Use SAN IPs 10.0.0.2 (vBond), 10.0.0.3 (vSmart), 10.0.1.11 (Edge1), 10.0.1.12 (Edge2).
2.4 Transfer Certificates
1. Enable SCP on Devices:
config
ip scp server enable
commit
2. Copy Files:
scp ca/root-ca.crt certs/vmanage.crt certs/vmanage.key admin@192.168.1.1:/home/admin
scp ca/root-ca.crt certs/vbond.crt certs/vbond.key admin@192.168.1.2:/home/admin
scp ca/root-ca.crt certs/vsmart.crt certs/vsmart.key admin@192.168.1.3:/home/admin
scp ca/root-ca.crt certs/edge1.crt certs/edge1.key admin@10.0.1.11:/home/admin
scp ca/root-ca.crt certs/edge2.crt certs/edge2.key admin@10.0.1.12:/home/admin
2.5 Install Certificates
1. Install Root CA:
request root-cert-chain install /home/admin/root-ca.crt
2. Install Device Certificate (vManage, vBond, vSmart):
request certificate install /home/admin/.crt
(Edge1, Edge2):
request platform software sdwan certificate install /home/admin/.crt
3. Verify:
show sdwan certificate status
2.6 Add Controllers to vManage
In vManage GUI (Configuration > Devices > Controllers):
- Add vBond (IP: 10.0.0.2, Type: vBond).
- Add vSmart (IP: 10.0.0.3, Type: vSmart).
- Verify certificates in Configuration > Certificates.
3.1 Prepare WAN Edge Devices
Use Cisco IOS XE SD-WAN routers (e.g., ISR 1100). Download isr1100-ucmk9.17.12.01a.bin.
3.2 Configure Edge1
1. Bootstrap Configuration:
config
system
host-name edge1
system-ip 192.168.1.11
site-id 100
organization-name "CCIE-Lab"
vbond 10.0.0.2
vpn 0
interface ge0/0/0
ip address 10.0.1.11/24
tunnel-interface
encapsulation ipsec
color public-internet
no shutdown
ip route 0.0.0.0/0 10.0.1.254
vpn 10
interface ge0/0/1
ip address 172.16.100.1/24
no shutdown
commit
2. Install Software:
copy scp://admin@192.168.1.100/isr1100-ucmk9.17.12.01a.bin bootflash:
request platform software install bootflash:isr1100-ucmk9.17.12.01a.bin
reload
3.3 Configure Edge2
1. Bootstrap Configuration:
config
system
host-name edge2
system-ip 192.168.1.12
site-id 200
organization-name "CCIE-Lab"
vbond 10.0.0.2
vpn 0
interface ge0/0/0
ip address 10.0.1.12/24
tunnel-interface
encapsulation ipsec
color mpls
no shutdown
ip route 0.0.0.0/0 10.0.1.254
vpn 10
interface ge0/0/1
ip address 172.16.200.1/24
no shutdown
commit
2. Install Software: Repeat steps from Edge1.
3. Onboard to vManage: In vManage (Configuration > Devices > Unclaimed WAN Edges), claim Edge1 and Edge2.
1. System Template:
System IP: {{system-ip}}
Site ID: {{site-id}}
Hostname: {{hostname}}
Organization Name: CCIE-Lab
vBond: 10.0.0.2
2. VPN 0 Template:
VPN 0
Interface: ge0/0/0
IP Address: {{ip-address}}/24
Tunnel-Interface
Encapsulation: ipsec
Color: {{color}}
Allow-Service: all
Default Gateway: {{gateway}}
3. VPN 10 Template:
VPN 10
Interface: ge0/0/1
IP Address: {{lan-ip}}/24
4. Attach Templates:
- Edge1: system-ip 192.168.1.11, site-id 100, ip-address 10.0.1.11, color public-internet, lan-ip 172.16.100.1, gateway 10.0.1.254.
- Edge2: system-ip 192.168.1.12, site-id 200, ip-address 10.0.1.12, color mpls, lan-ip 172.16.200.1, gateway 10.0.1.254.
1. Control Policy (MPLS Preference):
policy
control-policy MPLS-Preferred
sequence 10
match route
site-id 200
prefix-list LAN-Networks
action accept
set preference 100
default-action accept
prefix-list LAN-Networks
ip-prefix 172.16.0.0/16
2. Data Policy (Application-Aware Routing):
policy
app-route-policy MS365-Priority
sequence 10
match
app-list MS365
action
sla-class Critical
preferred-color mpls
default-action sla-class Best-Effort
lists
app-list MS365
app teams
app outlook
sla-class Critical
latency 150
loss 2
jitter 30
3. Apply Policies: In vManage, activate the centralized policy.
Verification and Troubleshooting
1. Verify Control Connections:
show sdwan control connections
2. Verify Data Plane:
show sdwan bfd sessions
3. Verify Routing:
show sdwan omp routes vpn 10
4. Test Connectivity: Ping from 172.16.100.1 to 172.16.200.1.
5. Troubleshooting:
- Certificate Issues:
show sdwan certificate status - a>Control Connection Failures:
show sdwan control connections-history
Additional Resources
- Cisco Catalyst SD-WAN Configuration Guide
- Cisco Press: “Cisco Software-Defined Wide Area Networks” by Jason Gooley
- Cisco DevNet: SD-WAN Sandbox
- OpenSSL Documentation
Lab Configuration Artifact
# vManage Configuration
config
system
host-name vmanage
system-ip 192.168.1.1
site-id 1
organization-name "CCIE-Lab"
vbond 10.0.0.2
vpn 0
interface eth0
ip address 10.0.0.1/24
tunnel-interface
no shutdown
ip route 0.0.0.0/0 10.0.0.254
vpn 512
interface eth1
ip address 192.168.1.1/24
no shutdown
commit
# vBond Configuration
config
system
host-name vbond
system-ip 192.168.1.2
site-id 1
organization-name "CCIE-Lab"
vbond 10.0.0.2 local
vpn 0
interface ge0/0
ip address 10.0.0.2/24
tunnel-interface
no shutdown
ip route 0.0.0.0/0 10.0.0.254
commit
# vSmart Configuration
config
system
host-name vsmart
system-ip 192.168.1.3
site-id 1
organization-name "CCIE-Lab"
vbond 10.0.0.2
vpn 0
interface ge0/0
ip address 10.0.0.3/24
tunnel-interface
no shutdown
ip route 0.0.0.0/0 10.0.0.254
commit
# Edge1 Configuration
config
system
host-name edge1
system-ip 192.168.1.11
site-id 100
organization-name "CCIE-Lab"
vbond 10.0.0.2
vpn 0
interface ge0/0/0
ip address 10.0.1.11/24
tunnel-interface
encapsulation ipsec
color public-internet
no shutdown
ip route 0.0.0.0/0 10.0.1.254
vpn 10
interface ge0/0/1
ip address 172.16.100.1/24
no shutdown
commit
# Edge2 Configuration
config
system
host-name edge2
system-ip 192.168.1.12
site-id 200
organization-name "CCIE-Lab"
vbond 10.0.0.2
vpn 0
interface ge0/0/0
ip address 10.0.1.12/24
tunnel-interface
encapsulation ipsec
color mpls
no shutdown
ip route 0.0.0.0/0 10.0.1.254
vpn 10
interface ge0/0/1
ip address 172.16.200.1/24
no shutdown
commit
# Control Policy
policy
control-policy MPLS-Preferred
sequence 10
match route
site-id 200
prefix-list LAN-Networks
action accept
set preference 100
default-action accept
prefix-list LAN-Networks
ip-prefix 172.16.0.0/16
# Data Policy
policy
app-route-policy MS365-Priority
sequence 10
match
app-list MS365
action
sla-class Critical
preferred-color mpls
default-action sla-class Best-Effort
lists
app-list MS365
app teams
app outlook
sla-class Critical
latency 150
loss 2
jitter 30
# Linux Certificate Commands
# Install OpenSSL
sudo apt update
sudo apt install openssl
# Create Directory Structure
mkdir -p ~/sdwan-certs/{ca,certs,csr}
cd ~/sdwan-certs
# Generate Root CA
openssl genrsa -out ca/root-ca.key 4096
openssl req -x509 -new -nodes -key ca/root-ca.key -sha256 -days 3650 -out ca/root-ca.crt -subj "/C=US/ST=CA/O=CCIE-Lab/CN=RootCA"
# Generate vManage Certificate
openssl genrsa -out certs/vmanage.key 2048
openssl req -new -key certs/vmanage.key -out csr/vmanage.csr -subj "/C=US/ST=CA/O=CCIE-Lab/CN=vmanage"
echo -e "[v3_ca]\nsubjectAltName=IP:10.0.0.1" > v3.ext
openssl x509 -req -in csr/vmanage.csr -CA ca/root-ca.crt -CAkey ca/root-ca.key -CAcreateserial -out certs/vmanage.crt -days 1825 -sha256 -extfile v3.ext
# Generate vBond Certificate
openssl genrsa -out certs/vbond.key 2048
openssl req -new -key certs/vbond.key -out csr/vbond.csr -subj "/C=US/ST=CA/O=CCIE-Lab/CN=vbond"
echo -e "[v3_ca]\nsubjectAltName=IP:10.0.0.2" > v3.ext
openssl x509 -req -in csr/vbond.csr -CA ca/root-ca.crt -CAkey ca/root-ca.key -CAcreateserial -out certs/vbond.crt -days 1825 -sha256 -extfile v3.ext
# Generate vSmart Certificate
openssl genrsa -out certs/vsmart.key 2048
openssl req -new -key certs/vsmart.key -out csr/vsmart.csr -subj "/C=US/ST=CA/O=CCIE-Lab/CN=vsmart"
echo -e "[v3_ca]\nsubjectAltName=IP:10.0.0.3" > v3.ext
openssl x509 -req -in csr/vsmart.csr -CA ca/root-ca.crt -CAkey ca/root-ca.key -CAcreateserial -out certs/vsmart.crt -days 1825 -sha256 -extfile v3.ext
# Generate Edge1 Certificate
openssl genrsa -out certs/edge1.key 2048
openssl req -new -key certs/edge1.key -out csr/edge1.csr -subj "/C=US/ST=CA/O=CCIE-Lab/CN=edge1"
echo -e "[v3_ca]\nsubjectAltName=IP:10.0.1.11" > v3.ext
openssl x509 -req -in csr/edge1.csr -CA ca/root-ca.crt -CAkey ca/root-ca.key -CAcreateserial -out certs/edge1.crt -days 1825 -sha256 -extfile v3.ext
# Generate Edge2 Certificate
openssl genrsa -out certs/edge2.key 2048
openssl req -new -key certs/edge2.key -out csr/edge2.csr -subj "/C=US/ST=CA/O=CCIE-Lab/CN=edge2"
echo -e "[v3_ca]\nsubjectAltName=IP:10.0.1.12" > v3.ext
openssl x509 -req -in csr/edge2.csr -CA ca/root-ca.crt -CAkey ca/root-ca.key -CAcreateserial -out certs/edge2.crt -days 1825 -sha256 -extfile v3.ext
# Transfer Certificates
scp ca/root-ca.crt certs/vmanage.crt certs/vmanage.key admin@192.168.1.1:/home/admin
scp ca/root-ca.crt certs/vbond.crt certs/vbond.key admin@192.168.1.2:/home/admin
scp ca/root-ca.crt certs/vsmart.crt certs/vsmart.key admin@192.168.1.3:/home/admin
scp ca/root-ca.crt certs/edge1.crt certs/edge1.key admin@10.0.1.11:/home/admin
scp ca/root-ca.crt certs/edge2.crt certs/edge2.key admin@10.0.1.12:/home/admin
Conclusion
This lab provides a complete SD-WAN deployment with detailed certificate management using Linux, covering CCIE objectives like overlay networking, policy configuration, and security. The Linux-based certificate process ensures secure authentication, a critical SD-WAN component. For advanced scenarios (e.g., BGP, Cloud OnRamp), refer to Cisco documentation or request further configurations.