- Preface
- Product Overview
- Command-Line Interfaces
- Configuring the Switch for the First Time
- Administering the Switch
- Configuring Virtual Switching Systems
- Programmability
- Configuring the Cisco IOS In-Service Software Upgrade Process
- Configuring the Cisco IOS XE In Service Software Upgrade Process
- Configuring Interfaces
- Checking Port Status and Connectivity
- Configuring Supervisor Engine Redundancy Using RPR and SSO on Supervisor Engine 6-E and Supervisor Engine 6L-E
- Configuring Supervisor Engine Redundancy Using RPR and SSO on Supervisor Engine 7-E, Supervisor Engine 7L-E, and Supervisor Engine 8-E
- Configuring Cisco NSF with SSO Supervisor Engine Redundancy
- Environmental Monitoring and Power Management
- Configuring Power over Ethernet
- Configuring Cisco Network Assistant
- Configuring VLANs, VTP, and VMPS
- Configuring IP Unnumbered Interface
- Configuring Layer 2 Ethernet Interfaces
- Configuring EVC-Lite
- Configuring SmartPort Macros
- Configuring Cisco IOS Auto Smartport Macros
- Configuring STP and MST
- Configuring Flex Links and MAC Address-Table Move Update
- Configuring Resilient Ethernet Protocol
- Configuring Optional STP Features
- Configuring EtherChannel and Link State Tracking
- Configuring IGMP Snooping and Filtering, and MVR
- Configuring IPv6 Multicast Listener Discovery Snooping
- Configuring 802.1Q Tunneling, VLAN Mapping, and Layer 2 Protocol Tunneling
- Configuring Cisco Discovery Protocol
- Configuring LLDP, LLDP-MED, and Location Service
- Configuring UDLD
- Configuring Unidirectional Ethernet
- Configuring Layer 3 Interfaces
- Configuring Cisco Express Forwarding
- Configuring Unicast Reverse Path Forwarding
- Configuring IP Multicast
- Configuring ANCP Client
- Configuring Bidirectional Forwarding Detection
- Configuring Campus Fabric
- Configuring Policy-Based Routing
- Configuring VRF-lite
- Configuring Quality of Service
- Configuring AVC with DNS-AS
- Configuring Voice Interfaces
- Configuring Private VLANs
- Configuring MACsec Encryption
- Configuring 802.1X Port-Based Authentication
- X.509v3 Certificates for SSH Authentication
- Configuring the PPPoE Intermediate Agent
- Configuring Web-Based Authentication
- Configuring Wired Guest Access
- Configuring Auto Identity
- Configuring Port Security
- Configuring Auto Security
- Configuring Control Plane Policing and Layer 2 Control Packet QoS
- Configuring Dynamic ARP Inspection
- Configuring the Cisco IOS DHCP Server
- Configuring DHCP Snooping, IP Source Guard, and IPSG for Static Hosts
- DHCPv6 Options Support
- Configuring Network Security with ACLs
- Support for IPv6
- Port Unicast and Multicast Flood Blocking
- Configuring Storm Control
- Configuring SPAN and RSPAN
- Configuring ERSPAN
- Configuring Wireshark
- Configuring Enhanced Object Tracking
- Configuring System Message Logging
- Onboard Failure Logging (OBFL)
- Configuring SNMP
- Configuring NetFlow-lite
- Configuring Flexible NetFlow
- Configuring Ethernet OAM and CFM
- Configuring Y.1731 (AIS and RDI)
- Configuring Call Home
- Configuring Cisco IOS IP SLA Operations
- Configuring RMON
- Performing Diagnostics
- Configuring WCCP Version 2 Services
- Configuring MIB Support
- Configuring Easy Virtual Networks
- ROM Monitor
- Acronyms and Abbreviations
- Index
- About AVC with DNS-AS
- Configuring AVC with DNS-AS
- Prerequisites for Configuring AVC with DNS-AS
- Restrictions and Guidelines for Configuring AVC with DNS-AS
- Generating Metadata Streams
- Configuring a DNS Server as the Authoritative Server
- Enabling AVC with DNS-AS
- Making an Entry in the Trusted Domain List
- Configuring QoS for AVC with DNS-AS
- Configuring FNF for AVC with DNS-AS
Configuring AVC with DNS-AS
The Application Visibility Control (AVC) with Domain Name System as an Authoritative Source (DNS-AS) feature (AVC with DNS-AS) provides a centralized means of controlling the identification and classification of trusted network traffic in an organization. It accomplishes this by using—network metadata stored in a DNS server that is authoritative to the domain in question, to identify applications, Modular QoS CLI (MQC), to classify the corresponding traffic and apply suitable policies, and Flexible NetFlow (FNF), to monitor and export application information to an external collector.
Starting with Cisco IOS XE Release 3.9.0E, the feature is available on Catalyst 4500E Series Switches with Supervisor Engine 8-E, 8L-E, 7-E, 7L-E, and Catalyst 4500-X Series Switches. The ability to export application information using FNF is supported beginning with Cisco IOS XE Release 3.9.2E.
The DNS-AS mechanism snoops requests and does not require a CPU-intensive, deep packet inspection (DPI). Since traffic classification is by means of a DNS request and not DPI, this feature is compatible in scenarios where network traffic is encrypted.
This enables you to holistically program the network so it behaves like a self-driving car. You now have information about all the required applications in your network, irrespective of whether traffic is encrypted or not.
The feature leverages an existing, universally available query-response mechanism, to enable local DNS servers within an organization to act as authoritative servers and propagate application classification information to client devices (switches) in an enterprise network.
The feature supports scenarios where your network may be in the cloud and you may not own it. You can still control network devices across the Internet, even though you may not have administrative control of these devices.
This chapter describes how to configure AVC with DNS-AS. It includes the following major sections:
About AVC with DNS-AS
- Overview
- Key Concepts
- AVC with DNS-AS Process Flow
- High Availability and ISSU for AVC with DNS-AS
- Default Configuration
Overview
The process starts with an organization’s requirements relating to management and control of network traffic. You begin by assessing—the software applications that run on the various hosts (phones, PCs etc.) in your network, the domains (websites) and applications accessed by these devices, and the business-relevance of these domains and applications in your organization.
The assessment helps you arrive at a list of domains and applications that are “trusted” by your organization - designating all remaining domains and applications as untrusted.
With DNS-AS enabled on your network and the list of trusted domains at hand, the networking devices or DNS-AS clients in your network identify which applications the network traffic belongs to or which domains are being requested. As long as the traffic is part of the trusted list, the switch requests the DNS server for metadata and IP address information. This request is sent in the form of a DNS-query. The response, once received, is cached locally until the Time-to-Live (TTL) for that resource record expires. The response is bound to the traffic and allows the DNS-AS client to now identify, classify, and forward traffic accordingly.
Key Concepts
AVC with DNS-AS Process Flow
This involves the DNS snooping process and the DNS-AS client process—both of which are loosely coupled, but independent processes. AVC with DNS-AS Process Flow is a representation of both processes.
Step 1 The host initiates an “A” record request.
A user from your organization is in a meeting room in an office building. The associated DNS-AS client here is a switch (the wired network traffic from this meeting room is routed through this switch). The user looks up a website www.example.com, which initiates the request for an “A” record.
Step 2 The authoritative DNS-server responds with an “A” record response.
Part-II: DNS-AS Client Process
Step 1 The DNS-AS client sends a DNS query (TXT request) to the authoritative DNS server.
The DNS-AS client, which is constantly snooping for requests (based on the trusted domain list), finds the host’s forward look-up request.
Note The DNS-AS client receives a copy of the host’s “A” record request, and does not alter the host’s original request in any manner.
Based on the snooped result, the DNS-AS client sends a TXT request to the authoritative DNS server.
Step 2 The authoritative DNS-server responds with a TXT record response.
Step 3 A successful TXT response is followed by an “A” record request.
Step 4 The authoritative DNS-server responds with an “A” record response.
Step 5 The DNS-AS client parses and saves the response in its binding table.
The DNS-AS client saves the TXT record and “A” record in its binding table. The response will remain saved in the binding table for the duration specified by the TTL of the “A” record. The system automatically checks and prevents duplicate entries for a fully qualified domain name in the binding table.
The DNS-AS client applies a QoS policy based on the metadata from the DNS server, and exports application information to a collector, based on how the flow record is configured.
The DNS-AS client forwards information about identified applications to FNF, enabling you to export this information.
Figure 45-1 AVC with DNS-AS Process Flow
High Availability and ISSU for AVC with DNS-AS
The AVC with DNS-AS feature supports High Availability and ISSU.
For High Availability, the binding table database of the active DNS-AS client is synchronized with the standby DNS-AS client. As long as AVC with DNS-AS is enabled, no additional user configuration is required.
The binding table entries are synchronized when:
- The standby comes up (bulk synchronization).
- New entries are added to the binding table database.
- One or more entries are cleared from the database.
Note AVC with DNS-AS is also supported in the VSS mode, and Quad-Supervisor VSS Mode.
Default Configuration
Configuring AVC with DNS-AS
- Prerequisites for Configuring AVC with DNS-AS
- Restrictions and Guidelines for Configuring AVC with DNS-AS
- Generating Metadata Streams
- Configuring a DNS Server as the Authoritative Server
- Enabling AVC with DNS-AS
- Making an Entry in the Trusted Domain List
- Configuring QoS for AVC with DNS-AS
- Configuring FNF for AVC with DNS-AS
Prerequisites for Configuring AVC with DNS-AS
- The DNS-AS client can snoop forward look-up requests originating from hosts.
- To ensure DNS packet logging or snooping, you must attach the policy map to the interface, by using the service-policy input command.
- You have maintained metadata in the authoritative DNS server and reachability exists - before you enable AVC with DNS-AS.
Restrictions and Guidelines for Configuring AVC with DNS-AS
- Only a forward look-up is supported.
- Two DNS servers are supported, in case of a failover. One is considered the primary DNS server and other, the secondary DNS server.
- IPv6 is not supported—AAAA requests, and IPv6 DNS servers are not supported.
- AVC with DNS-AS is supported only on physical interfaces, in the ingress direction.
- AVC with DNS-AS is not supported on wireless traffic.
- Virtual Routing and Forwarding (VRF) is not supported.
- We recommend a maximum of 300 AVC with DNS-AS applications (domain names) in the binding table, because of its effect on the ternary content addressable memory (TCAM). To know how the addition of applications affects the TCAM see the Troubleshooting AVC with DNS-AS section of this chapter
Generating Metadata Streams
Application metadata is configured and saved on the local, authoritative DNS server. You configure application classification information, for each trusted domain, in a prescribed format (a metadata stream). This is the information that the server propagates to switches when queried for application metadata. When the switch sends a TXT query regarding an application, the DNS server sends the relevant metadata in the TXT response.
To generate metadata streams, perform the following task:
|
|
|
---|---|---|
|
Helps you generate a metadata stream for an application or domain, in a TXT record format. You can specify the following metadata fields:
– Existing Application Name ( app-name:)—Select from the list of standard applications. – Custom Application Name( app-name:)—If you enter a custom application name, you must also maintain the Traffic Class and Business Relevance information in the metadata stream.
– Classification Engine ID—Defines the context for the selector ID. Only these engine IDs are allowed: L3—IANA layer 3 protocol number L4—IANA layer 4 well-known port number L7—Cisco global application ID CU—Custom protocol. Use this engine ID for custom application names. – Selector ID—An application identifier, for a given classification engine ID. Enter a numeric value between 1 and 65535. Note When you enter the engine ID and selector ID for existing application names, be sure to align with the Network Based Application Recognition (NBAR) standard. Only then will the FNF exporters report with a common ID and in a consistent manner.
For information about how traffic class and business relevance fields here map to QoS traffic classification, see app-class and QoS Traffic Mapping. Sample metadata stream: CISCO-CLS=app-name:example|app-class:TD|business:YES|app-id:CU/28202 |
|
Generate predefined— Generates a predefined metadata stream for standard applications, using best practice defaults. Generate custom— Generates a custom metadata stream for your applications, using the custom values you have entered. |
||
Copy metadata into the corresponding TXT Resource Record of the DNS server in charge of the DNS domain that you have marked as a trusted domain. |
Copy and paste the metadata stream from the website, to the authoritative DNS server you are using. |
Configuring a DNS Server as the Authoritative Server
All DNS-AS clients in the network should be configured to send all DNS queries to one authoritative DNS server. On a Cisco Catalyst switch, perform the following task:
Enabling AVC with DNS-AS
DNS-AS is disabled by default. To enable the feature on a Cisco Catalyst switch, perform the following task:
|
|
|
---|---|---|
|
||
|
Enables AVC with DNS-AS on the switch (DNS-AS client). The system then creates a binding table where parsed DNS server responses are stored till the TTL expires. Note To ensure DNS packet logging or snooping, you must attach the policy map (containing the relevant class maps that will determine traffic class) to the interface by using the service-policy input command. For more information see Configuring QoS for AVC with DNS-AS. |
Making an Entry in the Trusted Domain List
When AVC with DNS-AS is first enabled on the switch, the trusted domain list is empty. You must maintain the list of trusted domains on the switch. The switch snoops only for network traffic that is maintained in this list. To make entries in this list, perform the following task
Configuring QoS for AVC with DNS-AS
In order to isolate and classify trusted traffic as defined in the metadata stream, you must complete this sequence of tasks—create class maps (one for each traffic class), define traffic-class match criteria and business-relevance match criteria, create a policy map, attach the policy map to the interface. This sub-section provides the following information:
- Class Map Configuration in the Easy QoS Model
- Policy Map Definitions in the Easy QoS Model
- App-Class and QoS Traffic Mapping
- Sample QoS Configuration for AVC with DNS-AS: Classifying Network Control Traffic
For more QoS information, see the Classification section of the Configuring QoS chapter in this guide.
Class Map Configuration in the Easy QoS Model
In order to determine how many traffic classes should be provisioned, you can use the 12-class Easy QoS Model. This model provides uniform, standards-based recommendations to help ensure that QoS designs and deployments are unified and consistent across an organization.
The following shows the class map configuration for traffic class and business relevance as per the 12-class Easy QoS Model:
Policy Map Definitions in the Easy QoS Model
The following sample output displays the policy map definitions, with traffic attribute marking for all the traffic classes in the 12-class Easy QoS Model:
App-Class and QoS Traffic Mapping
The following table shows how the app-class field in the metadata stream maps to the 12-class Easy QoS Model of traffic classification:
Note The DNS-AS client applies default forwarding behavior in these cases:
- If the match attributes that you specify for the traffic class and business relevance do not match what you have defined in the metadata stream.
- If the binding table entry is no longer active. This refers to the age of the entry. Use the show avc dns-as client binding-table command to display the age of an entry
|
|
|
Sample QoS Configuration for AVC with DNS-AS: Classifying Network Control Traffic
The following example shows how to classify network-control traffic based on the 12-class Easy QoS model. It shows how the DNS-AS client allows “example.org” to be classifed under class-map NETWORK-CONTROL.
For this example, the corresponding metadata that should be maintained is:
Create class maps and match attributes
Create the policy map, attach the class map to it and specify priority
Attach the policy map to an interface
Configuring FNF for AVC with DNS-AS
With FNF, you can gain visibility into the applications running on your network, and use FNF option templates to export application ID, description, and attribute information.
You must configure these FNF settings on the DNS-AS client:
- Configure a flow record to collect nonkey field application-name, and the key fields ipv4 source address and ipv4 destination address
- Configure a flow exporter and the two option templates, to fetch application information.
Option template application-table, exports only applications resolved by the DNS-AS client, that is, the application ID and name from the binding table. The corresponding application descriptions come from Network Based Application Recognition (NBAR) definition for standard applications. A constructured help string is used for custom applications.
Option application-attributes fetches attribute information by mapping it to the application name. Where standard application names are used, the option template uses standard NBAR attribute definitions; where custom application names are used, user-defined application names and only certain attribute fields are guaranteed to carry values.
FNF Interaction with DNS-AS—With every flow that is created in the flow table, the DNS-AS client resolves the application name for the flow (if the entry exists in the binding table), by using the destination IP address (and if not available), the source IP address.
At periodic, configured intervals (600 seconds, by default), FNF exports option template data, that is mapped to the corresponding application name, to an external collector.
For more informattion about FNF, see the Configuring Flexible NetFlow chapter in this guide.
Option Templates
The application-table and application-attributes options templates are supported. These templates determine the information that will be exported to an external collector.
option application-table
Exports the application name, application tag, and description to the external collector.
On a device where AVC with DNS-AS is enabled, only applications resolved by the DNS-AS client are exported. But in addition, the application-table template exports two applications called unclassified and unknown, irrespective of whether the feature is enabled or not.
- Application Name—For custom and standard applications, this information is derived from the TXT response ( app-name :) that is saved in the binding table.
- Application Tag—This is same as application ID in the context of the AVC with DNS-AS feature and consists of the engine ID and selector ID.
– Engine ID or Classification Engine ID—Defines the context for the selector ID. Only these values are supported:
L3—IANA layer 3 protocol number (IANA_L3_STANDARD, ID: 1)
L4—IANA layer 4 well-known port number (IANA_L4_STANDARD, ID: 3)
L7—Cisco global application ID (CISCO_L7_GLOBAL, ID: 13)
CU—Custom protocol, (NBAR_CUSTOM, ID: 6). For custom applications, the DNS-AS client automatically uses this engine ID.
– Selector ID—Uniquely identifies the application or classification.
For standard applications, the application tag information is derived from these sources, in the given order of precedence:
2. The NBAR definition for standard applications (if the TXT response does not carry a value)
For custom applications, the following applies to application tag information:
1. It is derived only from the TXT response ( app-id :)
2. For the engine ID, the DNS-AS client automatically uses CU—Custom protocol, (NBAR_CUSTOM, ID: 6).
3. For the selector ID, the DNS-AS client allots a custom selector ID. A maximum of 120 custom applications are supported - out of which 110 are available to the DNS-AS client. Starting with selector ID value 243, IDs are assigned in descending order. When there are no remaining IDs to assign, the entry is not saved in the binding table.
option application-attributes
Enables the collector to map the application names (from the option application-table) to their attributes. Attributes are statically assigned to each protocol or application, and are not dependent on traffic.
- Application Tag—Guidelines that apply this field as part of the option application-table template apply here as well.
- Category—Groups applications based on the first level of categorization for each protocol as the match criteria. Similar applications are grouped together under one category. For example, the email category contains all email applications such as, Internet Mail Access Protocol (IMAP), Simple Mail Transfer Protocol (SMTP), Lotus Notes, and so on.
- Sub-category—Groups applications based on the second level of categorization for each protocol as the match criteria. For example, clearcase, dbase, rda, mysql and other database applications are grouped under the database group.
- Application Group—Groups the same networking applications together. For instance, Example-Messenger, Example-VoIP-messenger, and Example-VoIP-over-SIP are grouped together under the example-messenger-group
- Peer-to-peer (p2p)—Groups protocols based on whether or not they use p2p technology.
- Tunnel—Groups protocols based on whether or not a protocol tunnels the traffic of other protocols. Protocols for which the NBAR does not provide any value are categorized under the unassigned tunnel group. For example, Layer 2 Tunneling Protocols (L2TP).
- Encryption—Groups applications based on the encrypted and nonencrypted status of the applications. Protocols for which the NBAR does not provide any value are categorized under the unassigned encrypted group.
- Traffic class—Groups applications and protocols based on the traffic class they belong to. For example, all applications that have traffic class TD.
Traffic class information is derived from these sources, in the given order of precedence:
1. TXT response ( app-class :)
2. The NBAR definition for standard applications (if the TXT response does not carry a value)
- Business relevance—Groups applications based on whether or not they have been marked as business-relevant. For example, all applications that have business relevance as YES.
Business relevance information is derived from these sources, in the given order of precedence:
2. The NBAR definition for standard applications (if the TXT response does not carry a value)
Only these attributes of the application-attributes option template are guaranteed to carry a value:
- Application Tag—See the Application Tag info in section option application-table above. The same applies here as well.
- Traffic class—This information is derived from the TXT response ( app-class:)
- Business Relevance—This information is derived from the TXT response ( business:)
Sample FNF Configuration for AVC with DNS-AS
The following example shows how you can configure FNF for AVC with DNS-AS:
1. Create a flow record. As in the example, you must configure:
– The source and destination IP addresses as key fields, in order to resolve application names.
– The use of the application name as a nonkey field in flow record.
Additionally (not mandatory), you can also configure the number of bytes or packets in a flow as a nonkey field, to display the number of applications sent to the collector.
2. Create a flow exporter. Also configure the application-table and application-attributes option templates in the exporter. Without option templates, the collector cannot retrieve meaningful application information. At a minimum we recommend that you configure the application-table option. For attribute information, also configure the application-attribute option.
You can also change the frequency of template export in seconds (the allowed range is 1 to 86400 seconds; the default is 600 seconds)
3. Create a flow monitor and apply it to an interface to perform network traffic monitoring.
The interface you apply the flow monitor to, can also be the same interface you have applied the QoS policy to. This example applies the QoS policy created as part of the sample QoS configuration Sample QoS Configuration for AVC with DNS-AS: Classifying Network Control Traffic.
4. Other related show commands:
Monitoring AVC with DNS-AS
To display the various AVC with DNS-AS settings you have configured, use these show commands in the privileged EXEC mode:
Example: show avc dns-as client status
Back to AVC with DNS-AS Monitoring Commands.
Example: show avc dns-as client trusted-domains
Back to AVC with DNS-AS Monitoring Commands.
Example: show avc dns-as client binding-table detail
Switch#
show avc dns-as client binding-table detailed
Back to AVC with DNS-AS Monitoring Commands.
Example: show avc dns-as client statistics
Note Two DNS servers are configured in this example.
Back to AVC with DNS-AS Monitoring Commands.
Example: show avc dns-as client name-server brief
Switch# show avc dns-as client name-server brief
------------------------------------------------------
Back to AVC with DNS-AS Monitoring Commands.
Example: show ip name-server
Back to AVC with DNS-AS Monitoring Commands.
Troubleshooting AVC with DNS-AS
|
|
---|---|
The binding table may be empty because of one or both of these reasons:
|
|
To ensure DNS snooping and packet logging, you must attach the policy map (containing the relevant class maps that will determine traffic class) to the interface—See the example in the Configuring QoS for AVC with DNS-AS section. |
|
Verify that the correct DNS-AS metadata is maintained in the DNS system |
|
When the DNS-AS client recognises an application, along with saving the "A" record response in the binding table, the system utilises the TCAM to save the IP address of the application. A single application can in effect have multiple IP addresses, each utilising additional space in the TCAM. When the TCAM is exhausted, QoS policies cease to be applied. To avoid the problem, monitor TCAM utilisation on a regular basis. Enter the show platform tcam utilisation command in privilege EXEC mode, to display information about TCAM availability. |