SD-WAN and SDN

Software defined networks, from branch to data centre

I design and deliver software defined networks across the WAN, the campus and the data centre. This page shows how they work, the decisions that matter, and where I have used them. You can step through most diagrams at your own pace.

  • Catalyst SD-WAN
  • Viptela
  • OMP and TLOCs
  • SD-Access
  • Catalyst Center
  • VXLAN EVPN
  • ACI
  • SASE
An SD-WAN fabric Controllers at the top set policy. Two branches, a data centre and a cloud site are joined by encrypted tunnels that run over any transport, with traffic flowing directly between sites. control control Controllerspolicy and routes BranchLondon Data centrehub BranchDubai CloudSaaS and IaaS IPsec overlay over MPLS, internet and 5G
Live view · traffic flows site to site, never through the controllers
Overview

Why software defined changes the job

Traditional networks are run one box at a time. Software defined networks are run by intent: I describe what the network should do once, and controllers make every device do it.

Box by box compared with software defined Box by box: an engineer changes four site routers one at a time, and each router keeps its own control plane. Software defined: controllers push one policy to all four routers at once, and the routers forward traffic using the routes and policy they receive. EngineerSSH, one box at a time Controllersintent and policy Site 1control + datalocal routing Site 2control + datalocal routing Site 3control + datalocal routing Site 4control + datalocal routing 4 sites, 4 separate changes 1 policy, every site in step

Swipe sideways to see the whole diagram.

Box by box. Every router holds its own control plane and its own configuration. A change means logging in to each device in turn. Across 50 sites that is 50 changes, and each one is a chance for a typo. Over time the network drifts from its design.

Software defined. The overlay control plane and the policy move to controllers. I write the intent once, as templates and policy, and the controllers apply it to every edge. Edges still run BFD (bidirectional forwarding detection) and local routing, but take their overlay routes and policy from the controllers. Changes are faster, identical everywhere and easy to audit.

Animation

Separate the planes

Management, control and data each do one job. Controllers decide, edges forward, and a controller outage does not stop traffic for up to 12 hours by default.

Policy, not commands

Templates and central policy replace hand typed configuration, so 5 sites and 500 sites are run the same way.

Any transport

MPLS (Multiprotocol Label Switching), broadband and 5G become interchangeable. Each application uses whichever path meets its needs right now.

Planes

Four planes, one fabric

Cisco Catalyst SD-WAN, which grew out of Viptela, splits the network into orchestration, management, control and data planes. The clearest way to see how they fit is to follow a new branch from power on to live traffic.

Bringing a new branch into the SD-WAN fabric A new branch edge calls the Validator, proves its identity, receives its template from the Manager, joins the Controllers over DTLS, then builds IPsec tunnels over MPLS and internet to the data centre edge and forwards traffic directly. TRANSPORT: MPLS, INTERNET, 5G IPsec over MPLS IPsec over internet ValidatorvBond · orchestration ManagervManage · management ControllervSmart · control Branch edgesite 101 · brand new Data centre edgesite 200 · in service Certificate checked Template v3.2 OMP: routes, TLOCs, keys BFD on every tunnel, every second Controllers are never in the data path

Swipe sideways to see the whole diagram.

Step 1
  1. The new branch edge boots with only an address and a certificate. Plug and Play points it at the Validator, so nobody has to travel to the site.

  2. The Validator checks the device certificate against the allowed list, discovers any NAT on the path, and tells the edge where the Manager and Controllers live. It needs a public address every edge can reach, because it is the first thing a new edge talks to.

  3. The Manager pushes the device template: interfaces, segments, routing and security. Every site is built from the same versioned intent, which is how I keep a large estate consistent.

  4. The edge opens DTLS (Datagram Transport Layer Security) sessions to the Controllers and exchanges OMP (Overlay Management Protocol) routes, transport locators (TLOCs) and encryption keys. The Controllers act like route reflectors, with policy applied centrally.

  5. Edges build IPsec (IP Security) tunnels directly to each other over every transport, then run BFD inside each tunnel to measure loss, latency and jitter every second.

  6. User traffic goes straight from site to site. If the Controllers become unreachable, edges keep forwarding on their last known state for the graceful restart period, 12 hours by default.

Overlay

Any transport, one secure overlay

SD-WAN is a stack of layers. Each one hides the detail of the layer below, which is what makes the circuits interchangeable and the policy simple.

