Course contents

Unit 13: Advanced scenariosLesson 13.3 (3 of 4 in this unit)24 of 25 in the Advanced Cisco SD-WAN course

Scenario: AAR in point-to-multipoint topologies

Application-aware routing with one hub and many spokes: who decides each direction, how measurement scales, and what spoke-to-spoke traffic does.

Advanced · 14 min read

You'll learn to apply application-aware routing in a hub-and-spoke network, explain why each direction needs its own policy, estimate the measurement load on the hub, and predict what a hub-wide fault does to every spoke.

Technical definition

Point-to-multipoint AAR is application-aware routing in a topology where one hub site has tunnels to many spokes. Each WAN Edge measures and decides for the traffic it sends, so the hub and every spoke make separate choices, and the hub carries the measurement load of all its tunnels.

One hub, two hundred spokes, one voice requirement

HUB-01 (site 10) is the head office. About 200 branch sites are spokes, and most have two transports: an MPLS circuit and an internet line. BR-01 (site 101) is one of them. Voice runs between the spokes and gateways behind HUB-01, and the requirement is plain: voice prefers MPLS, and moves to the internet path when the MPLS quality drops. BR-02 (site 102) has only an internet line, so for it the policy has nothing to choose between. Site IDs and colours are examples.

The mechanics of measurement and SLA classes are in the application-aware routing lesson. This one covers what changes when there are many tunnels converging on one place.

Each direction is decided by the sender

AAR is applied by the router that sends the traffic. A spoke chooses a path for traffic going to the hub, using its own measurements of its own tunnels and the policy applied to its site. The hub chooses a path for traffic going to a spoke, using the hub's measurements of its tunnels to that spoke and the policy applied to the hub's site. The two decisions are separate.

Each direction is decided by the sender
Each direction is decided by the senderPolicy applied at; Spoke to hub; Hub to spoke. Spokes only: Steered by AAR Follows routing: the hub does not apply the SLA, and may choose a path that is poor Hub only: Follows routing and the spoke's own choice of colour Steered by AAR Hub and spokes: Steered by AAR Steered by AARPolicy applied atSpoke to hubHub to spokeSpokes onlySteered by AARFollows routing: the hub does notapply the SLA, and may choose a paththat is poorHub onlyFollows routing and the spoke's ownchoice of colourSteered by AARHub and spokesSteered by AARSteered by AAR

On small screens, swipe sideways or focus the diagram and use the arrow keys.

Read each row across: the left box names the item, the others describe it.

For voice, the third row is the one that works. The paths may end up different in the two directions, for example spoke to hub over the internet and hub to spoke over MPLS. That is acceptable for voice only if both directions meet the SLA, because a call is bad if either side is bad. Stateful devices on the hub side, such as a firewall in front of the gateways, also need to cope with asymmetric paths, which is the same issue as in the dual-hub lesson.

Site lists and where to apply the policy

A site list is a named group of site IDs. Two are enough here: one for the hub and one for the spokes. The same policy can be applied to both lists, or two policies with different SLA values and preferences can be used if the directions need different treatment.

policy lists site-list HUB site-id 10 ! site-list SPOKES site-id 101-300 ! vpn-list VOICE-VPN vpn 20 ! ! sla-class VOICE loss 2 latency 150 jitter 30 ! app-route-policy VOICE-AAR vpn-list VOICE-VPN sequence 10 match dscp 46 ! action sla-class VOICE preferred-color mpls ! ! ! ! ! apply-policy site-list SPOKES app-route-policy VOICE-AAR ! site-list HUB app-route-policy VOICE-AAR ! !

Outline of structure only, shortened and not tested on a device. It shows one policy applied to two site lists, so that both directions are steered. Verify the keywords in your release and how SD-WAN Manager builds the same policy. The thresholds, the site range and the colour are examples, not defaults. Loss is in per cent, latency and jitter in milliseconds.

The site range 101-300 stands for the spokes in this example. In a real network the list is whatever your site numbering plan makes of it. A spoke that is missing from the list gets no steering in its outbound direction, and nothing in the network reports that as an error.

AAR with one hub and many spokes: each sender decides its own direction
AAR with one hub and many spokes: each sender decides its own directionHUB-01 is the head office with about 200 spokes. BR-01 has two transports, MPLS and internet, and a voice policy that prefers MPLS and moves to the internet when MPLS quality drops. BR-02 has only an internet line, so there is nothing to choose between. A spoke decides the path for traffic going to the hub from its own measurements; the hub decides the path for traffic going to each spoke from its own measurements of its tunnels to that spoke.HUB-01site 10, head officeBR-01MPLS + internetBR-02internet onlyabout 200 spokesMPLS preferredinternet onlySpoke to hub: chosen by the spokeusing its own tunnel measurementsHub to spoke: chosen by the hubusing its measurements to that spoke

On small screens, swipe sideways or focus the diagram and use the arrow keys.

