Skip to content

Add Application-Aware Routing

At this stage, we have achieved full management of our SD-WAN infrastructure using an Infrastructure as Code approach. From now on, we are going to perform all changes in the infrastructure following the DevOps framework, treating changes as if we are developing code.

Add New Application as Part of Our Policies

Section titled “Add New Application as Part of Our Policies”

We have received a request to add a new application as part of our centralized policies:

Name of the application list: Google_Apps_Updates Applications included:

  • android-updates
  • chrome_update
  • youtube
  • youtube_hd SLA Class name: SLA-GOOGLE Parameters for the SLA:
  • Latency: 250ms
  • Loss percentage: 2%

It is requested to use application-aware routing for better optimization of our links. It will be placed under Test_application_aware_routing_number2 and will use AAR-Default routing.

Before we start, below are examples of the YAML samples and dependencies.

Application List Diagram

sdwan:
policy_objects:
application_lists:
- name: amazon_aws_apps
applications:
- amazon
- amazon-web-services
- amazon-instant-video
- amazon-cloudfront
- amazon-ec2
- amazon-s3

SLA List Diagram

sdwan:
policy_objects:
sla_classes:
- name: Best-Effort
latency_ms: 200
loss_percentage: 1
fallback_best_tunnel_criteria: latency

Centralized Policies Diagram Part 1

Centralized Policies Diagram Part 2

Centralized Policies Diagram Part 3

Centralized Policies Diagram Part 4

sdwan:
centralized_policies:
definitions:
data_policy:
application_aware_routing:
- name: Test_application_aware_routing_number2
description: Test_application_aware_routing_number2
default_action_type:
sla_class_list: default
sequences:
- id: 1
name: aar_rule
ip_type: ipv4
type: app_route
match_criterias:
application_list: APP-LIST-TD-TEST3
actions:
counter_name: abc
log: true
sla_class_list:
sla_class_list: Best-Effort-AAR
preferred_colors:
- "demo"
when_sla_not_met: fallback_to_best_path

Create a new branch where we are going to make the changes and name it ciscolive-app.

Create Branch

Now in the new branch, open the WEB IDE so we can edit the repository.

Create two files google_app_po.yaml and google_app_cp.yaml by following the structure under the data folder.

---
# Objects Centrilized and Localized Policies
sdwan:
policy_objects:
application_lists:
- name: Google_Apps_Updates
applications:
- android-updates
- chrome_update
- youtube
- youtube_hd
sla_classes:
- name: SLA-GOOGLE
latency_ms: 250
loss_percentage: 2
fallback_best_tunnel_criteria: latency

and for the new centralized policies object.

---
# Centralized Policies Definitions and feature_policies
sdwan:
centralized_policies:
definitions:
data_policy:
application_aware_routing:
# - name: Test_application_aware_routing_number2
# description: Test_application_aware_routing_number2
sequences:
- id: 10
name: GOOLGE-APPS
ip_type: ipv4
type: app_route
match_criterias:
application_list: Google_Apps_Updates
actions:
counter_name: AAR-Default
log: true
sla_class_list:
sla_class_list: SLA-GOOGLE
preferred_colors:
- "custom1"
when_sla_not_met: fallback_to_best_path

google_app_cp

google_app_po

Save the files and commit with the comment add app.

Validate the status of the pipeline and open it to check the validation in more detail.

pipeline_validation_failed

open_validation_failed

Correct the error based on the pipeline output from the validate script.

syntax_error_1

Add the data that is missing according to the suggestion. Open the centralized_policies.nac.yaml to locate the data that is missing from a similar policy.

sdwan:
centralized_policies:
definitions:
data_policy:
application_aware_routing:
- name:

What we are missing is the definition of the name for application-aware routing. Let’s uncomment that part of the file and commit the change with the name add app 2.

google-app-cp_2

Check if validation is passing after this change.

syntax_error_2

Now it is failing again, but with a different error that one parameter is mandatory.

Add the new missing data for the description by uncommenting the second line of the configuration and commit as app add 3.

google-app-cp_3

Now the pipeline should be passing and is successful, so the next step will be to merge.

Request a merge of the code to the main branch.

create_merge_day2_1

create_merge_day2_2

approve_merge_day2

open_pipeline_merge_day2

Check if the pipeline was successfully deployed.

status_merge_day2

Before we finish the lab, let’s also check the Test Outputs we have already in the pipeline for the last deployment. Press on the test-integration step of the validation and check that there are no any errors detected.

pipeline-test-integration

Press on Downloads.

download-artefact

Open the folder.

open-folder

Unzip the artifact file.

open-zip-artefacts

Go under folder tests -> results -> sdwan and open the file report.html.

tests

report

sdwan

report-html

SDWAN report

Log in to the SD-WAN and go under Configuration -> Policies -> Custom Options -> Lists and validate that you see the new application provisioned.

Custom_Options_Lists

Under the Application, locate the new app Google_Apps_Updates.

Application_lists

Under the SLA Class, locate the SLA-GOOGLE node.

SLA_Class