The layers of an SD-WAN From the bottom: transport circuits, transport locators at each site, IPsec tunnels between them, separate VPN segments inside the tunnels, and central policy on top. SITE A SITE B TransportMPLS, internet, 5G MPLSInternet5G TLOCssystem IP + colour a TLOC per circuit: system IP, colour, encapsulation OverlayIPsec tunnels, BFD SegmentsVPNs mapped to VRFs VPN 10 corporateVPN 20 guestVPN 30 OT Policyset once, centrally Voice: best path Guest: local exit OT: inspect at hub

Swipe sideways to see the whole diagram.

Step 1
  1. I start with the circuits a site can actually get: MPLS where it is still justified, business internet, and 4G or 5G for real path diversity. Two circuits are only diverse if their last mile is, so I check ducts and exchanges, not just carrier names.

  2. Each circuit becomes a TLOC (transport locator): the edge's system IP, a colour such as mpls or biz-internet, and the encapsulation. Colours decide which tunnels may form. The restrict option stops a TLOC building tunnels to any other colour, for example MPLS to internet.

  3. Edges build an IPsec tunnel for every allowed pair of TLOCs and run BFD across each one. This encrypted fabric is what every application rides on.

  4. Inside the fabric, each VPN is its own routing table from end to end. Corporate, guest and OT traffic share the circuits but never share a route unless policy says so.

  5. Policy sits on top, written once on the Manager and enforced by the Controllers and edges: which application uses which path, which segments may talk, and where traffic must be inspected.

Routing

How routes travel through the fabric

Inside Catalyst SD-WAN, routes move by OMP (the Overlay Management Protocol). It works much like BGP (Border Gateway Protocol) with route reflectors: edges tell the Controllers what they can reach, and the Controllers decide who hears what.

How a prefix travels through OMP from one site to another Edge A learns its LAN prefix 10.1.0.0/16 from OSPF and advertises it into OMP. It sends the OMP route, its TLOC routes and any service routes to the Controller over the control connection. The hub sends a service route for its firewall. The Controller picks the best path, applies control policy and reflects the route to Edge B. Edge B then sends traffic for 10.1.0.0/16 through its IPsec tunnel to Edge A. control over DTLS or TLS ControllerOMP route reflector Edge Asite 100 Edge Bsite 200 Hub edgefirewall service LAN A10.1.0.0/16 LAN B10.2.0.0/16 OSPF internal route into OMP OMP route + TLOC routes service route from hub best path · control policy 10.1.0.0/16 via TLOC A IPsec tunnel, checked by BFD

Swipe sideways to see the whole diagram.

Step 1
  1. Edge A learns its LAN prefix from OSPF (Open Shortest Path First), BGP, EIGRP (Enhanced Interior Gateway Routing Protocol) or a static route inside a service VPN. Connected and static routes go into OMP by default, and so do OSPF internal routes. BGP, EIGRP and OSPF external routes stay out until I advertise them under the OMP address family, and I filter anything the fabric should not learn.

  2. Edge A sends three kinds of route over its control connection. OMP routes carry its prefixes, TLOC routes describe each circuit (colour, preference and weight), and service routes point to any firewall or IPS (intrusion prevention system) attached to it in a service VPN. OMP also carries the keys for the data plane.

  3. The Controller is a route reflector. It is never in the data path. It picks the best path, then applies control policy: the topology (full mesh or hub and spoke), route filtering and service chaining, such as sending OT traffic through the hub firewall.

  4. Edge B receives 10.1.0.0/16 with TLOC A as the next hop. On IOS XE edges OMP routes have an administrative distance of 251, so a route learned locally from OSPF or BGP still wins unless I change it.

  5. Edge B already has an IPsec tunnel to TLOC A, checked by BFD, so traffic for 10.1.0.0/16 rides it. If every Controller is lost, the edges keep forwarding on what they last learned, for up to 12 hours by default.

The numbered VPNs

VPNWhat it carries
VPN 0Transport. The circuits, TLOCs, public addresses and NAT, the default route to each carrier and the control connections. Direct internet breakout leaves from here.
VPN 512Out of band management, kept apart from both transport and user traffic.
Service VPNsUser traffic, one VPN per segment, each mapped to a VRF (virtual routing and forwarding table): corporate, guest, OT, PCI (payment card) and so on.

Where each protocol runs

WhereProtocol
Between edges and ControllersOMP, inside the DTLS or TLS control connection.
Transport side, VPN 0Static default routes, or BGP to an MPLS provider.
Service side, each VPNBGP, OSPF, EIGRP or static routes to the LAN, the data centre or the old WAN.
Every tunnelBFD (Bidirectional Forwarding Detection), for liveness and path quality.

