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.
sdwan: policy_objects: application_lists: - name: amazon_aws_apps applications: - amazon - amazon-web-services - amazon-instant-video - amazon-cloudfront - amazon-ec2 - amazon-s3
sdwan: policy_objects: sla_classes: - name: Best-Effort latency_ms: 200 loss_percentage: 1 fallback_best_tunnel_criteria: latency
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
Step 1: Create New Branch
Section titled “Step 1: Create New Branch”Create a new branch where we are going to make the changes and name it ciscolive-app.
Step 2: Open WEB IDE
Section titled “Step 2: Open WEB IDE”Now in the new branch, open the WEB IDE so we can edit the repository.
Step 3: Create Files
Section titled “Step 3: Create Files”Create two files google_app_po.yaml and google_app_cp.yaml by following the structure under the data folder.
---# Objects Centrilized and Localized Policiessdwan: 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_policiessdwan: 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
Step 4: Save and Commit
Section titled “Step 4: Save and Commit”Save the files and commit with the comment add app.
Step 5: Validate
Section titled “Step 5: Validate”Validate the status of the pipeline and open it to check the validation in more detail.
Step 6: Correct Error
Section titled “Step 6: Correct Error”Correct the error based on the pipeline output from the validate script.
Step 7: Add Missing Data
Section titled “Step 7: Add Missing Data”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.
Step 8: Check If Validation Is Passing
Section titled “Step 8: Check If Validation Is Passing”Check if validation is passing after this change.
Now it is failing again, but with a different error that one parameter is mandatory.
Step 9: Update New Missing Data
Section titled “Step 9: Update New Missing Data”Add the new missing data for the description by uncommenting the second line of the configuration and commit as app add 3.
Step 10: Successful Pipeline
Section titled “Step 10: Successful Pipeline”Now the pipeline should be passing and is successful, so the next step will be to merge.
Step 11: Merge Request
Section titled “Step 11: Merge Request”Request a merge of the code to the main branch.
Step 12: Merge Pipeline Status
Section titled “Step 12: Merge Pipeline Status”Check if the pipeline was successfully deployed.
Step 13: Test Outputs and Review
Section titled “Step 13: Test Outputs and Review”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.
Press on Downloads.
Open the folder.
Unzip the artifact file.
Go under folder tests -> results -> sdwan and open the file report.html.
Step 14: Validate SD-WAN Status
Section titled “Step 14: Validate SD-WAN Status”Log in to the SD-WAN and go under Configuration -> Policies -> Custom Options -> Lists and validate that you see the new application provisioned.
Step 15: Application Validation
Section titled “Step 15: Application Validation”Under the Application, locate the new app Google_Apps_Updates.
Under the SLA Class, locate the SLA-GOOGLE node.