Centralized Data Policy
Centralized data policy is policy that is configured on a Cisco vSmart Controller (hence, it is centralized) and that affects data traffic being transmitted between the routers on the Cisco SD-WAN overlay network.
Centralized Data Policy Overview
Data policy operates on the data plane in the Cisco IOS XE SD-WAN overlay network and affects how data traffic is sent among Cisco IOS XE SD-WAN devices in the network. The Cisco IOS XE SD-WAN architecture defines two types of data policy, centralized data policy, which controls the flow of data traffic based on the IP header fields in the data packets and based on network segmentation, and localized data policy, which controls the flow of data traffic into and out of interfaces and interface queues on the devices.
Centralized data policy is applied to packets that originate from a specific sender, or source address, for instance, from a workstation in a local site that is sending voice, data, or other traffic, and it controls which destinations within a VPN the traffic can reach. Data policy is applied to data traffic based on a 6-tuple of fields in the packet's IP header: source IP address, source port, destination IP address, destination port, DSCP, and protocol.
As with control policy, data policy is provisioned centrally on a Cisco vSmart Controller and is applied only on the Cisco vSmart Controller controller. The data policy itself is never pushed to the devices in the network. What is pushed to the Cisco IOS XE SD-WAN devices, via OMP and based on the site ID, are the results of the data policy; hence, the effects of the policy are reflected on the devices. Normally, the data policy on a Cisco IOS XE SD-WAN device acts as the data policy for the entire site that sits behind the device. Data policy that comes from the Cisco vSmart Controller is always implicitly applied in the inbound direction.
Data policy can be applied to data traffic based on the packet header fields, such as the prefix, port, protocol, and DSCP value, and they can also be applied based on the VPN in the overlay network to which the traffic flows.
Data Policy Based on Packet Header Fields
Policy decisions affecting data traffic can be based on the packet header fields, specifically, on the source and destination IP prefixes, the source and destination IP ports, the protocol, and the DSCP.
This type of policy is often used to modify traffic flow in the network. Here are some examples of the types of control that can be effected with centralized data policy:
-
Which set of sources are allowed to send traffic to any destination outside the local site. For example, local sources that are rejected by such a data policy can communicate only with hosts on the local network.
-
Which set of sources are allowed to send traffic to a specific set of destinations outside the local site. For example, local sources that match this type of data policy can send voice traffic over one path and data traffic over another.
-
Which source addresses and source ports are allowed to send traffic to any destination outside the local site or to a specific port at a specific destination.
Deep Packet Inspection
In addition to examining the network- and transport-layer headers in data packets, centralized data policy can be used to examine the application information in the data packets' payload. This deep packet inspection offers control over how data packets from specific applications or application families are forwarded across the network, allowing you to assign the traffic to be carried by specific tunnels. To control the traffic flow of specific application traffic based on the traffic loss or latency properties on a tunnel, use application-aware routing.
To base policy decisions on source and destination prefixes and on the headers in the IP data packets, you use centralized data policy, which you configure with the policy data-policy command. The Cisco vSmart Controller pushes this type of data policy to the Cisco IOS XE SD-WAN devices. In domains with multiple Cisco vSmart Controllers, all the controllers must have the same centralized data policy configuration to ensure that traffic flow within the overlay network remains synchronized.
To base policy decisions on the application information in the packet payload, you use centralized data policy to perform deep packet inspection. You configure this by creating lists of applications with the policy lists app-list command and then calling these lists in a policy data-policy command.
To configure the VPNs that Cisco IOS XE SD-WAN devices are allowed to receive routes from, you use centralized data policy, which you configure with the policy vpn-membership command. VPN membership policy affects which routes the Cisco vSmart Controller sends to the devices. The policy itself remains on the Cisco vSmart Controller and is not pushed to the devices.
Configure Centralized Data Policy Based on Prefixes and IP Headers
A centralized data policy based on source and destination prefixes and on headers in IP packets consists of a series of numbered (ordered) sequences of match-action pair that are evaluated in order, from lowest sequence number to highest sequence number. When a packet matches one of the match conditions, the associated action is taken and policy evaluation on that packets stops. Keep this in mind as you design your policies to ensure that the desired actions are taken on the items subject to policy.
If a packet matches no parameters in any of the sequences in the policy configuration, it is dropped and discarded by default.
Configuration Components
The following figure illustrates the configuration components for centralized data policy:
To configure centralized data policies, use the Cisco vManage policy configuration wizard. The wizard consists of four sequential screens that guide you through the process of creating and editing policy components:
-
Create Groups of Interest—Create lists that group together related items and that you call in the match or action components of a policy.
-
Configure Traffic Rules—Create the match and action conditions of a policy.
-
Apply Policies to Sites and VPNs—Associate policy with sites and VPNs in the overlay network.
In the first three policy configuration wizard screens, you are creating policy components or blocks. In the last screen, you are applying policy blocks to sites and VPNs in the overlay network.
For a centralized data policy to take effect, you must activate the policy.
This section provides general procedures for configuring centralized data policy on Cisco vSmart Controllers. Centralized data policy can be used for different purposes, which are described in the sections that follow.
Start the Policy Configuration Wizard
To start the policy configuration wizard:
Procedure
Step 1 |
In the Cisco vManage NMS, select the screen. |
Step 2 |
Select the Centralized Policy tab. |
Step 3 |
Click Add Policy. The policy configuration wizard opens, and the Create Groups of Interest screen displays. |
Step 1: Create Policy Lists
You can create lists of groups to use in centralized policy.
Procedure
Step 1 |
Create new lists, as described in the following table:
|
||||||||||||||||||
Step 2 |
Click Next to move to Configure Topology and VPN Membership in the wizard. |
Step 2: Configure Traffic Rules
When you first open the Traffic Rules screen, the Application-Aware Routing tab is selected by default. To configure traffic rules for deep packet inspection, see Deep Packet Inspection.
To configure traffic rules for centralized data policy:
Procedure
Step 1 |
Click the Traffic Data tab. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 2 |
Click the Add Policy drop-down. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 3 |
Click Create New. The Add Data Policy screen displays. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 4 |
Enter a name and description for the data policy. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 5 |
In the right pane, click Sequence Type. The Add Data Policy popup opens. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 6 |
Select the type of data policy you want to create. Choices are: Application Firewall, QoS, Traffic Engineering, and Custom. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 7 |
A policy sequence containing the text string Application Firewall, QoS, Traffic Engineering, or Custom is added in the left pane |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 8 |
Double-click the text string, and enter a name for the policy sequence. The name you type is displayed both in the Sequence Type list in the left pane and in the right pane. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 9 |
In the right pane, click Sequence Rule. The Match/Action box opens, and Match is selected by default. The available policy match conditions are listed below the box. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 10 |
For QoS and Traffic Engineering data policies: From the Protocol drop-down list, select IPv4 to apply the policy only to IPv4 address families, IPv6 to apply the policy only to IPv6 address families, or Both to apply the policy IPv4 and IPv6 address families. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 11 |
To select one or more Match conditions, click its box and set the values as described in the following table. Note that not all match conditions are available for all policy sequence types.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 12 |
To select actions to take on matching data traffic, click the Actions box. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 13 |
To drop matching traffic, click Drop. The available policy actions are listed to the right of the button. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 14 |
To accept matching traffic, click Accept. The available policy actions are listed to the right of the button. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 15 |
Set the policy action as described in the following table. Note that not all actions are available for all match conditions
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 16 |
Create additional sequence rules as desired. Drag and drop to re-arrange them. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 17 |
Click Save Data Policy. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Step 18 |
Click Next to move to Apply Policies to Sites and VPNs in the wizard. |
Step 3: Apply Policies to Sites and VPNs
In Apply Policies to Sites and VPNs, apply a policy to overlay network sites and VPNs.
Procedure
Step 1 |
In the Policy Name field, enter a name for the policy. This field is mandatory and can contain only uppercase and lowercase letters, the digits 0 through 9, hyphens (–), and underscores (_). It cannot contain spaces or any other characters. |
Step 2 |
In the Policy Description field, enter a description of the policy. It can contain up to 2048 characters. This field is mandatory, and it can contain any characters and spaces. |
Step 3 |
From the Topology bar, select the tab that corresponds to the type of policy block—Topology, Application-Aware Routing, Traffic Data, or Cflowd. The table then lists policies that you have created for that type of policy block. |
Step 4 |
Associate the policy with VPNs and sites. The choice of VPNs and sites depends on the type of policy block:
|
Step 5 |
Click Preview to view the configured policy. The policy is displayed in CLI format. |
Step 6 |
Click Save Policy. The screen appears, and the policies table includes the newly created policy. |
Step 4: Activate a Centralized Data Policy
Activating a centralized data policy sends that policy to all connected Cisco vSmart Controllers. To activate a centralized policy:
Procedure
Step 1 |
In the Cisco vManage NMS, select the screen. |
Step 2 |
Select a policy from the policy table. |
Step 3 |
Click the More Actions icon to the right of the row, and click Activate. The Activate Policy popup opens. It lists the IP addresses of the reachable Cisco vSmart Controllers to which the policy is to be applied. |
Step 4 |
Click Activate. |
Configure Centralized Data Policy Using CLI
Following are the high-level steps for configuring a VPN membership data policy:
-
Create a list of overlay network sites to which the VPN membership policy is to be applied (in the apply-policy command):
vSmart(config)# policy vSmart (config-policy)# lists site-list list-name vSmart(config-lists-list-name)# site-id site-id
The list can contain as many site IDs as necessary. Include one site-id command for each site ID. For contiguous site IDs, you can specify a range of numbers separated with a dash (–). Create additional site lists, as needed.
-
Create lists of IP prefixes and VPNs, as needed:
vSmart(config)# policy lists vSmart(config-lists)# data-prefix-list list-name vSmart(config-lists-list-name)# ip-prefix prefix/length
vSmart(config)# policy lists vSmart(config-lists)# vpn-list list-name vSmart(config-lists-list-name)# vpn vpn-id
vsmart(config)# policy lists data-ipv6-prefix-list dest_ip_prefix_list vsmart(config-data-ipv6-prefix-list-dest_ip_prefix_list)# ipv6-prefix 2001:DB8:19::1 vsmart(config-data-ipv6-prefix-list-dest_ip_prefix_list)# commit Commit complete.
vsmart(config)# policy data-policy data_policy_1 vpn-list vpn_1 vsmart (config-sequence-100)# match destination-data-ipv6-prefix-list dest_ip_prefix_list vsmart (config-match)# commit vsmart(config-match)# exit vsmart(config-sequence-100)# match source-data-ipv6-prefix-list dest_ip_prefix_list vm9(config-match)# commit Commit complete. vm9(config-match)# end
vsmart(config)# policy vsmart(config-policy)# data-policy data_policy_1 vsmart(config-data-policy-data_policy_1)# vpn-list vpn_1 vsmart(config-vpn-list-vpn_1)# sequence 101 vsmart(config-sequence-101)# match source-ipv6 2001:DB8:19::1 vsmart(config-match)# exit vsmart(config-sequence-101)# match destination-ipv6 2001:DB8:19::1 vsmart(config-match)#
-
Create lists of TLOCs, as needed. vSmart(config)# policy vSmart(config-policy)# lists tloc-list list-name vSmart(config-lists-list-name)# tloc ip-address color color encap encapsulation [preference number}
-
Define policing parameters, as needed:
vSmart(config-policy)# policer policer-name vSmart(config-policer)# rate bandwidth vSmart(config-policer)# burst bytes vSmart(config-policer)# exceed action
-
Create a data policy instance and associate it with a list of VPNs:
vSmart(config)# policy data-policy policy-name vSmart(config-data-policy-policy-name)# vpn-list list-name
-
Create a series of match–pair sequences:
vSmart(config-vpn-list)# sequence number vSmart(config-sequence-number)#
The match–action pairs are evaluated in order, by sequence number, starting with the lowest numbered pair and ending when the route matches the conditions in one of the pairs. Or if no match occurs, the default action is taken (either rejecting the route or accepting it as is).
-
Define match parameters for packets:
vSmart(config-sequence-number)# matchparameters
-
Define actions to take when a match occurs:
vSmart(config-sequence-number)# action (accept | drop) [count counter-name] [log] [tcp-optimization] vSmart(config-sequence-number)# action acccept nat [pool number] [use-vpn 0] vSmart(config-sequence-number)# action accept redirect-dns (host | ip-address) vSmart(config-sequence-number)# action accept set parameters
vsmart(config)# policy data-policy data_policy_1 vpn-list vpn_1 sequence 100 vsmart(config-sequence-100)# action accept set next-hop-ipv6 2001:DB8:19::1 vsmart(config-set)#
-
Create additional numbered sequences of match–action pairs within the data policy, as needed.
-
If a route does not match any of the conditions in one of the sequences, it is rejected by default. To accept nonmatching prefixed, configure the default action for the policy:
vSmart(config-policy-name)# default-action accept
-
Apply the policy to one or more sites in the overlay network:
vSmart(config)# apply-policy site-list list-name data-policy policy-name (all |from-service | from-tunnel)
Structural Components of Policy Configuration for Centralized Data Policy
The following commands are the structural components required to configure VPN membership policy. Each one is explained in more detail in the sections that follow.
policy
lists
app-list list-name
(app applications | app-family application-families)
data-prefix-list list-name
ip-prefix prefix
site-list list-name
site-id site-id
tloc-list list-name
tloc ip-address color color encap encapsulation [preference value]
vpn-list list-name
vpn vpn-id
policer policer-name
burst bytes
exceed action
rate bandwidth
data-policy policy-name
vpn-list list-name
sequence number
match
app-list list-name
destination-data-prefix-list list-name
destination-ip prefix/length
destination-port port-numbers
dscp number
dns-app-list list-name
dns (request | response)
packet-length number
protocol number
source-data-prefix-list list-name
source-ip prefix/length
source-port port-numbers
tcp flag
action
cflowd (not available for deep packet inspection)
count counter-name
drop
log
redirect-dns (dns-ip-address | host)
tcp-optimization
accept
nat [pool number] [use-vpn 0]
set
dscp number
forwarding-class class
local-tloc color color [encap encapsulation] [restrict]
next-hop ip-address
policer policer-name
tloc ip-address color color [encap encapsulation]
tloc-list list-name
vpn vpn-id
default-action
(accept | drop)
apply-policy site-list list-name
data-policy policy-name (all | from-service | from-tunnel)
Lists
Centralized data policy for deep packet inspection uses the following types of lists to group related items. In the CLI, you configure lists under the policy lists command hierarchy on Cisco vSmart Controllers.
In the CLI, you configure lists under the policy lists command hierarchy on Cisco vSmart Controllers.
List Type | Description |
vManage / CLI Command |
---|---|---|
Applications and application families |
List of one or more applications or application families running on the subnets connected to the device.
|
or app-list list-name (app applications | app-family application-families) |
Prefixes | List of one or more IP prefixes. |
or prefix-list list-name ip-prefix prefix/length |
Sites | List of one or more site identifiers in the overlay network. You can specify a single site identifier (such as site-id 1) or a range of site identifiers (such as site-id 1-10). |
or site-list list-name site-id site-id |
TLOCs |
List of one or more TLOCs in the overlay network. For each TLOC, specify its address, color, and encapsulation. address is the system IP address. color can be one of 3g, biz-internet, blue, bronze, custom1, custom2, custom3, default, gold, green, lte, metro-ethernet, mpls, mpls-restricted, private1 through private6, public-internet, red, and silver. encapsulation can be gre or ipsec. Optionally, set a preference value (from 0 to 232 – 1) to associate with the TLOC address. When you apply a TLOC list in an action accept condition, when multiple TLOCs are available and satisfy the match conditions, the TLOC with the lowest preference value is used. If two or more of TLOCs have the lowest preference value, traffic is sent among them in an ECMP fashion. |
or tloc-list list-name tloc ip-address color color encap encapsulation [preference number] |
VPNs |
List of one or more VPNs in the overlay network. For data policy, you can configure any VPNs except for VPN 0 and VPN 512. 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 1) or a range of VPN identifiers (such as vpn 1-10). |
or vpn-list list-name vpn vpn-id |
VPN Lists
Each centralized data policy is associated with a VPN list. You configure VPN lists with the policy data-policy vpn-list command. The list you specify must be one that you created with a VPN Group of Interest or List in the Cisco vManage policy configuration wizard or with the policy lists vpn-list command.
For centralized data policy, you can include any VPNs except for VPN 0 and VPN 512. VPN 0 is reserved for control traffic, so never carries any data traffic, and VPN 512 is reserved for out-of-band network management, so also never carries any data traffic. Note that while the CLI allows you to include these two VPNs in a data policy configuration, the policy is not applied to these two VPNs.
Policer Parameters
To configure policing parameters, create a policer that specifies the maximum bandwidth and burst rate for traffic on an interface, and how to handle traffic that exceeds these values.
In Cisco vManage NMS, you configure policer parameters from:
In the CLI, you configure policer parameters as follows:
vSmart(config)# policy policer policer-name
vSmart(config-policer)# rate bps
vSmart(config-policer)# burst bytes
vSmart(config-policer)# exceed action
rate is the maximum traffic rate. It can be a value from 0 through 264 – 1 bits per second.
burst is the maximum traffic burst size. It can be a value from 15000 to 1000000 bytes.
exceed is the action to take when the burst size or traffic rate is exceeded. action can be drop (the default) or remark. The drop action is equivalent to setting the packet loss priority (PLP) bit to low. The remark action sets the PLP bit to high. In centralized data policy, access lists, and application-aware routing policy, you can match the PLP with the match plp option.
Sequences
Each VPN list consists of 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.
In the Cisco vManage NMS, you configure sequences from:
In the CLI, you configure sequences with the policy data-policy vpn-list sequence command.
Each sequence can contain one match condition and one action condition.
Match Parameters
Centralized data policy can match IP prefixes and fields in the IP headers, as well as applications. You can also enable split DNS.
In Cisco vManage NMS, you configure match parameters from:
Each sequence in a policy can contain one match condition.
For data policy, you can match these parameters:
Description | vManage Configuration/CLI Configuration Command | Value or Range |
---|---|---|
Match all packets |
Omit Match Omit match command |
— |
Applications or application families |
Match Applications/Application Family List app-list list-name |
Name of an application list or an app-list list |
Group of destination prefixes |
Match Destination Data Prefix destination-data-prefix-list list-name |
Name of a data prefix list or a data-prefix-list list |
Individual destination prefix |
Match Destination Data Prefix destination-ip prefix/length |
IP prefix and prefix length |
Destination port number |
Match Destination Port 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 [-]) |
Enable split DNS, to resolve and process DNS requests and responses on an application-by-application basis |
Match DNS Application List dns-app-list list-name |
Name of an app-list list. This list specifies the applications whose DNS requests are processed. |
Specify the direction in which to process DNS packets |
Match DNS dns (request | response) |
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. |
DSCP value |
Match DSCP dscp number |
0 through 63 |
Packet length |
Match Packet Length packet-length number |
0 through 65535; specify a single length, a list of lengths (with numbers separated by a space), or a range of lengths (with the two numbers separated with a hyphen [-]) |
Packet loss priority (PLP) |
Match 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. |
Internet protocol number |
Match Protocol protocol number |
0 through 255 |
Group of source prefixes |
Match Source Data Prefix source-data-prefix-list list-name |
Name of a data prefix or a data-prefix-list list |
Individual source prefix |
Match Source Data Prefix source-ip prefix/length |
IP prefix and prefix length |
Source port number |
Match Source Port source-port address |
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 [-]) |
TCP flag | tcp flag | syn |
Action Parameters
Feature Name |
Release Information |
Description |
---|---|---|
Path Preference Support for Cisco IOS XE SD-WAN Devices |
Cisco IOS XE Release Amsterdam 17.2.1r |
This feature extends to Cisco IOS XE SD-WAN devices, support for selecting one or more local transport locators (TLOCs) for a policy action. |
When data traffic matches the conditions in the match portion of a centralized data policy, the packet can be accepted or dropped, and it can be counted. Then, you can associate parameters with accepted packets.
In Cisco vManage NMS, you configure match parameters from:
-
-
.
In the CLI, you configure the action parameters with the policy data-policy vpn-list sequence action command.
Each sequence in a centralized data policy can contain one action condition.
In the action, you first specify whether to accept or drop a matching data packet, and whether to count it:
Description | vManage Configuration/CLI Configuration Parameter | Value or Range |
---|---|---|
Accept the packet. An accepted packet is eligible to be modified by the additional parameters configured in the action portion of the policy configuration. |
Click Accept. accept |
— |
Enable cflowd traffic monitoring. |
Click Accept, then action Cflowd cflowd |
— |
Count the accepted or dropped packets. |
Action Counter Click Accept, then action Counter count counter-name |
Name of a counter. Use the show policy access-lists counters command on the Cisco IOS XE SD-WAN device. |
Discard the packet. This is the default action. |
Click Drop drop |
— |
Redirect DNS requests to a particular DNS server. Redirecting requests is optional, but if you do so, you must specify both actions. |
Click Accept, then action Redirect DNS redirect-dns hostredirect-dns ip-address |
For an inbound policy, redirect-dns host allows the DNS response to be correctly forwarded back to the requesting service VPN. For an outbound policy, specify the IP address of the DNS server. |
Fine-tune TCP to decrease round-trip latency and improve throughout for matching TCP traffic. |
Click Accept, then action TCP Optimization tcp-optimization |
— |
Note |
On Cisco IOS XE routers, all the ongoing optimized flows are dropped when the TCP Optimization is removed. |
Then, for a packet that is accepted, the following parameters can be configured:
Description | vManage | CLI Configuration Parameter | Value or Range |
---|---|---|---|
Enable cflowd traffic monitoring. |
Click Accept, then action Cflowd. |
cflowd |
— |
Direct matching traffic to the NAT functionality so that it can be redirected directly to the Internet or other external destination. |
Click Accept, then action NAT Pool or NAT VPN. |
nat [pool number] [use-vpn 0] |
— |
DSCP value. |
Click Accept, then action DSCP. |
set dscp value |
0 through 63 |
Forwarding class. |
Click Accept, then action Forwarding Class. |
set forwarding-class value |
Name of forwarding class |
Direct matching packets to a TLOC that mathces the color and encapsulation By default, if the TLOC is not available, traffic is forwarded using an alternate TLOC. |
Click Accept, then action Local TLOC. |
set local-tloc color color [encap encapsulation] |
color can be: 3g, biz-internet, blue, bronze, custom1, custom2, custom3, default, gold, green lte, metro-ethernet, mpls, private1 through private6, public-internet, red, and silver. By default, encapsulation is ipsec. It can also be gre. |
Direct matching packets to one of the TLOCs in the list if the TLOC matches the color and encapsulation By default, if the TLOC is not available, traffic is forwarded using an alternate TLOC. To drop traffic if a TLOC is unavailable, include the restrict option. |
Click Accept, then action Local TLOC |
set local-tloc-list color color encap encapsulation [restrict] |
|
Set the next hop to which the packet should be forwarded. |
Click Accept, then action Next Hop. |
set next-hop ip-address |
IP address |
Apply a policer. |
Click Accept, then action Policer. |
set policer policer-name |
Name of policer configured with a policy policer command. |
Specify a service to redirect traffic to before delivering the traffic to its destination. The TLOC address or list of TLOCs identifies the remote TLOCs to which the traffic should be redirected to reach the service. In the case of multiple TLOCs, the traffic is load-balanced among them. The VPN identifier is where the service is located. Configure the services themselves on the Cisco IOS XE SD-WAN devices that are collocated with the service devices, using the vpn service command. |
Click Accept, then action Service. |
set service service-name [tloc ip-address | tloc-list list-name] [vpn vpn-id] |
Standard services: FW, IDS, IDP Custom services: netsvc1, netsvc2,netsvc3, netsvc4 TLOC list is configured with a policy lists tloc-list list. |
Direct traffic to a remote TLOC that matches the IP address, color, and encapsulation. |
Click Accept, then action TLOC. |
set tloc address color color [encap encapsulation] |
TLOC address, color, and encapsulation |
Direct traffic to one of the remote TLOCs in the TLOC list if it matches the IP address, color, and encapsulation of one of the TLOCs in the list. If a preference value is configured for the matching TLOC, that value is assigned to the traffic. |
Click Accept, then action TLOC. |
set tloc-list list-name |
Name of a policy lists tloc-list list |
Set the VPN that the packet is part of. |
Click Accept, then action VPN. |
set vpn vpn-id |
0 through 65530 |
The following table describes the IPv4 and IPv6 actions.
IPv4 Actions |
IPv6 Actions |
---|---|
drop, dscp, next-hop (from-service only)/vpn, count, forwarding class, policer (only in interface ACL), App-route SLA (only) |
|
App-route preferred color, app-route sla strict, cflowd, nat, redirect-dns | |
drop, dscp, next-hop/vpn, count, forwarding class, policer (only in interface ACL) App-route SLA (only), App-route preferred color, app-route sla strict |
|
policer (DataPolicy), tcp-optimization, fec-always, |
policer (DataPolicy) |
tloc, tloc-list (set tloc, set tloc-list) |
tloc, tloc-list (set tloc, set tloc-list) |
App-Route backup-preferred color, local-tloc, local-tloc-list |
App-Route backup-preferred color, local-tloc, local-tloc-list |
Default Action
If a data packet being evaluated does not match any of the match conditions in a data policy, a default action is applied to the packet. By default, the data packet is dropped
In the Cisco vManage NMS, you modify the default action from:
In the CLI, you modify the default action with the policy data-policy vpn-list default-action accept command.
Apply Centralized Data Policy
For a centralized data policy to take effect, you apply it to a list of sites in the overlay network.
To apply a centralized policy in the Cisco vManage NMS:
-
In the Cisco vManage NMS, select the screen.
-
Select a policy from the policy table.
-
Click the More Actions icon to the right of the row, and click Activate. The Activate Policy popup opens. It lists the IP addresses of the reachable Cisco vSmart Controllers to which the policy is to be applied.
-
Click Activate.
To apply a centralized policy in the CLI:
vSmart(config)# apply-policy site-list list-name data-policy policy-name (all | from-service | from-tunnel)
By default, data policy applies to all data traffic passing through the device: the policy evaluates all data traffic going from the local site (that is, from the service side of the router) into the tunnel interface, and it evaluates all traffic entering to the local site through the tunnel interface. You can explicitly configure this behavior by including the all option. To have the data policy apply only to traffic coming from the service site and exiting from the local site through the tunnel interface, include the from-service option. To have the policy apply only to traffic entering from the tunnel interface and traveling to the service site, include the from-tunnel option. You can apply different data policies in each of the two traffic directions.
For all data-policy policies that you apply with apply-policy commands, the site IDs across all the site lists must be unique. That is, the site lists must not contain overlapping site IDs. An example of overlapping site IDs are those in the two site lists site-list 1 site-id 1-100 and site-list 2 site-id 70-130. Here, sites 70 through 100 are in both lists. If you were to apply these two site lists to two different data-policy policies, the attempt to commit the configuration on the Cisco vSmart Controller would fail.
The same type of restriction also applies to the following types of policies:
-
Application-aware routing policy (app-route-policy)
-
Centralized control policy (control-policy)
-
Centralized data policy used for cflowd flow monitoring (data-policy hat includes a cflowd action and apply-policy that includes a cflowd-template command)
You can, however, have overlapping site IDs for site lists that you apply for different types of policy. For example, the sites lists for control-policy and data-policy policies can have overlapping site IDs. So for the two example site lists above, site-list 1 site-id 1-100 and site-list 2 site-id 70-130, you could apply one to a control policy and the other to a data policy.
As soon as you successfully activate the configuration by issuing a commit command, the Cisco vSmart Controller pushes the data policy to the devices located in the specified sites. To view the policy as configured on the Cisco vSmart Controllers, use the show running-config command on the Cisco vSmart Controller:
vSmart# show running-config policy
vSmart# show running-config apply-policy
To view the policy that has been pushed to the Cisco IOS XE SD-WAN device, use the show sdwan policy from-vsmart command on the Cisco IOS XE SD-WAN device.
Device# show sdwan policy from-vsmart
Deep Packet Inspection
You configure deep packet inspection using a standard centralized data policy. You define the applications of interest in a vManage policy list or with policy lists app-list CLI command, and you call these lists in the match portion of the data policy. You can control the path of the application traffic through the network by defining, in the action portion of the data policy, the local TLOC or the remote TLOC, or for strict control, you can define both.
Configure Deep Packet Inspection Using vManage
To configure a centralized data policy for deep packet inspection, use the vManage policy configuration wizard. Use the wizard to create and edit deep packet inspection policy components:
-
Configure groups of interest (lists) to group related items to be called in the centralized data policy.
-
Configure traffic rules.
-
Apply the policy.
Step 1: Start the Policy Configuration Wizard
To start the policy configuration wizard:
-
In vManage NMS, select the Configure > Policies screen.
-
Select the Centralized Policy tab.
-
Click Add Policy.
The policy configuration wizard opens, and the Create Groups of Interest screen is displayed.
Step 2: Create Groups of Interest
In Create Groups of Interest, create lists of groups to use in centralized policy:
To configure groups of interest for deep packet inspection:
-
In the left pane, select the type of list. For centralized data policy for deep packet inspection, you can use Application, Site, and VPN lists.
-
To create a new list, click New List.
To modify an existing list, click the More Actions icon to the right of the desired list, and click the pencil icon.
-
In the List Name field, enter a name for the list. This field is mandatory and can contain only uppercase and lowercase letters, the digits 0 through 9, hyphens (–), and underscores (_). It cannot contain spaces or any other characters.
-
In the field below the List Name field, enter the desired values for the list. For some lists you type the desired values, and for others you select from a drop-down.
-
Click Add (for a new list) or Save (for an existing list).
-
Click Next to move to the Configure Topology and VPN Membership screen.
-
Click Next to move the Configure Traffic Rules in the wizard.
Step 3: Configure Traffic Rules
When you first open the Traffic Rules screen, the Application-Aware Routing tab is selected by default:
To configure traffic rules for deep packet inspection policy:
-
In the Application-Aware Routing bar, click Traffic Data.
-
To create a new centralized data policy, click Add Policy.
To modify an existing policy, click the More Actions icon to the right of the desired policy, and click the pencil icon.
-
If data traffic does not match any of the conditions in one of the sequences, it is dropped by default. If you want nonmatching routes to be accepted, click the pencil icon in the Default Action, click Accept, and click Save Match And Actions.
-
To create a match–action sequence for data traffic:
-
Click Sequence Type.
-
To create a match–action rule, click Sequence Rule. The Match button is selected by default.
-
Click the desired Match button, and enter the desired values in Match Conditions. For some conditions, you type the desired values, and for others you select from a drop-down.
-
Click the Actions button. The default action is Reject. To accept matching packets, click the Accept radio button. Then click the desired action, and enter the desired values for Actions.
-
Click Save Match and Actions.
-
Create additional Sequence Rules or Sequence Types, as needed.
-
-
To rename a Sequence Type, double-click its name in the right pane, and type the new name. The name also changes in the right pane.
-
To re-order sequence rules and types, drag and drop them them.
-
Click Save.
-
Click Next to move to the Apply Policies to Sites and VPNs in the wizard.
Step 4: Apply Policies to Sites and VPNs
-
In Apply Policies to Sites and VPNs, apply a policy to overlay network sties and VPNs:
-
In the Policy Name field, enter a name for the policy. This field is mandatory and can contain only uppercase and lowercase letters, the digits 0 through 9, hyphens (–), and underscores (_). It cannot contain spaces or any other characters.
-
In the Policy Description field, enter a description of the policy. It can contain up to 2048 characters. This field is mandatory, and it can contain any characters and spaces.
-
From the Topology bar, select the Application-Aware Routing tab. The table then lists policies that you have created for that type of policy block.
-
Click Add New Site List and VPN List or Add New Site. Some topology blocks might have no Add buttons. Select one or more site lists, and select one or more VPN lists. Click Add.
-
Click Preview to view the configured policy. The policy is displayed in CLI format.
-
Click Save Policy. The Configuration > Policies screen opens, and the policies table includes the newly created policy.
Step 5: Activate a Centralized Data Policy
Activating a centralized data policy sends that policy to all connected vSmart controllers. To activate a centralized policy:
-
In vManage NMS, select the Configure > Policies screen.
-
Select a policy from the policy table.
-
Click the More Actions icon to the right of the row, and click Activate. The Activate Policy popup opens. It lists the IP addresses of the reachable vSmart controllers to which the policy is to be applied.
-
Click Activate.
Configure Deep Packet Inspection Using CLI
Following are the high-level steps for configuring a centralized data policy to use for deep packet inspection:
-
Create a list of overlay network sites to which the data policy is to be applied in the apply-policy command:
vSmart(config)# policy vSmart(config-policy)# lists site-list list-name vSmart(config-lists-list-name)# site-id site-id
The list can contain as many site IDs as necessary. Include one site-id command for each site ID. For contiguous site IDs, you can specify a range of numbers separated with a dash (–).
Create additional site lists, as needed.
-
Create lists of applications and application families that are to be subject to the data policy, Each list can contain one or more application names, or one or more application families. A single list cannot contain both applications and application families.
vSmart(config)# policy lists vSmart(config-lists)# app-list list-name vSmart(config-app-list)# app application-name vSmart(config)# policy lists vSmart(config-lists)# app-list list-name vSmart(config-applist)# app-family family-name
-
Create lists of IP prefixes and VPNs, as needed:
vSmart(config)# policy lists vSmart(config-lists)# data-prefix-list list-name vSmart(config-lists-list-name)# ip-prefix prefix/length vSmart(config)# policy lists vSmart(config-lists)# vpn-list list-name vSmart(config-lists-list-name)# vpn vpn-id
-
Create lists of TLOCs, as needed:
vSmart(config)# policy vSmart(config-policy)# lists tloc-list list-name vSmart(config-lists-list-name)# tloc ip-address color color encap encapsulation [preference number]
-
Define policing parameters, as needed:
vSmart(config-policy)# policer policer-name vSmart(config-policer)# rate bandwidth vSmart(config-policer)# burst bytes vSmart(config-policer)# exceed action
-
Create a data policy instance and associate it with a list of VPNs:
vSmart(config)# policy data-policy policy-name vSmart(config-data-policy-policy-name)# vpn-list list-name
-
Create a series of match–pair sequences:
vSmart(config-vpn-list)# sequence number vSmart(config-sequence-number)#
The match–action pairs are evaluated in order, by sequence number, starting with the lowest numbered pair and ending when the route matches the conditions in one of the pairs. Or if no match occurs, the default action is taken (either rejecting the route or accepting it as is).
-
Define match parameters based on applications:
vSmart(config-sequence-number)# match app-list list-name
-
Define additional match parameters for data packets:
vSmart(config-sequence-number)# match parameters
-
Define actions to take when a match occurs:
vSmart(config-sequence-number)# action (accept | drop) [count]
-
For packets that are accepted, define the actions to take. To control the tunnel over which the packets travels, define the remote or local TLOC, or for strict control over the tunnel path, set both:
vSmart(config-action)# set tloc ip-address color color encap encapsulation vSmart(config-action)# set tloc-list list-name vSmart(config-action)# set local-tloc color color encap encapsulation vSmart(config-action)# set local-tloc-list color color encap encapsulation [restrict]
- Define additional actions to take.
- Create additional numbered sequences of match–action pairs within the data policy, as needed.
-
If a route does not match any of the conditions in one of the sequences, it is rejected by default. If you want nonmatching prefixes to be accepted, configure the default action for the policy:
vSmart(config-policy-name)# default-action accept
-
Apply the policy to one or more sites in the overlay network:
vSmart(config)# apply-policy site-list list-name data-policy policy-name (all | from-service | from-tunnel)
To enable the infrastructure for deep packet inspection on the vEdge routers, include the following command in the configuration on the routers:
vEdge(config)# policy app-visibility
Structural Components of Policy Configuration for Deep Packet Inspection
Following are the structural components required to configure centralized data policy for deep packet inspection. Each one is explained in more detail in the sections below.
On the vSmart controller:
policy
lists
app-list list-name
(app applications | app-family application-families)
data-prefix-list list-name
ip-prefix prefix
site-list list-name
site-id site-id
tloc-list list-name
tloc ip-address color color encap encapsulation [preference value]
vpn-list list-name
vpn vpn-id
policer policer-name
burst bytes
exceed action
rate bps
data-policy policy-name
vpn-list list-name
sequence number
match
app-list list-name
destination-data-prefix-list list-name
destination-ip ip-addresses
destination-port port-numbers
dscp number
packet-length number
protocol protocol
source-data-prefix-list list-name
source-ip ip-addresses
source-port port-numbers
tcp flag
action
drop
count counter-name
log
accept
nat [pool number] [use-vpn 0]
set
dscp number
forwarding-class class
local-tloc color color [encap encapsulation] [restrict]
next-hop ip-address
policer policer-name
service service-name local [restrict] [vpn vpn-id]
service service-name (tloc ip-address | tloc-list list-name) [vpn vpn-id]
tloc ip-address color color encap encapsulation
tloc-list list-name
vpn vpn-id
default-action
(accept | drop)
apply-policy site-list list-name
data-policy policy-name (all | from-service | from-tunnel)
On the vEdge router:
policy
app-visibility
Action Parameters for Configuring Deep Packet Inspection
When data traffic matches the conditions in the match portion of a centralized data policy, the packet can be accepted or dropped, and it can be counted. Then, you can associate parameters with accepted packets.
In vManage NMS, you configure match parameters from:
In the CLI, you configure the action parameters under the policy data-policy vpn-list sequence action command.
Each sequence in a centralized data policy can contain one action condition.
In the action, you first specify whether to accept or drop a matching data packet, and whether to count it:
Description | vManage Configuration/CLI Configuration Parameter | Value or Range |
---|---|---|
Accept the packet. An accepted packet is eligible to be modified by the additional parameters configured in the action portion of the policy configuration. |
Click Accept. accept |
— |
Count the accepted or dropped packets. |
Action Counter Click Accept, then action Counter count counter-name |
Name of a counter. Use the show policy access-lists counters command on the Cisco device. |
Discard the packet. This is the default action. |
Click Drop drop |
— |
To view the packet logs, use the show app log flows and show log commands.
Then, for a packet that is accepted, the following parameters can be configured. Note that you cannot use DPI with either cflowd or NAT.
Description | vManage | CLI Configuration Parameter | Value or Range |
---|---|---|---|
DSCP value. |
Click Accept, then action DSCP. |
set dscp value |
0 through 63 |
Forwarding class. |
Click Accept, then action Forwarding Class. |
set forwarding-class value |
Name of forwarding class |
Direct matching packets to a TLOC that mathces the color and encapsulation By default, if the TLOC is not available, traffic is forwarded using an alternate TLOC. |
Click Accept, then action Local TLOC. |
set local-tloc color color [encap encapsulation] |
color can be: 3g, biz-internet, blue, bronze, custom1, custom2, custom3, default, gold, green lte, metro-ethernet, mpls, private1 through private6, public-internet, red, and silver. By default, encapsulation is ipsec. It can also be gre. |
Direct matching packets to one of the TLOCs in the list if the TLOC matches the color and encapsulation By default, if the TLOC is not available, traffic is forwarded using an alternate TLOC. To drop traffic if a TLOC is unavailable, include the restrict option. |
Click Accept, then action Local TLOC |
set local-tloc-list color color encap encapsulation [restrict] |
|
Set the next hop to which the packet should be forwarded. |
Click Accept, then action Next Hop. |
set next-hop ip-address |
IP address |
Apply a policer. |
Click Accept, then action Policer. |
set policer policer-name |
Name of policer configured with a policy policer command. |
Direct matching packets to the name service, before delivering the traffic to its ultimate destination. The TLOC address or list of TLOCs identifies the remote TLOCs to which the traffic should be redirected to reach the service. In the case of multiple TLOCs, the traffic is load-balanced among them. The VPN identifier is where the service is located. Configure the services themselves on the vEdge routers that are collocated with the service devices, using the vpn service configuration command. |
Click Accept, then action Service. |
set service service-name [tloc ip-address | tloc-list list-name] [vpn vpn-id] |
Standard services: FW, IDS, IDP Custom services: netsvc1, netsvc2,netsvc3, netsvc4 TLOC list is configured with a policy lists tloc-list list. |
Direct matching packets to the named service that is reachable via a GRE tunnel whose source is in the transport VPN (VPN 0). If the GRE tunnel used to reach the service is down, packet routing falls back to using standard routing. To drop packets when a GRE tunnel to the service is unreachable, include the restrict option. In the service VPN, you must also advertise the service using the service command. You configure the GRE interface or interfaces in the transport VPN (VPN 0). |
Click Accept, then action Service. |
set service service-name [tloc ip-address | tloc-list list-name] [vpn vpn-id] |
Standard services: FW, IDS, IDP Custom services: netsvc1, netsvc2,netsvc3, netsvc4 |
Direct traffic to a remote TLOC. The TLOC is defined by its IP address, color, and encapsulation. |
Click Accept, then action TLOC. |
set local-tloc color color [encap encapsulation] |
TLOC address, color, and encapsulation |
Direct traffic to one of the remote TLOCs in the TLOC list. |
Click Accept, then action TLOC. |
set tloc-list list-name |
Name of a policy lists tloc-list list |
Set the VPN that the packet is part of. |
Click Accept, then action VPN. |
set vpn vpn-id |
0 through 65530 |
Default Action
If a data packet being evaluated does not match any of the match conditions in a data policy, a default action is applied to the packet. By default, the data packet is dropped.
In vManage NMS, you modify the default action from Configuration > Policies > Centralized Policy > Add Policy > Configure Traffic Rules > Application-Aware Routing > Sequence Type > Sequence Rule > Default Action.
In the CLI, you modify the default action with the policy data-policy vpn-list default-action accept command.
Apply Centralized Data Policy for Deep Packet Inspection
For a deep packet inspection centralized data policy to take effect, you apply it to a list of sites in the overlay network.
To apply a centralized policy in vManage NMS:
-
In vManage NMS, select the Configure > Policies screen.
-
Select a policy from the policy table.
-
Click the More Actions icon to the right of the row, and click Activate. The Activate Policy popup opens. It lists the IP addresses of the reachable vSmart controllers to which the policy is to be applied.
-
Click Activate.
To apply a centralized policy in the CLI:
vSmart(config)# apply-policy site-list list-name data-policy policy-name (all | from-service | from-tunnel)
By default, data policy applies to all data traffic passing through the vEdge router: the policy evaluates all data traffic going from the local site (that is, from the service side of the router) into the tunnel interface, and it evaluates all traffic entering to the local site through the tunnel interface. You can explicitly configure this behavior by including the all option. To have the data policy apply only to policy exiting from the local site, include the from-service option. To have the policy apply only to incoming traffic, include the from-tunnel option.
You cannot apply the same type of policy to site lists that contain overlapping site IDs. That is, all data policies cannot have overlapping site lists among themselves. If you accidentally misconfigure overlapping site lists, the attempt to commit the configuration on the vSmart controller fails.
As soon as you successfully activate the configuration by issuing a commit command, the vSmart controller pushes the data policy to the vEdge routers located in the specified sites. To view the policy as configured on the vSmart controller, use the show running-config command on the vSmart controller:
vSmart# show running-config policy
vSmart# ;show running-config apply-policy
To view the policy that has been pushed to the vEdge router, use the show policy from-vsmart command on the vEdge router.
vEdge# show policy from-vsmart
Monitor Running Applications
To enable the deep packet inspection infrastructure on the vEdge routers, you must enable application visibility on the routers:
vEdge(config)# policy app-visibility
To display information about the running applications, use the show app dpi supported-applications, show app dpi applications, and show app dpi flows commands on the router.
View DPI Applications Using vManage
You can view the list of all the application-aware applications supported by the SD-WAN software on the router using the following steps:
-
In the Cisco vManage, select the
screen. -
From the Device that supports DPI. The vManage Control Connections page displays.
pane, select the -
In the left pane, select
to view the device details. -
From the
drop-down, choose to view the list of applications running on the device. -
From the
drop-down, choose to view the list of applications that are supported on the device.
Centralized Data Policy Configuration Examples
This topic provides some examples of configuring centralized data policy to influence traffic flow across the Cisco IOS XE SD-WAN domain and to configure a Cisco IOS XE SD-WAN device to be an Internet exit point.
General Centralized Data Policy Example
This section shows a general example of a centralized data policy to illustrate that you configure centralized data policy on a Cisco vSmart Controller and that after you commit the configuration, the policy itself is pushed to the required Cisco IOS XE SD-WAN devices.
Here we configure a simple data policy on the Cisco vSmart Controller vm9:
vm9# show running-config policy
policy
data-policy test-data-policy
vpn-list test-vpn-list
sequence 10
match
destination-ip 209.165.201.0/27
!
action drop
count test-counter
!
!
default-action drop
!
!
lists
vpn-list test-vpn-list
vpn 1
!
site-list test-site-list
site-id 500
!
!
!
Then, apply this policy to the site list named test-site-list, which includes site 500:
vm9# show sdwan running-config apply-policy
apply-policy
site-list test-site-list
data-policy test-data-policy
!
!
Immediately after you activate the configuration on the Cisco vSmart Controller, it pushes the policy configuration to the Cisco IOS XE SD-WAN devices in site 500. One of these devices is vm5, where you can see that the policy has been received:
vm5# show sdwan policy from-vsmart
policy-from-vsmart
data-policy test-data-policy
vpn-list test-vpn-list
sequence 10
match
destination-ip 209.165.201.0/27
!
action drop
count test-counter
!
!
default-action drop
!
!
lists
vpn-list test-vpn-list
vpn 1
!
!
!
Control Access
This example shows a data policy that limits the type of packets that a source can send to a specific destination. Here, the host at source address 192.0.2.1 in site 100 and VPN 100 can send only TCP traffic to the destination host at 203.0.113.1. This policy also specifies the next hop for the TCP traffic sent by 192.0.2.1, setting it to be TLOC 209.165.200.225, color gold. All other traffic is accepted as a result of the default-action statement.
policy
lists
site-list north
site-id 100
vpn-list vpn-north
vpn 100
!
data-policy tcp-only
vpn-list vpn-north
sequence 10
match
source-ip 192.0.2.1/32
destination-ip 198.51.100.1/32
protocol tcp
action accept
set tloc 203.0.113.1 gold
!
default-action accept
!
!
apply-policy
site north data-policy tcp-only
Restrict Traffic
This examples illustrates how to disallow certain types of data traffic from being sent from between VPNs. This policy drops data traffic on port 25, which carries SMTP mail traffic, that originates in 209.165.201.0/27. However, the policy accepts all other data traffic, including non-SMTP traffic from 209.165.201.0/27.
policy
lists
data-prefix-list north-ones
ip-prefix 209.165.201.0/27
port 25
vpn-list all-vpns
vpn 1
vpn 2
site-list north
site-id 100
!
data-policy no-mail
vpn-list all-vpns
sequence 10
match
source-data-prefix-list north-ones
action drop
!
default-action accept
!
!
apply-policy
site north data-policy no-mail