How OMP chooses between two routes

  1. Active before stale. Then only valid routes, whose TLOC is known and reachable.
  2. Administrative distance. The lower distance wins.
  3. OMP route preference. The higher preference wins. This is the main tool I use to steer a prefix.
  4. TLOC preference. The higher preference wins, which is how I make one circuit or hub the primary.
  5. Origin. Connected, then static, then the routing protocols in a fixed order, then the lower origin metric.
  6. Tie breakers. A route from an edge beats one from a Controller, then the lowest system IP, then the lowest private TLOC address.

Public and private colours

The colours mpls, metro-ethernet and private1 to private6 are private. Two private colours build tunnels to each other's private address. Every other colour, such as biz-internet or lte, is public, and tunnels to it use the public address the Validator saw through NAT.

Redistribution with care

A prefix that goes from OMP into OSPF at one site and back into OMP at another comes back with the wrong metric and can loop. I tag every route that comes from the fabric and filter it on the way back.

Two sites, one BGP AS

If two SD-WAN sites also meet through the old MPLS network in the same BGP autonomous system (AS), routes can leak through the underlay and loop. The overlay AS path, Site of Origin or tag filtering stops it.

Keep the hierarchy

Redistributing OMP into BGP at a regional core can flatten a hub and spoke design into one big mesh. I use route maps and OMP tags so the regions stay as designed.

Path selection

Each application takes the best path

Application aware routing measures every tunnel and moves each application to a path that meets its service level. Try it: change the circuits and watch the traffic move.

Application aware routing across three transports A branch edge connects to the data centre and SaaS over MPLS, internet and 5G. Voice, video, SaaS and backup traffic each move to the path that meets their service level as conditions change. MPLS Internet 5G Branch edgeBFD every second Data centreand SaaS Voice Video SaaS Backup

Swipe sideways to see the whole diagram.

Animation

MPLS

25 ms
0.1%

Internet

40 ms
0.5%
ApplicationService levelPath

Shown with fallback to best path turned on.

Measured, not assumed

BFD probes run inside every tunnel and report loss, latency and jitter. Decisions use measured averages, so a brownout is handled as well as an outage. I tune the timers so the fabric reacts quickly.

Service levels per class

I group applications into a few classes, such as voice, video, business critical and default, with clear thresholds. Too many classes make the design hard to run.

Metered links stay quiet

5G is a good backup, but it is charged per gigabyte, so I keep bulk traffic off it unless nothing else is left. I write cost into the policy.

Service level classes I start from

ClassLossLatencyJitter
Voiceunder 1%under 150 msunder 30 ms
Videounder 1%under 200 msunder 50 ms
Business criticalunder 3%under 300 msno limit set
Defaultunder 5%no limit setno limit set

Indicative starting values. Each organisation agrees its own, and the simulator above uses the same numbers.

When no path meets the service level

SettingWhat happens
Nothing setTraffic is shared across every tunnel that is up.
Fallback to best pathThe least bad path carries it. I use this for most classes.
Backup preferred colourA named transport takes over, such as the internet when MPLS fails its service level.
StrictThe traffic is dropped. I keep this for traffic that must never use a poor path.

BFD sends a hello every second by default and declares a tunnel down after seven missed hellos. Path quality is averaged over 10 minute poll intervals by default, which is too slow for voice, so I shorten the timers or use enhanced application aware routing on newer releases.

Quality of service on the edge

PieceWhat it doesHow I set it
ClassificationA central data policy, or a local access list, matches the application, DSCP (Differentiated Services Code Point) value or addresses, and sets a forwarding class.A few classes only, the same names at every site.
QueuesEach forwarding class maps to one of eight queues on the WAN interface. Queue 0 is the low latency queue, used by control traffic and voice.Voice and control in queue 0, then video, business critical and default by weight.
ShapingThe transport interface in VPN 0 is shaped to the circuit's real rate, so queuing happens on my edge, not in the carrier's network.Shape to the contracted rate, not the port speed.
Marking in the tunnelThe inner DSCP is copied to the outer IPsec header, so an MPLS carrier can honour it.Map the classes to the carrier's own classes at the MPLS hand off.

Quality of service only matters when a link is full. Before I rebuild a policy, I check utilisation and queue drops with show policy-map interface.

Segmentation

Separate networks on shared circuits

Segmentation has to be designed. Each business function gets its own VPN, with its own routes and its own rules for leaving it.

Three segments across one SD-WAN fabric Corporate traffic reaches business applications. Guest traffic leaves locally to the internet and has no route to the data centre. OT traffic is forced through a firewall before it reaches the OT historian. Corporate and OT both reach shared services through a controlled extranet. BRANCH DATA CENTRE Internet CorporateVPN 10 GuestVPN 20 OT and IoTVPN 30 Shared services Business apps Firewall OT historian 3 VPNs, 3 routing tables No route to the DC Service chain via OMP Extranet, prefix by prefix