Forward and return directions are chosen separately, by the router that sends. A fault at the hub moves every spoke at once, so test it before relying on it.

What the hub measures

A spoke has few tunnels: with MPLS and internet to one hub and the same colours at both ends, that is two per hub. The hub has all of them. Each tunnel has a BFD session, and each session is measured and recorded. The arithmetic for this network:

Design choiceTunnels per spoke to HUB-01Sessions on HUB-01 (200 spokes)
Two colours, restrict set (same colour pairs only)2400
Two colours, no restrict (every colour pair)4800
Add a second hub with the same layout4 (two per hub)400 on each hub
Internet-only spoke such as BR-0211 per such spoke

With the default one-second BFD hello, 400 sessions mean about 400 probes per second sent by the hub, plus the same number received. That is small for the bandwidth of a hub, but the sessions also use memory, and the per-interval statistics for every tunnel use more still. Platform limits for the number of tunnels and BFD sessions differ by model and release: look them up for the hub you plan to buy, with room to grow.

  • Restrict colours so that MPLS only builds tunnels to MPLS. Doubling the sessions for combinations nobody uses is the most common waste. See TLOC components.
  • Think before shortening the measurement settings. A shorter poll interval and a smaller multiplier make AAR react faster, and produce more statistics and more sensitivity. Multiplied by 200 spokes, the cost of a setting chosen for one site is paid at the hub.
  • Do not measure what no policy uses. Colours that carry no AAR traffic still have BFD sessions. They are still needed for failure detection, but not for steering.

A fault at the hub moves every spoke at once

Suppose HUB-01's MPLS uplink becomes congested at 14:00. Every spoke's MPLS tunnel to the hub shows loss and delay, because they share that uplink. Spokes and hub all decide, more or less together, that MPLS no longer meets the VOICE class and move voice to the internet path. Two things follow:

  1. The hub's internet uplink now carries the voice of 200 sites at once. If it is smaller than the MPLS one, it can become the next bottleneck, the internet tunnels start missing the SLA, and no tunnel qualifies.
  2. When MPLS recovers, all sites may move back together, in a burst, and the cycle can repeat.

The options are modest, and they should be chosen on purpose. Size the internet uplink at the hub for the voice load that can move, not only for normal use. Use a measurement multiplier that smooths over short congestion, so a few bad intervals do not trigger a move. Check whether your release has variance settings that make the router move back only when the original path is clearly better. Decide what the policy does when no path meets the SLA (shared, best available, or dropped): with 200 sites, that choice is the most important one in the policy. A second hub with its own uplinks spreads the risk, at the price of more tunnels and a return-path design.

Checking the two ends

Example output written for this lesson, simplified; real output has more fields and a different layout
BR-01#show sdwan app-route stats
REMOTE SYSTEM IP  LOCAL COLOR   REMOTE COLOR  INDEX  PACKETS  LOSS  LATENCY  JITTER
10.255.1.1        mpls          mpls          0      600      0     32       3
10.255.1.1        mpls          mpls          1      600      0     33       2
10.255.1.1        biz-internet  biz-internet  0      600      0     24       2
10.255.1.1        biz-internet  biz-internet  1      600      0     25       4
On the spoke: two tunnels, both to HUB-01 (10.255.1.1), both inside the VOICE class. The spoke chooses the MPLS one for voice because it is the preferred colour and qualifies. It sees only its own tunnels. The values are an example.
Example output written for this lesson, simplified; real output has more fields and a different layout
HUB-01#show sdwan app-route stats | include 10.255.2
10.255.2.1   mpls          mpls          0      600      0     31       3
10.255.2.1   biz-internet  biz-internet  0      600      0     23       2
10.255.2.2   biz-internet  biz-internet  0      600      0     41       6
10.255.2.3   mpls          mpls          0      600      4     38       5
10.255.2.3   biz-internet  biz-internet  0      600      0     26       3
On the hub, the same kind of table has a pair of rows per spoke, and one row for BR-02 (10.255.2.2), which has no MPLS. The row for 10.255.2.3 (BR-03A) shows 4 per cent loss on MPLS in the direction the hub is measuring: the hub, not the spoke, chooses the hub-to-spoke path, so this is the table that explains a one-way complaint. A spoke and the hub measure the same tunnel from their own sides, and their numbers for it can differ. With 200 spokes the output is long: filter by system IP.
show sdwan policy from-vsmart

Run on the hub and on a spoke. Both should list the app-route policy. A hub that does not list it is not steering hub-to-spoke traffic, which is the quiet failure in the table above. The command name varies a little between releases.

Spoke-to-spoke traffic

