Here are the structural components required to configure application-aware routing policy. Each one is explained in more detail
in the sections below.
policy
lists
app-list list-name
(app application-name | app-family application-family)
prefix-list list-name
ip-prefix prefix
site-list list-name
site-id site-id
vpn-list list-name
vpn-id vpn-id
log-frequency number
sla-class sla-class-name
jitter milliseconds
latency milliseconds
loss percentage
app-route-policy policy-name
vpn-list list-name
sequence number
match
match-parameters
action
count counter-name
log
sla-class sla-class-name [strict] [preferred-color colors]
default-action
sla-class sla-class-name
apply-policy site-list list-name
app-route-policy policy-name
Lists
Application-aware routing policy uses the following types of lists to group related items. You configure these lists under
the policy lists command hierarchy on Cisco vSmart Controllers.
Table 2.
List Type
|
Description
|
Command
|
Applications and application families
|
List of one or more applications or application families running on the subnets connected to the Cisco IOS XE SD-WAN device. Each app-list can contain either applications or application families, but you cannot mix the two. To configure multiple applications or
application families in a single list, include multiple app or app-family options, specifying one application or application family in each app or app-family option.
-
application-name is the name of an application. The Cisco IOS XE SD-WAN device supports about 2300 different applications.
-
application-family is the name of an application family. It can one of the following: antivirus, application-service, audio_video, authentication, behavioral, compression, database, encrypted, erp, file-server, file-transfer, forum, game, instant-messaging, mail, microsoft-office, middleware, network-management, network-service, peer-to-peer, printer, routing, security-service, standard, telephony, terminal, thin-client, tunneling, wap, web, and webmail.
|
app-list list-name
(app application-name |
app-family application-family)
|
Data prefixes
|
List of one or more IP prefixes. To configure multiple prefixes in a single list, include multiple ip-prefix options, specifying one prefix in each option.
|
data-prefix-list list-name
ip-prefix prefix/length
|
Sites
|
List of one or more site identifiers in the overlay network. To configure multiple sites in a single list, include multiple
site-id options, specifying one site number in each option. You can specify a single site identifier (such as site-id 1) or a range of site identifiers (such as site-id 1-10).
|
site-list list-name
site-id site-id
|
VPNs
|
List of one or more VPNs in the overlay network. To configure multiple VPNs in a single list, include multiple vpn options, specifying one VPN number in each option. You can specify a single VPN identifier (such as vpn-id 1) or a range of VPN identifiers (such as vpn-id 1-10).
|
vpn-list list-name
vpn vpn-id
|
In the Cisco vSmart Controller configuration, you can create multiple iterations of each type of list. For example, it is common to create multiple site
lists and multiple VPN lists so that you can apply data policy to different sites and different customer VPNs across the network.
When you create multiple iterations of a type of list (for example, when you create multiple VPN lists), you can include the
same values or overlapping values in more than one of these list. You can do this either on purpose, to meet the design needs
of your network, or you can do this accidentally, which might occur when you use ranges to specify values. (You can use ranges
to specify data prefixes, site identifiers, and VPNs.) Here are two examples of lists that are configured with ranges and
that contain overlapping values:
When you configure data policies that contain lists with overlapping values, or when you apply data policies, you must ensure
that the lists included in the policies, or included when applying the policies, do not contain overlapping values. To do
this, you must manually audit your configurations. The Cisco IOS XE SD-WAN configuration software performs no validation on the contents of lists, on the data policies themselves, or on how the policies
are applied to ensure that there are no overlapping values.
If you configure or apply data policies that contain lists with overlapping values to the same site, one policy is applied
and the others are ignored. Which policy is applied is a function of the internal behavior of Cisco IOS XE SD-WAN device when it processes the configuration. This decision is not under user control, so the outcome is not predictable.
VPN Lists
Each application-aware policy instance is associated with a VPN list. You configure VPN lists with the policy app-route-policy vpn-list command. The VPN list you specify must be one that you created with a policy lists vpn-list command.
Sequences
Within each VPN list, an application-aware policy contains sequences of match–action pairs. The sequences are numbered to
set the order in which data traffic is analyzed by the match–action pairs in the policy. You configure sequences with the
policy app-aware-policy vpn-list sequence command.
Each sequence in an application-aware policy can contain one match command and one action command.
Match Parameters
Application-aware routing policy can match IP prefixes and fields in the IP headers. You configure the match parameters with
the match command under the policy app-route-policy vpn-list sequence command hierarchy on Cisco vSmart Controllers.
You can match these parameters:
Table 3.
Description
|
Command
|
Value or Range
|
Match all packets
|
Omit match command
|
—
|
Applications or application families
|
app-list
list-name
|
Name of an app-list list
|
Group of destination prefixes
|
destination-data-prefix-list
list-name
|
Name of a data-prefix-list list
|
Individual destination prefix
|
destination-ip
prefix/length
|
IP prefix and prefix length
|
Destination port number
|
destination-port
number
|
0 through 65535. Specify a single port number, a list of port numbers (with numbers separated by a space), or a range of port
numbers (with the two numbers separated with a hyphen [-]).
|
DSCP value
|
dscp
number
|
0 through 63
|
Internet Protocol number
|
protocol
number
|
0 through 255
|
Packet loss priority (PLP)
|
plp
|
(high | low) By default, packets have a PLP value of low. To set the PLP value to high, apply a policer that includes the exceed remark option.
|
Group of source prefixes
|
source-data-prefix-list
list-name
|
Name of a data-prefix-list list
|
Individual source prefix
|
source-ip
prefix/length
|
IP prefix and prefix length
|
Source port number
|
source-port
number
|
0 through 65535; enter a single port number, a list of port numbers (with numbers separated by a space), or a range of port
numbers (with the two numbers separated with a hyphen [-])
|
Split DNS, to resolve and process DNS requests on an application-by-application basis
|
dns-app-list
list-name
dns (request | response)
|
Name of an app-list list. This list specifies the applications whose DNS requests are processed.
To process DNS requests sent by the applications (for outbound DNS queries), specify dns request.
To process DNS responses returned from DNS servers to the applications, specify dns response.
|
Action Parameters
When data traffic matches the match parameters, the specified action is applied to it. For application-aware routing policy,
the action is to apply an SLA class. The SLA class defines the maximum packet latency or maximum packet loss, or both, that
the application allows on the data plane tunnel used to transmit its data. TheCisco SD-WAN software examines the recently measured performance characteristics of the data plane tunnels and directs the data traffic
to the WAN connection that meets the specified SLA.
The following actions can be configured:
Table 4.
Description
|
Command
|
Value or Range
|
Count matching data packets.
|
action count
counter-n ame
|
Name of a counter.
|
SLA class to match. All matching data traffic is directed to a tunnel whose performance matches the SLA parameters defined
in the class. The software first tries to send the traffic through a tunnel that matches the SLA. If a single tunnel matches
the SLA, data traffic is sent through that tunnel. If two or more tunnels match, traffic is distributed among them. If no
tunnel matches the SLA, data traffic is sent through one of the available tunnels.
|
action sla-class sla-class-name
|
SLA class name defined in policy sla-class command
|
Group of data plane tunnel colors to prefer when an SLA class match occurs. Traffic is load-balanced across all tunnels. If
no tunnels match the SLA, data traffic is sent through any available tunnel. That is, color preference is a loose matching,
not a strict matching.
|
action sla-class
sla-class-name
preferred-color
colors
|
SLA class name defined in policy sla-class command and one of the supported tunnel colors.
|
Strict matching of the SLA class. If no data plane tunnel is available that satisfies the SLA criteria, traffic is dropped.
Note that for policy configured with this option, data traffic that matches the match conditions is dropped until the application-aware
routing path is established.
|
action sla-class
sla-class-name
strict
action sla-class
sla-class-name
preferred-color
color
strict
action sla-class
sla-class-name
preferred-color
colors
strict
|
SLA class name defined in policy sla-class command
|
If more than one data plane tunnel satisfies an SLA class criteria, the Cisco IOS XE SD-WAN device selects one of them by performing load-balancing across the equal paths.
Default Action
A policy's default action defines how to handle packets that match none of the match conditions. For application-aware routing
policy, if you do not configure a default action, all data packets are accepted and transmitted based on normal routing decisions,
with no consideration of SLA.
To modify this behavior, include the default-action sla-class
sla-class-name command in the policy, specifying the name of an SLA class you defined in the policy sla-class command.
When you apply an SLA class in a policy's default action, you cannot specify the strict option.
If no data plane tunnel satisfies the SLA class in the default action, the Cisco IOS XE SD-WAN device selects one of the available tunnels by performing load-balancing across equal paths.