Swipe sideways to see the whole diagram.

Step 1
  1. Corporate, guest and OT each get a VPN, which is a VRF (virtual routing and forwarding table) on the edge. They share circuits and tunnels but keep completely separate routing tables.

  2. Corporate users reach business applications in the data centre over the best path for each application. Nothing else can see those routes.

  3. Guest traffic leaves through the local internet breakout. There is no route from VPN 20 to the data centre, so a misconfigured device cannot reach it even by accident.

  4. OT and IoT traffic is chained through a firewall at the hub before it reaches the historian. The hub advertises the firewall as a service, and a control policy on the Controllers sends VPN 30 traffic through it, without touching each edge.

  5. Some services, such as DNS and identity, are needed by more than one segment. I leak those prefixes deliberately with central extranet policy, prefix by prefix, so every exception is visible and auditable.

Security

Breaking out locally, without losing control

Where internet traffic leaves the network is one of the biggest SD-WAN decisions. There are three patterns, and each has a cost.

Three ways to send branch traffic to the internet Backhaul sends internet traffic through the data centre firewall. Local breakout sends it straight out with security on the branch edge. Security service edge sends it through a tunnel to cloud security before it reaches SaaS. Branchusers and devices Data centrecentral firewall SaaS and webMicrosoft 365 Cloud securitySWG · CASB · ZTNA Firewall + IPS on box Extra latency, central choke point Fast, but every branch is an edge Fast and inspected everywhere

Swipe sideways to see the whole diagram.

Backhaul. All internet traffic goes through the data centre firewall. It is simple to secure, but SaaS is slower and the data centre circuit and firewall carry everyone's browsing.

Local breakout. Internet traffic leaves at the branch. SaaS gets faster, but every branch becomes an internet edge, so it needs a zone based firewall, IPS (intrusion prevention system) and URL filtering on the edge, sized for that load.

Cloud security. The branch tunnels internet traffic to a security service edge: web gateway, CASB (cloud access security broker), DNS security and zero trust access. Run with SD-WAN under one policy, this is SASE (secure access service edge). It is fast, consistent and protects remote users the same way. I still send Microsoft 365 traffic in its Optimize category straight out, as Microsoft advises. For most estates this is the pattern I recommend now.

Animation

Security features on the edge, and what they cost

FeatureWhat it doesSizing note
Zone based firewallStateful policy between zones built from the VPNs. The default control at every branch.Light. Runs on every edge.
DNS security (Umbrella)Blocks bad domains at the DNS request, before a connection exists.Very light. A good first layer everywhere.
IPS and IDS (intrusion detection system)Snort in a security container on the edge, using Talos signatures.Heavy. Needs memory and CPU headroom, so the platform is sized for it.
URL filteringBlocks sites by category and reputation, with a cloud lookup.Moderate. Needs the same security container.
Malware protectionChecks file reputation, and alerts if a file later turns out to be bad.Moderate. Often better done in the cloud.
Cloud security tunnelsIPsec or GRE (Generic Routing Encapsulation) tunnels to a security service edge such as Umbrella or Zscaler, built automatically.Light on the edge. The heavy inspection moves to the cloud.

Before IPS goes on every edge

I ask which threat it stops and whether IPS is the right control. Most HTTPS needs decryption before IPS sees anything, which costs far more. I usually run IPS where the threat justifies it, cloud security for the rest, and roll it out in waves with a rollback each time.

Cloud OnRamp for SaaS

The edge probes Microsoft 365, Webex and other SaaS through each exit, then sends users out of the best one, whether that is local internet, a regional hub or a cloud security tunnel.

Cloud OnRamp for multicloud

The Manager builds virtual edges and connections into AWS, Azure or Google Cloud, directly or through Megaport or Equinix, so cloud regions join the fabric like any other site. The cloud page shows the hybrid patterns.

Campus

Policy that follows the user

SD-Access brings the same idea to the campus. Identity decides the policy, not the port or the IP address, so a user gets the same access wherever they plug in.

How SD-Access connects and protects a user Catalyst Center builds the fabric. A laptop authenticates through ISE and receives a group tag. Its edge node registers it with the control plane node, looks up the destination, and sends traffic in VXLAN carrying the group tag. The far edge enforces group policy. FABRIC UNDERLAY: ROUTED ACCESS, IS-IS Catalyst Centerautomation, assurance Control plane nodeLISP map server Cisco ISEidentity, group policy Edge node Aaccess switch Edge node Baccess switch Border nodeto WAN and DC Laptopfinance user Finance app10.20.1.5 Underlay built by LAN Automation 802.1X ok · SGT 10 finance Register: laptop is at edge A Reply: 10.20.1.5 is at edge B VXLAN + SGT 10 Finance to app: permit Guest to app: deny