If the topology is strictly hub-and-spoke, spokes have no tunnels to each other. A flow from BR-01 to BR-02 goes to HUB-01, is forwarded by the hub, and goes on to BR-02. There are two tunnels and two measurements:

  • The latency of the call is about the sum of both legs plus the processing at the hub. Two legs of 40 ms each give an end-to-end figure near 80 ms, even though each tunnel passes a 150 ms class on its own.
  • The SLA is measured per tunnel, not end to end. The policy cannot ask for "less than 150 ms between BR-01 and BR-02". If the end-to-end limit matters, set the per-leg thresholds lower than the end-to-end target.
  • The first leg is chosen by the policy at the sending spoke. Whether the policy applies again at the hub to traffic that arrives from one tunnel and leaves by another depends on how it is applied and on the release. Check it. If it does not apply, the second leg follows routing.

The alternative is to allow direct spoke-to-spoke tunnels, built on demand in some designs. That removes the double leg and the hub load for those flows, and adds tunnels and policy cases between spokes. Whether to allow them is a topology decision made before the AAR policy, not by it.

Validation table

Validation table
Validation tableWhat to test; How; Expected result. Policy reached both ends: Show the received policy on the hub and a spoke The app-route policy is listed on both Normal path, both directions: Service-path query on the spoke and on the hub for a voice flow MPLS in both directions Impair MPLS for one spoke (lab): Add loss on one spoke's MPLS with an emulator, watch stats on both ends That spoke and the hub move voice for that spoke only. Other spokes unchanged Impair only one direction: Add loss in one direction only Record which router moves. The other direction may stay, which is the per-direction behaviour Hub-side impairment: Add loss at the hub's MPLS uplink in the lab with several test spokes All test spokes move together. Check the internet uplink load and the return after recovery No path meets the SLA: Impair both colours on a spoke The behaviour the policy chose: shared, best available, or dropped Spoke to spoke: Ping and a call between two spokes, with impairment on one leg Two measured legs, each decided by its own router Internet-only spoke: Check BR-02 No choice to make; traffic stays on the one colour, and the SLA has no effectWhat to testHowExpected resultPolicy reached bothendsShow the received policy on the huband a spokeThe app-route policy is listed onbothNormal path, bothdirectionsService-path query on the spoke andon the hub for a voice flowMPLS in both directionsImpair MPLS for onespoke (lab)Add loss on one spoke's MPLS with anemulator, watch stats on both endsThat spoke and the hub move voice forthat spoke only. Other spokesunchangedImpair only onedirectionAdd loss in one direction onlyRecord which router moves. The otherdirection may stay, which is theper-direction behaviourHub-side impairmentAdd loss at the hub's MPLS uplink inthe lab with several test spokesAll test spokes move together. Checkthe internet uplink load and thereturn after recoveryNo path meets the SLAImpair both colours on a spokeThe behaviour the policy chose:shared, best available, or droppedSpoke to spokePing and a call between two spokes,with impairment on one legTwo measured legs, each decided byits own routerInternet-only spokeCheck BR-02No choice to make; traffic stays onthe one colour, and the SLA has noeffect

On small screens, swipe sideways or focus the diagram and use the arrow keys.

Read each row across: the left box names the item, the others describe it.
Why test on one spoke first, with the hub still running?

The scale effects only appear with many spokes, so a lab with three spokes cannot show them. What a small test can show is the logic: which router moves, in which direction, and what the policy does when no path qualifies. Do that first. Then estimate the scale effects from the table of sessions and the hub uplink sizes, and confirm them during a staged rollout, a few spokes at a time, watching the hub's resources.

Test yourself on AAR with many spokes

Predict · scenario 1

The VOICE app-route policy is applied to the spokes site list only. A spoke's MPLS path degrades. What happens to voice from the hub to that spoke?

Predict · scenario 2

HUB-01 serves 200 spokes with MPLS and internet. Colours are not restricted, so every colour pair builds a tunnel. Roughly how many BFD sessions does the hub hold, and what is a cheaper design?

Predict · scenario 3

At 14:00 the hub's MPLS uplink is saturated, and several hundred voice calls move to the internet path at the same time. Calls then get worse. What is the most likely cause and a sensible response?

Predict · scenario 4

BR-01 calls BR-02 through HUB-01. Each leg has 70 ms latency, and the VOICE class limit is 100 ms per tunnel. The users say the call is delayed. Is the SLA broken?

FAQ

If a policy is applied on the spokes, does it also steer traffic from the hub?
No. An application-aware routing policy acts on traffic sent by the site it is applied to. A spoke policy steers spoke-to-hub traffic. Hub-to-spoke traffic is steered by a policy applied at the hub site, and without one it follows whatever routing selects.
Is the SLA checked from one end of a spoke-to-spoke flow to the other?
No. The SLA is checked per tunnel. When spoke traffic passes through the hub there are two tunnels, each measured on its own. Two legs that each meet a 150 ms limit can add up to more than that end to end.
Does adding spokes make the SD-WAN Manager's job harder or the hub's?
Both grow, but in different ways. The Manager and Controller handle more devices and statistics. The hub carries one tunnel and one BFD session per spoke per colour pair, plus the forwarding. Platform limits are in the datasheet for your model and release.