Swipe sideways to see the whole diagram.

Step 1
  1. Catalyst Center builds the routed IS-IS underlay with LAN Automation, then assigns the fabric roles. No spanning tree, no VLANs stretched across the campus, and every switch configured the same way.

  2. The laptop authenticates with 802.1X. Cisco ISE (Identity Services Engine) checks who and what it is, then assigns a scalable group tag (SGT), here finance, which carries the policy from now on.

  3. Edge node A tells the control plane node where the laptop lives. The control plane node is a LISP (Locator/ID Separation Protocol) map server: a live directory of every endpoint in the fabric.

  4. When the laptop talks to the finance app, edge A asks the control plane node where 10.20.1.5 is and caches the answer. No flooding and no giant MAC (media access control) address tables.

  5. Edge A wraps the traffic in VXLAN (virtual extensible LAN) and stamps the group tag into the header, so the user's identity travels with every packet across the fabric.

  6. Edge B checks the group policy matrix: finance to the finance app is permitted, guest to the same app is denied. The rule follows the user, wherever they connect.

Data centre

Fabrics that grow leaf by leaf

In the data centre, software defined usually means a leaf and spine fabric with a VXLAN overlay and a BGP EVPN (Ethernet VPN) control plane. The other common choice is Cisco ACI (Application Centric Infrastructure), which also uses VXLAN but is run end to end by its own controllers. The data centre page covers the physical side.

How a VXLAN BGP EVPN fabric learns and forwards Four leaves connect to two spines. Leaf 1 learns virtual machine A, advertises it in BGP EVPN through the spines, and every other leaf installs the route. Traffic from virtual machine B is then carried in VXLAN from leaf 3 to leaf 1. With Cisco ACI, an APIC cluster connected to the leaves runs the fabric and applies policy. Spine 1route reflector Spine 2route reflector APIC clusterACI policy Leaf 1VTEP Leaf 2VTEP Leaf 3VTEP Border leafto WAN VM A10.1.1.10 VM B10.1.1.20 WANand internet Any leaf to any leaf through one spine Leaf 1 learns MAC + IP EVPN route type 2: VM A is behind leaf 1 VXLAN, VNI 10010, spread over spines ACI: groups and contracts from the APIC

Swipe sideways to see the whole diagram.

Step 1
  1. Every leaf connects to every spine, so traffic between any two leaves crosses one spine, over equal cost paths. Adding capacity means adding a leaf or a spine, not redesigning the network.

  2. When VM A comes up, leaf 1 learns its MAC and IP address locally from its first packets. Other leaves learn it from BGP, not by flooding.

  3. Leaf 1 advertises a type 2 route through the spines, which act as route reflectors. Every leaf now knows that VM A lives behind leaf 1's tunnel endpoint (VTEP).

  4. VM B sends to VM A. Leaf 3 wraps the frame in VXLAN with the segment's VNI (VXLAN network identifier) and sends it across either spine. Leaf 1 unwraps it and delivers it.

  5. Cisco ACI also carries traffic in VXLAN, but works differently. The spines keep a database of every endpoint instead of using BGP EVPN, and an APIC (Application Policy Infrastructure Controller) cluster configures the whole fabric and applies policy as groups of workloads and contracts between them. I have worked with both. The right choice depends on the team that will run it.

Delivery

Migrate in waves, run it by intent

Most of the work is moving a live estate across without an outage, then keeping it tidy.

Migrating a branch estate to SD-WAN in waves Two data centre hubs and ten branches. The hubs move first so old and new networks can meet there, then two pilot branches, then the remaining branches in waves, and finally the legacy WAN is retired. DC 1 DC 2 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 Inventory, application flows, circuits Old and new networks meet at the hubs Pilot: one branch per hub Waves, lowest risk sites first Legacy WAN retired

Swipe sideways to see the whole diagram.

Step 1
  1. I start with what is really there: circuits, devices, routing, and above all the application flows. You cannot migrate what you have not mapped.

  2. The data centre edges move first, so the SD-WAN fabric and the old MPLS or DMVPN (Dynamic Multipoint VPN) network meet at the hubs. I align OMP and BGP preferences there so return traffic never takes a different path through a stateful firewall.

  3. One branch per hub goes next. We prove the template, the policy and the support process on real users before scaling.

  4. The rest move in planned waves, lowest risk first, each with pre and post checks, a tested rollback and a go or no go decision.

  5. Once every site is on the fabric, MPLS is thinned to what is still justified, or retired.

How I keep it running well

  1. Template everything. Every device is attached to a versioned template. Any CLI add on is tracked, justified and removed over time.
  2. Controllers first. Upgrade the controllers, let them settle, then move edges in waves: lab, low risk, standard, critical.
  3. Watch for drift. Compare running configuration with intent through the API every day. I report drift each month, and review the trend each quarter as a governance measure.
  4. Troubleshoot from the bottom up. Check control connections, then BFD and OMP, then policy. The fault is usually upstream of where it shows.
  5. Evidence for every change. Pre and post state, a tested rollback and agreed go or no go gates, presented at change board.
  6. Tier the sites. Not every site needs the same resilience. Hubs and major sites get two edges and two diverse transports. Small offices get one edge with broadband and 4G or 5G backup. Each tier is a standard pattern, so resilience is built in every time.
  7. Test it in the lab. My home lab runs the MPLS and DMVPN designs that SD-WAN replaces, so I can test routing and failover on the legacy side before a cutover.
Operations

Templates, drift and upgrades

An SD-WAN estate stays healthy only if the configuration on every edge matches the intent. This is how I keep the two in step, and how I upgrade without surprises.

How configuration drift is found and dealt with Templates in Git hold the intent. The Manager pushes them to three edges. Someone changes Edge 2 on its command line, so it drifts. A daily comparison through the API finds the difference. Each difference is then sorted into one of three classes: an emergency fix written into the template, an unauthorised change that is reversed, or a gap in the templates that goes on the backlog. Intenttemplates in Git Managerrenders and pushes Edge 1in step Edge 2in step Edge 2drifted Edge 3in step Daily diffAPI against Git versioned, reviewed every edge on a template manual change on the CLI Edge 2 out of step emergency fix: into the template unauthorised: reverse, review template gap: on the backlog

Swipe sideways to see the whole diagram.

Step 1
  1. Every edge is attached to a versioned template, and the templates live in Git, each with one owner. A template change is a change to every site that uses it, so template edits go to the change board, not just device pushes.

  2. The Manager fills each template with the site's own values and pushes it. Anything typed on an edge's command line is overwritten at the next push, which is why a local fix must go back into the template.

  3. Drift starts with a manual change during a fault, a fix that was never reverted, a push that failed part way or a device left in CLI mode. The Manager's out of sync flag only compares with the last attached template, so it misses some of these.

  4. Every day I pull each running configuration through the API and compare it with the intent in Git. The report lists each difference, with the device and the time it appeared.

  5. An emergency fix that was right is written into the template. An unauthorised change is reversed and reviewed. A gap in the templates goes on the backlog. I report the count each month: the aim is that every difference is known and closing, not that the number is zero.

Template types

TypeHow I use it
Feature templatesSmall building blocks, such as an interface, OSPF, AAA (authentication, authorisation and accounting) or logging. The standard pieces, owned and versioned.
Device templatesA set of feature templates that defines one kind of device. One per site type and platform.
CLI templates and add onsRaw configuration text. Only when nothing else covers a feature, with an owner, a reason and an end date. Every add on is future drift.
Configuration groupsThe newer, parameter driven model on recent Manager releases. New builds start here. Existing estates move only for a real feature reason, in waves.

Upgrading without surprises

  1. Check the compatibility matrix. Cisco publishes which Manager, Validator, Controller and edge versions work together. A mismatch can fail quietly.
  2. Controllers in their own window. The Manager, then the Validators, then the Controllers. Never in the same window as the edges.
  3. Let it settle. A soak period before any edge moves.
  4. Edges in waves. Lab, low risk, standard, then critical sites, with a snapshot before each wave and a go or no go decision.
  5. Pick the release train. A long life release for most estates, a newer one only when a feature needs it.

Template governance

One owner per template and a naming rule of region, site type, function and version, such as UK BRANCH WAN v3.2. Templates are mirrored in a test environment, and obsolete ones are cleared out each quarter.

When templates do not cover a feature

First choice is a feature request to the vendor and a tracked, time limited add on. Next is a configuration group. A pure CLI template is the last resort, with a written reason, an owner and an end date.

Segmentation as evidence

For an auditor, the policy intent, the Manager's configuration, the live state on each edge and the test results must all agree. Drift between intent and live state is usually the first finding, so the daily comparison doubles as evidence.

Faults

Faults I plan for, and how I find them

Pick a fault to see where it sits, what I check first and how I fix it. I always work from the underlay up: circuit, control connections, tunnels, then policy.

Common SD-WAN faults and where they sit The Manager, Validator and Controller sit at the top, two edges at the bottom with a tunnel between them. Each fault is marked where it happens. A bad template is pushed from the Manager to many edges. A Controller is out of sync because of a clock or certificate problem. An edge has no control connections. A tunnel is missing because of colour settings. An edge slows down after inspection is turned on. Managertemplates and API Validatorfirst contact ControllerOMP and policy Controllerout of sync Edge Abranch Edge Abranch Edge Bhub Edge Bhub new template version, every site failed push or CLI mode no control connections tunnel never formed CPU high after IPS on

Swipe sideways to see the whole diagram.

Bad template push. Many sites drop straight after a template change. I stop further pushes, work out the blast radius and find the exact difference. Sites still reachable through VPN 512 show what landed. I attach the previous template version, and recover unreachable sites by console, out of band access or zero touch provisioning. The review asks why the lab and the first wave did not catch it.

Controller out of sync. The Manager marks a Controller out of sync when its configuration or policy no longer matches the Manager. The usual causes are a failed template or policy push, a Controller changed in CLI mode, or a Manager cluster problem. I also check NTP (Network Time Protocol) and certificates, because they break control connections. Until it is fixed, I treat every change pushed in the meantime as suspect.

No control connections. The edge is up but has no control connections, so it learns nothing. I check the transport first, then show sdwan control connections and show sdwan control local-properties: certificate, system IP, site ID, organisation name, clock, and whether the Validator is reachable through any NAT in the path.

Missing tunnel. Control is fine, but one tunnel never forms. I check show sdwan omp tlocs and show sdwan bfd sessions. The cause is usually a colour or restrict setting, a TLOC that cannot reach the other one through NAT, or a firewall on the path blocking UDP 12346 to 12445, which the tunnels use.

Slow after inspection. Throughput falls or CPU climbs after IPS, URL filtering or a TLS proxy is turned on. I check the security container's load and the traffic mix. The fix is to trim features, move inspection to cloud security or use a bigger platform. Sizing before switching on avoids it.

The edge commands I use most

What I want to knowCommand on an IOS XE edge
Are the controllers reachable?show sdwan control connections
Who is this edge: certificate, system IP, site ID, organisationshow sdwan control local-properties
Are the tunnels up, and how good are they?show sdwan bfd sessions and show sdwan bfd summary
Is OMP peering up?show sdwan omp peers
Which routes and TLOCs has it learned?show sdwan omp routes vpn 10 and show sdwan omp tlocs
What policy did the Controller send?show sdwan policy from-vsmart
Path quality per tunnelshow sdwan app-route stats
What is really configured?show sdwan running-config
Engagement

How I run an SD-WAN programme, from first workshop to refresh

Every SD-WAN programme I lead follows the same path. I start with the people and the requirements, prove the facts with discovery tools, then design, test and hand over something the operations team can support and keep current.

How an engagement runs, from first conversation to lifecycle Seven stages from left to right: engage (stakeholders), requirements (FR and NFR), discovery (facts first), design (HLD and LLD), build and test (lab and pilot), support (handover), lifecycle (keep current). For each stage the panel shows who I work with and what comes out of it. After the lifecycle stage the loop returns to the start. Engagestakeholders RequirementsFR and NFR Discoveryfacts first DesignHLD and LLD Buildlab and pilot Supporthandover Lifecyclekeep current Step 1 · EngageAgree the outcome before the technologyWho I work withWhat comes outNetwork and security leadsService owners and financeSite and regional managersAgreed goals and success measuresScope: sites, apps and circuitsRisks, constraints and decision logEngagement plan and RACI Step 2 · RequirementsWhat it must do, and how wellWho I work withWhat comes outApplication ownersSecurity and riskOperations and service deskFunctional requirements by site typeNon functional targets with numbersApplication classes and service levelsRequirements traced to tests Step 3 · DiscoveryProve the current state with dataWho I work withWhat comes outCarriers and circuit ownersSite contactsMonitoring and NOC teamsCircuit and site inventoryApplication traffic profileCurrent routing and failover mapGaps against requirements Step 4 · DesignPatterns, not one off sitesWho I work withWhat comes outDesign authoritySecurity architectsVendor and partner expertsHigh level design and site templatesSegmentation and policy designLow level design and IP planTest plan and rollback plan Step 5 · Build and testProve it in the lab, then a pilotWho I work withWhat comes outEngineers and partnerPilot site usersChange advisory boardTested templates and configurationFailover and brownout test resultsPilot sign offWave plan for migration Step 6 · SupportOperations own it from day oneWho I work withWhat comes outService desk and NOCManaged service providerProblem managerRunbooks and known errorsMonitoring and alert thresholdsSupport model and escalationHypercare exit criteria Step 7 · LifecycleSoftware, circuits and hardware stay currentWho I work withWhat comes outVendor account teamProcurement and financeDesign authoritySoftware release and patch planEnd of life registerCapacity and circuit reviewsRefresh roadmap

Swipe sideways to see the whole diagram.

Step 1
  1. I start by agreeing why the programme exists: lower circuit cost, faster site moves, better application experience or tighter security. I write the goals as measures we can test later, and agree who decides what (a RACI: responsible, accountable, consulted, informed).

  2. I split requirements into functional ones, what the network must do, and non functional ones, how well it must do it. Each non functional requirement gets a number, such as loss, latency, recovery time or sites per region, so it can be tested.

  3. I check the facts against data, not memory: circuit bills and contracts, NetFlow and SNMP history, routing tables and firewall rules. This shows what really crosses the WAN, which sites are fragile and where the drawings are wrong.

  4. I design a small number of site templates, the segmentation model, the routing between the fabric and the old network, and the application policies. The high level design (HLD) and low level design (LLD) go to the design authority, and every decision goes in the decision log.

  5. I test the templates and failover in a lab, then run a pilot on a few real sites and measure the results against the non functional targets. Each migration wave then goes through change control with a rollback point.

  6. Before the first wave I agree who supports what: the service desk, the network operations centre (NOC), the carrier and the vendor. Runbooks, alerts and escalation are tested in hypercare, which ends only when the agreed exit criteria are met.

  7. Controller and edge software, security fixes, circuits and hardware all have a life. I keep a release plan, an end of life register and a quarterly capacity review, so the estate never drifts out of support.

Functional requirements

What it must do.

  • Connect every site type (branch, hub, data centre and cloud) over at least two transports.
  • Keep business, guest, OT and management traffic in separate segments from end to end.
  • Steer each application class onto the best path, within set limits for loss, latency and jitter.
  • Send trusted SaaS traffic straight to the internet, and the rest through cloud or hub security.
  • Join the fabric to the existing WAN during migration, with clear routing between the two.
  • Bring new sites online from templates with zero touch provisioning.

Non functional requirements

How well it must do it, with a number wherever one can be agreed.

Availability
99.99% at hub sites and 99.9% at branches with two transports.
Failover
Traffic moves to the other transport within seconds of an outage, and within a minute of a brownout with tuned application aware routing timers.
Performance
Voice under 150 ms one way, loss under 1% and jitter under 30 ms.
Scale
Sites per region, tunnels per edge and growth headroom agreed up front.
Security
Encrypted tunnels, segmentation, firewalling at the edge and logs sent to the SIEM (security information and event management).
Operability
Configuration from templates, drift reported, and every change through change control.
Cost
Circuit and licence cost per site agreed and tracked.

Typical starting targets for an SD-WAN estate. Each organisation agrees its own numbers, and each one becomes a test in the pilot.

Projects

Where I have delivered it

Software defined networking has been part of my work since the early Viptela days, across banking, industrial software, telecoms and consulting.

AVEVA · 2020 to 2021

Global network and security transformation

Designed and built LAN and WAN on Catalyst SD-WAN, SD-Access and Catalyst Center, and modernised every site worldwide remotely during lockdown, leading 7 engineers and coordinating 5 vendors.

BNY Mellon · 2018 to 2019

EMEA network refresh

Audit, high and low level design and implementation across LAN, WAN, SD-WAN and data centre, kept compliant with MiFID II throughout, with no service outages.

Vodafone · 2024

Technical design authority

Shaped SD-WAN, SD-Access and Catalyst Center planning so the backbone, data centre and edge could carry high throughput, low latency workloads.

XIDA · 2021 to 2024, 2025 to now

Lead architect and design authority

Network and security transformation from discovery to provisioning across Cisco Nexus, Catalyst SD-WAN, SD-Access and multi cloud, plus multi vendor SD-WAN and SD-Access designs for enterprise clients.

iSystems Integration · three engagements, 2015 to 2019

Early software defined networking

Cloud, SDN and security architecture on Nexus, Viptela, Palo Alto, F5 and Aruba, then architecture and delivery across Catalyst SD-WAN, SD-Access and disaster recovery.

Manx Telecom · 2016

Software defined data centre

Tier 3 data centre and managed infrastructure for over 300 customer sites on Cisco ACI and Nexus.

Backed by CCNP Enterprise, the Cisco Enterprise Design and Enterprise Core specialist certifications, and the CCIE Security and CCIE Routing and Switching written exams. See all credentials