The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
Book Contents Book ContentsSystem Management Configuration Guide, Cisco IOS XE Dublin 17.11.x (Catalyst 9400 Switches)
Application Visibility and Control (AVC) is a critical part of Cisco’s efforts to evolve its Branch and Campus solutions from being strictly packet and connection based to being application-aware and application-intelligent. Application Visibility and Control (AVC) classifies applications using deep packet inspection techniques with the Network-Based Application Recognition (NBAR2) engine. AVC can be configured on wired access ports for standalone switches. NBAR2 can be activated either explicitly on the interface by enabling protocol-discovery or implicitly by attaching a QoS policy that contains match protocol classifier. Wired AVC Flexible NetFlow (FNF) can be configured on an interface to provide client, server and application statistics per interface. The record is similar to application-client-server-stats traffic monitor which is available in application-statistics and application-performance profiles in Easy Performance Monitor (Easy perf-mon or ezPM).
class-map match-any NBAR-VOICE match protocol ms-lync-audio
class-map match-any NBAR-VOICE match protocol ms-lync-audio match dscp ef
Policy Format | QoS Action |
---|---|
Egress policy based on match protocol filter | Mark and police |
Ingress policy based on match protocol filter | Mark and police |
The following table describes the detailed AVC policy format with an example:
policy-map MARKING-IN class NBAR-MM_CONFERENCING set dscp af41
policy-map POLICING-IN class NBAR-MM_CONFERENCING police cir 600000 set dscp af41
policy-map webex-policy class webex-class set dscp ef police 5000000
policy-map webex-policy class webex-class set dscp af31 police 4000000 class class-webex-category set dscp ef police 6000000 class class-default set dscp <>
policy-map webex-policy class webex-class police 5000000 service-policy client-in-police-only policy-map client-in-police-only class webex-class police 100000 class class-webex-category set dscp ef police 200000
policy-map webex-policy class class-default police 1500000 service policy client-up-child policy-map client-up-child class webex-class police 100000 set dscp ef class class-webex-category police 200000 set dscp af31
To configure application visibility and control on wired ports, follow these steps:
Configuring Visibility :
Configuring application-based Flexible Netflow :
Protocol-Discovery, application-based QoS and application-based FNF are all independent features. They can be configured independently or together on the same interface at the same time.
To enable application recognition on an interface, follow these steps:
Device# configure terminal
Enters global configuration mode.
Device(config)# interface gigabitethernet 1/0/1
Specifies the interface for which you are enabling protocol-discovery and enters interface configuration mode.
ip nbar protocol-discovery
Device(config-if)# ip nbar protocol-discovery
Enables application recognition on the interface by activating NBAR2 engine.
Device(config-if)# end
Returns to privileged EXEC mode.
You need to create a class map before configuring any match protocol filter. The QoS actions such as marking and policing can be applied to the traffic. The AVC match protocol filters are applied to the wired access ports. For more information about the protocols that are supported, see http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/qos_nbar/prot_lib/config_library/nbar-prot-pack-library.html.
Device# configure terminal
Enters global configuration mode.
Device(config)# class-map webex-class
Creates a class map.
match protocol application-name
Device(config)# class-map webex-class Device(config-cmap)# match protocol webex-media
Specifies match to the application name.
Device(config)# end
Returns to privileged EXEC mode. Alternatively, you can also press Ctrl-Z to exit global configuration mode.
Device# configure terminal
Enters global configuration mode.
Device(config)# policy-map webex-policy
Creates a policy map by entering the policy map name, and enters policy-map configuration mode.
By default, no policy maps are defined.
The default behavior of a policy map is to set the DSCP to 0 if the packet is an IP packet and to set the CoS to 0 if the packet is tagged. No policing is performed.
To delete an existing policy map, use the no policy-map policy-map-name global configuration command.
class [ class-map-name | class-default ]
Device(config-pmap)# class webex-class
Defines a traffic classification, and enters policy-map class configuration mode.
By default, no policy map and class maps are defined.
If a traffic class has already been defined by using the class-map global configuration command, specify its name for class-map-name in this command.
A class-default traffic class is predefined and can be added to any policy. It is always placed at the end of a policy map. With an implied match any is included in the class-default class, all packets that have not already matched the other traffic classes will match class-default .
To delete an existing class map, use the no class class-map-name policy-map configuration command.
police rate-bps burst-byte
Device(config-pmap-c)# police 100000 80000
Defines a policer for the classified traffic.
By default, no policer is defined.
Device(config-pmap-c)# set dscp 45
Classifies IP traffic by setting a new value in the packet.
Device(config)# end
Returns to privileged EXEC mode. Alternatively, you can also press Ctrl-Z to exit global configuration mode.
Device# configure terminal
Enters global configuration mode.
Device(config)# interface Gigabitethernet 1/0/1
Enters the interface configuration mode.
service-policy input policymapname
Device(config-if)# service-policy input MARKING_IN
Applies local policy to interface.
Device(config)# end
Returns to privileged EXEC mode. Alternatively, you can also press Ctrl-Z to exit global configuration mode.
Wired AVC FNF supports two types of predefined flow records — Legacy Bidirectional flow records and Directional flow records (ingress and egress). A total of four different predefined flow records, two bidirectional flow records and two directional flow records, can be configured and associated with a flow monitor. The legacy bidirectional records are client/server application statistics records, and the new directional records are application-stats for input/output.
Device# configure terminal
Enters global configuration mode.
flow record flow_record_name
Device(config)# flow record fr-wdavc-1
Enters flow record configuration mode.
Device(config-flow-record)# description fr-wdavc-1
(Optional) Creates a description for the flow record.
match ipv4 version
Device(config-flow-record)# match ipv4 version
Specifies a match to the IP version from the IPv4 header.
match ipv4 protocol
DEvice(config-flow-record)# match ipv4 protocol
Specifies a match to the IPv4 protocol.
match application name
Device(config-flow-record)# match application name
Specifies a match to the application name.
match connection client ipv4 address
Device(config-flow-record)# match connection client ipv4 address
Specifies a match to the IPv4 address of the client (flow initiator).
match connection server ipv4 address
Device(config-flow-record)# match connection server ipv4 address
Specifies a match to the IPv4 address of the server (flow responder).
match connection server transport port
Device(config-flow-record)# match connection server transport port
Specifies a match to the transport port of the server.
match flow observation point
Device(config-flow-record)# match flow observation point
Specifies a match to the observation point ID for flow observation metrics.
collect flow direction
Device(config-flow-record)# collect flow direction
When the initiator keyword is set to initiator, the flow direction is specified from the initiator side of the flow. When the initiator keyword is set to responder, the flow direction is specified from the responder side of the flow. For wired AVC, the initiator keyword is always set to initiator.
collect connection initiator
Device(config-flow-record)# collect connection initiator
collect connection new-connections
Device(config-flow-record)# collect connection new-connections
Specifies to collect the number of connection initiations observed.
collect connection client counter packets long
Device(config-flow-record)# collect connection client counter packets long
Specifies to collect the number of packets sent by the client.
collect connection client counter bytes network long
Device(config-flow-record)# collect connection client counter bytes network long
Specifies to collect the total number of bytes transmitted by the client.
collect connection server counter packets long
Device(config-flow-record)# collect connection server counter packets long
Specifies to collect the number of packets sent by the server.
collect connection server counter bytes network long
Device(config-flow-record)# collect connection server counter bytes network long
Specifies to collect the total number of bytes transmitted by the server.
collect timestamp absolute first
Device(config-flow-record)# collect timestamp absolute first
Specifies to collect the time, in milliseconds, when the first packet was seen in the flow.
collect timestamp absolute last
Device(config-flow-record)# collect timestamp absolute last
Specifies to collect the time, in milliseconds, when the most recent packet was seen in the flow.
Device(config)# end
Returns to privileged EXEC mode. Alternatively, you can also press Ctrl-Z to exit global configuration mode.
show flow record
Device# show flow record
Displays information about all the flow records.
Device# configure terminal
Enters global configuration mode.
flow record flow_record_name
Device(config)# flow record fr-wdavc-1
Enters flow record configuration mode.
Device(config-flow-record)# description fr-wdavc-1
(Optional) Creates a description for the flow record.
match ipv4 version
Device(config-flow-record)# match ipv4 version
Specifies a match to the IP version from the IPv4 header.
match ipv4 protocol
Device(config-flow-record)# match ipv4 protocol
Specifies a match to the IPv4 protocol.
match application name
Device(config-flow-record)# match application name
Specifies a match to the application name.
match connection client ipv4 address
Device(config-flow-record)# match connection client ipv4 address
Specifies a match to the IPv4 address of the client (flow initiator).
match connection client transport port
Device(config-flow-record)# match connection client transport port
(Optional) Specifies a match to the connection port of the client as a key field for a flow record.
match connection server ipv4 address
Device(config-flow-record)# match connection server ipv4 address
Specifies a match to the IPv4 address of the server (flow responder).
match connection server transport port
Device(config-flow-record)# match connection server transport port
Specifies a match to the transport port of the server.
match flow observation point
Device(config-flow-record)# match flow observation point
Specifies a match to the observation point ID for flow observation metrics.
collect flow direction
Device(config-flow-record)# collect flow direction
When the initiator keyword is set to initiator, the flow direction is specified from the initiator side of the flow. When the initiator keyword is set to responder, the flow direction is specified from the responder side of the flow. For wired AVC, the initiator keyword is always set to initiator.
collect connection initiator
Device(config-flow-record)# collect connection initiator
collect connection new-connections
Device(config-flow-record)# collect connection new-connections
Specifies to collect the number of connection initiations observed.
collect connection client counter packets long
Device(config-flow-record)# collect connection client counter packets long
Specifies to collect the number of packets sent by the client.
collect connection client counter bytes network long
Device(config-flow-record)# collect connection client counter bytes network long
Specifies to collect the total number of bytes transmitted by the client.
collect connection server counter packets long
Device(config-flow-record)# collect connection server counter packets long
Specifies to collect the number of packets sent by the server.
collect connection server counter bytes network long
Device(config-flow-record)# collect connection server counter bytes network long
Specifies to collect the total number of bytes transmitted by the server.
collect timestamp absolute first
Device(config-flow-record)# collect timestamp absolute first
Specifies to collect the time, in milliseconds, when the first packet was seen in the flow.
collect timestamp absolute last
Device(config-flow-record)# collect timestamp absolute last
Specifies to collect the time, in milliseconds, when the most recent packet was seen in the flow.
Device(config)# end
Returns to privileged EXEC mode. Alternatively, you can also press Ctrl-Z to exit global configuration mode.
show flow record
Device# show flow record
Displays information about all the flow records.
Device# configure terminal
Enters global configuration mode.
flow record flow_record_name
Device(config)# flow record fr-wdavc-3
Enters flow record configuration mode.
Device(config-flow-record)# description flow-record-1
(Optional) Creates a description for the flow record.
match ipv4 version
Device(config-flow-record)# match ipv4 version
Specifies a match to the IP version from the IPv4 header.
match ipv4 protocol
Device(config-flow-record)# match ipv4 protocol
Specifies a match to the IPv4 protocol.
match ipv4 source address
Device(config-flow-record)# match ipv4 source address
Specifies a match to the IPv4 source address as a key field.
match ipv4 destination address
Device(config-flow-record)# match ipv4 destination address
Specifies a match to the IPv4 destination address as a key field.
match transport source-port
Device(config-flow-record)# match transport source-port
Specifies a match to the transport source port as a key field.
match transport destination-port
Device(config-flow-record)# match transport destination-port
Specifies a match to the transport destination port as a key field.
match interface input
Device(config-flow-record)# match interface input
Specifies a match to the input interface as a key field.
match application name
Device(config-flow-record)# match application name
Specifies a match to the application name.
collect interface output
Device(config-flow-record)# collect interface output
Specifies to collect the output interface from the flows.
collect counter bytes long
Device(config-flow-record)# collect counter bytes long
Specifies to collect the number of bytes in a flow.
collect counter packets long
Device(config-flow-record)# collect counter packets long
Specifies to collect the number of packets in a flow.
collect timestamp absolute first
Device(config-flow-record)# collect timestamp absolute first
Specifies to collect the time, in milliseconds, when the first packet was seen in the flow.
collect timestamp absolute last
Device(config-flow-record)# collect timestamp absolute last
Specifies to collect the time, in milliseconds, when the most recent packet was seen in the flow.
Device(config)# end
Returns to privileged EXEC mode. Alternatively, you can also press Ctrl-Z to exit global configuration mode.
show flow record
Device# show flow record
Displays information about all the flow records.
Device# configure terminal
Enters global configuration mode.
flow record flow_record_name
Device(config)# flow record fr-wdavc-4
Enters flow record configuration mode.
Device(config-flow-record)# description flow-record-1
(Optional) Creates a description for the flow record.
match ipv4 version
Device(config-flow-record)# match ipv4 version
Specifies a match to the IP version from the IPv4 header.
match ipv4 protocol
Device(config-flow-record)# match ipv4 protocol
Specifies a match to the IPv4 protocol.
match ipv4 source address
Device(config-flow-record)# match ipv4 source address
Specifies a match to the IPv4 source address as a key field.
match ipv4 destination address
Device(config-flow-record)# match ipv4 destination address
Specifies a match to the IPv4 destination address as a key field.
match transport source-port
Device(config-flow-record)# match transport source-port
Specifies a match to the transport source port as a key field.
match transport destination-port
Device(config-flow-record)# match transport destination-port
Specifies a match to the transport destination port as a key field.
match interface output
Device(config-flow-record)# match interface output
Specifies a match to the output interface as a key field.
match application name
Device(config-flow-record)# match application name
Specifies a match to the application name.
collect interface input
Device(config-flow-record)# collect interface input
Specifies to collect the input interface from the flows.
collect counter bytes long
Device(config-flow-record)# collect counter bytes long
Specifies to collect the number of bytes in a flow.
collect counter packets long
Device(config-flow-record)# collect counter packets long
Specifies to collect the number of packets in a flow.
collect timestamp absolute first
Device(config-flow-record)# collect timestamp absolute first
Specifies to collect the time, in milliseconds, when the first packet was seen in the flow.
collect timestamp absolute last
Device(config-flow-record)# collect timestamp absolute last
Specifies to collect the time, in milliseconds, when the most recent packet was seen in the flow.
Device(config)# end
Returns to privileged EXEC mode. Alternatively, you can also press Ctrl-Z to exit global configuration mode.
show flow record
Device# show flow record
Displays information about all the flow records.
Device# configure terminal
Enters global configuration mode.
flow record flow_record_name
Device(config)# flow record fr-wdavc-5
Enters flow record configuration mode.
Device(config-flow-record)# description flow-record-5
(Optional) Creates a description for the flow record.
match ipv4 version
Device(config-flow-record)# match ipv4 version
Specifies a match to the IP version from the IPv4 header.
match ipv4 protocol
Device(config-flow-record)# match ipv4 protocol
Specifies a match to the IPv4 protocol.
match application name
Device(config-flow-record)# match application name
Specifies a match to the application name.
match connection client ipv4 address
Device(config-flow-record)# match connection client ipv4 address
Specifies a match to the IPv4 address of the client (flow initiator).
match connection client transport port
Device(config-flow-record)# match connection client transport port
Specifies a match to the connection port of the client as a key field for a flow record.
match connection server ipv4 address
Device(config-flow-record)# match connection server ipv4 address
Specifies a match to the IPv4 address of the server (flow responder).
match connection server transport port
Device(config-flow-record)# match connection server transport port
Specifies a match to the transport port of the server.
collect flow direction
Device(config-flow-record)# collect flow direction
Specifies to collect the direction — Ingress or Egress — of the relevant side — Initiator or Responder — of the bi-directional flow that is specified by the initiator keyword in the collect connection initiator command in the step below. Depending on the value specified by the initiator keyword, the flow direction keyword takes the following values :
When the initiator keyword is set to initiator, the flow direction is specified from the initiator side of the flow. When the initiator keyword is set to responder, the flow direction is specified from the responder side of the flow. For wired AVC, the initiator keyword is always set to initiator.
collect timestamp absolute first
Device(config-flow-record)# collect timestamp absolute first
Specifies to collect the time, in milliseconds, when the first packet was seen in the flow.
collect timestamp absolute last
Device(config-flow-record)# collect timestamp absolute last
Specifies to collect the time, in milliseconds, when the most recent packet was seen in the flow.
collect connection initiator
Device(config-flow-record)# collect connection initiator
Specifies to collect the side of the flow — Initiator or Responder — relevant to the direction of the flow specified by the collect flow direction command. The initiator keyword provides the following information about the direction of the flow :
For wired AVC, the initiator keyword is always set to initiator.
collect connection new-connections
Device(config-flow-record)# collect connection new-connections
Specifies to collect the number of connection initiations observed.
collect connection server counter packets long
Device(config-flow-record)# collect connection server counter packets long
Specifies to collect the number of packets sent by the server.
collect connection client counter packets long
Device(config-flow-record)# collect connection client counter packets long
Specifies to collect the number of packets sent by the client.
collect connection server counter bytes network long
Device(config-flow-record)# collect connection server counter bytes network long
Specifies to collect the total number of bytes transmitted by the server.
collect connection client counter bytes network long
Device(config-flow-record)# collect connection client counter bytes network long
Specifies to collect the total number of bytes transmitted by the client.
collect application dns domain-name
Device(config-flow-record)# collect application dns domain-name
Configures the use of the DNS Domain-Name as a Collect field for a DNS flow record.
Device(config)# end
Returns to privileged EXEC mode. Alternatively, you can also press Ctrl-Z to exit global configuration mode.
You can create a flow exporter to define the export parameters for a flow.
Device# configure terminal
Enters global configuration mode.
flow exporter flow_exporter_name
Device(config)# flow exporter flow-exporter-1
Enters flow exporter configuration mode.
Device(config-flow-exporter)# description flow-exporter-1
(Optional) Creates a description for the flow exporter.
Device(config-flow-exporter)# destination 10.10.1.1
Specifies the hostname, IPv4 or IPv6 address of the system to which the exporter sends data.
option application-table [ timeout seconds ]
Device(config-flow-exporter)# option application-table timeout 500
(Optional) Configures the application table option for the flow exporter. The timeout option configures the resend time in seconds for the flow exporter. The valid range is from 1 to 86400 seconds.
Device(config)# end
Returns to privileged EXEC mode. Alternatively, you can also press Ctrl-Z to exit global configuration mode.
show flow exporter
Device# show flow exporter
Displays information about all the flow exporters.
show flow exporter statistics
Device# show flow exporter statistics
Displays flow exporter statistics.
You can create a flow monitor and associate it with a flow record.
Device# configure terminal
Enters global configuration mode.
flow monitor monitor-name
Device(config)# flow monitor flow-monitor-1
Creates a flow monitor and enters flow monitor configuration mode.
Device(config-flow-monitor)# description flow-monitor-1
(Optional) Creates a description for the flow monitor.
Device(config-flow-monitor)# record flow-record-1
Specifies the name of a record that was created previously.
Device(config-flow-monitor)# exporter flow-exporter-1
Specifies the name of an exporter that was created previously.
Device(config-flow-monitor)# cache timeout active 1800
Device(config-flow-monitor)# cache timeout inactive 200
Device(config-flow-monitor)# cache type normal
Only normal cache type is supported.
Device(config)# end
Returns to privileged EXEC mode. Alternatively, you can also press Ctrl-Z to exit global configuration mode.
show flow monitor
Device# show flow monitor
Displays information about all the flow monitors.
show flow monitor flow-monitor-name
Device# show flow monitor flow-monitor-1
Displays information about the specified wired AVC flow monitor.
show flow monitor flow-monitor-name statistics
Device# show flow monitor flow-monitor-1 statistics
Displays statistics for wired AVC flow monitor.
clear flow monitor flow-monitor-name statistics
Device# clear flow monitor flow-monitor-1 statistics
Clears the statistics of the specified flow monitor. Use the show flow monitor flow-monitor-1 statistics command after using the clear flow monitor flow-monitor-1 statistics to verify that all the statistics have been reset.
show flow monitor flow-monitor-name cache format table
Device# show flow monitor flow-monitor-1 cache format table
Displays flow cache contents in a tabular format.
show flow monitor flow-monitor-name cache format record
Device# show flow monitor flow-monitor-1 cache format record
Displays flow cache contents in similar format as the flow record.
show flow monitor flow-monitor-name cache format csv
Device# show flow monitor flow-monitor-1 cache format csv
Displays flow cache contents in CSV format.
You can attach two different wired AVC monitors with different predefined records to an interface at the same time.
Device# configure terminal
Enters global configuration mode.
Device(config)# interface Gigabitethernet 1/0/1
Enters the interface configuration mode.
ip flow monitor monitor-name
Device(config-if) # ip flow monitor flow-monitor-1 input
Associates a flow monitor to the interface for input and/or output packets.
Device(config)# end
Returns to privileged EXEC mode. Alternatively, you can also press Ctrl-Z to exit global configuration mode.
NBAR2 supports the use of custom protocols to identify custom applications. Custom protocols support protocols and applications that NBAR2 does not currently support.
In every deployment, there are local and specific applications which are not covered by the NBAR2 protocol pack provided by Cisco. Local applications are mainly categorized as:
NBAR2 provides a way to manually customize such local applications. You can manually customize applications using the command ip nbar custom myappname in global configuration mode. Custom applications take precedence over built-in protocols. For each custom protocol, user can define a selector ID that can be used for reporting purposes.
There are various types of application customization:
Generic protocol customization
Composite : Customization based on multiple underlying protocols – server-name
Layer3/Layer4 customization
Byte Offset : Customization based on specific byte values in the payload
HTTP customization could be based on a combination of HTTP fields from:
Custom application called MYHTTP using the HTTP host “*mydomain.com” with Selector ID 10.
Device# configure terminal Device(config)# ip nbar custom MYHTTP http host *mydomain.com id 10
Customization can be done for SSL encrypted traffic using information extracted from the SSL Server Name Indication (SNI) or Common Name (CN).
Custom application called MYSSL using SSL unique-name “mydomain.com” with selector ID 11.
Device# configure terminal Device(config)#ip nbar custom MYSSL ssl unique-name *mydomain.com id 11
NBAR2 examines DNS request and response traffic, and can correlate the DNS response to an application. The IP address returned from the DNS response is cached and used for later packet flows associated with that specific application.
The command ip nbar custom application-name dns domain-name id application-id is used for DNS customization. To extend an existing application, use the command ip nbar custom application-name dns domain-name domain-name extends existing-application .
Custom application called MYDNS using the DNS domain name “mydomain.com” with selector ID 12.
Device# configure terminal Device(config)# ip nbar custom MYDNS dns domain-name *mydomain.com id 12
NBAR2 provides a way to customize applications based on domain names appearing in HTTP, SSL or DNS.
Custom application called MYDOMAIN using HTTP, SSL or DNS domain name “mydomain.com” with selector ID 13.
Device# configure terminal Device(config)# ip nbar custom MYDOMAIN composite server-name *mydomain.com id 13
Layer3/Layer4 customization is based on the packet tuple and is always matched on the first packet of a flow.
Custom application called LAYER4CUSTOM matching IP addresses 10.56.1.10 and 10.56.1.11, TCP and DSCP ef with selector ID 14.
Device# configure terminal Device(config)# ip nbar custom LAYER4CUSTOM transport tcp id 14 Device(config-custom)# ip address 10.56.1.10 10.56.1.11 Device(config-custom)# dscp ef
show ip nbar protocol-id | inc Custom
Device# show ip nbar protocol-id | inc Custom LAYER4CUSTOM 14 Custom MYDNS 12 Custom MYDOMAIN 13 Custom MYHTTP 10 Custom MYSSL 11 Custom
show ip nbar protocol-discovery protocol CUSTOM_APP
Device# show ip nbar protocol-id MYSSL Protocol Name id type ---------------------------------------------- MYSSL 11 Custom
Protocol packs are software packages that update the NBAR2 protocol support on a device without replacing the Cisco software on the device. A protocol pack contains information on applications officially supported by NBAR2 which are compiled and packed together. For each application, the protocol-pack includes information on application signatures and application attributes. Each software release has a built-in protocol-pack bundled with it.
Protocol packs provide the following features:
When using switch stacking, ensure that each switch has the same Protocol Pack file loaded. If you execute the ip nbar protocol-pack flash protocol-pack-file command on the primary switch in the stack, any switch in the stack that does not have the file loaded will be reloaded due to a configuration mismatch.
NBAR2 protocol packs are available for download on Cisco Software Center from this URL: https://software.cisco.com/download/home .
Before loading a new protocol pack, you must copy the protocol pack to the flash on all the switch members.
Device> enable
Enables privileged EXEC mode.
Device# configure terminal
Enters global configuration mode.
ip nbar protocol-pack protocol-pack [ force ]
Device(config)# ip nbar protocol-pack flash:defProtoPack
Device(config)# default ip nbar protocol-pack
Loads the protocol pack.
For reverting to the built-in protocol pack, use the following command:
Device(config)# exit
Returns to privileged EXEC mode.
show ip nbar protocol-pack [ detail ]
Device# show ip nbar protocol-pack active
Displays the protocol pack information.
Device> enable Device# configure terminal Device(config)# ip nbar protocol-pack flash:newDefProtoPack Device(config)# exit
The following example shows how to use the force keyword to load a protocol pack of a lower version:
Device> enable Device# configure terminal Device(config)# ip nbar protocol-pack flash:OldDefProtoPack force Device(config)# exit
The following example shows how to revert to the built-in protocol pack:
Device> enable Device# configure terminal Device(config)# default ip nbar protocol-pack Device(config)# exit
This section describes the new commands for application visibility.
The following commands can be used to monitor application visibility on the switch and access ports.
Command
Purpose
Displays the statistics gathered by the NBAR Protocol Discovery feature.
show policy-map interface interface-type interface-number
Displays information about policy map applied to the interface.
show platform software fed active | standby wdavc flows
Displays statistics about all flows on the specified switch.
Device# configure terminal Device(config)# class-map match-any NBAR-VOICE Device(config-cmap)# match protocol ms-lync-audio Device(config-cmap)#end
This example shows how to create policy maps and define existing class maps for egress QoS:
Device # configure terminal Device(config)# policy-map test-avc-up Device(config-pmap)# class cat-browsing Device(config-pmap-c)# police 150000 Device(config-pmap-c)# set dscp 12 Device(config-pmap-c)#end
This example shows how to create policy maps and define existing class maps for ingress QoS:
Device# configure terminal Device(config)# policy-map test-avc-down Device(config-pmap)# class cat-browsing Device(config-pmap-c)# police 200000 Device(config-pmap-c)# set dscp 10 Device(config-pmap-c)#end
This example shows how to apply policy maps to a switch port:
Device# configure terminal Device(config)# interface GigabitEthernet 1/0/1 Device(config-if)# switchport mode access Device(config-if)# switchport access vlan 20 Device(config-if)# service-policy input POLICING_IN Device(config-if)#end
This example shows how to create class maps based on NBAR attributes.
Device# configure terminal Device(config)# class-map match-all rel-relevant Device(config-cmap)# match protocol attribute business-relevance business-relevant Device(config)# class-map match-all rel-irrelevant Device(config-cmap)# match protocol attribute business-relevance business-irrelevant Device(config)# class-map match-all rel-default Device(config-cmap)# match protocol attribute business-relevance default Device(config)# class-map match-all class--ops-admin-and-rel Device(config-cmap)# match protocol attribute traffic-class ops-admin-mgmt Device(config-cmap)# match protocol attribute business-relevance business-relevant
This example shows how to create policy maps based on class maps based on NBAR attributes.
Device# configure terminal Device(config)# policy-map attrib--rel-types Device(config-pmap)# class rel-relevant Device(config-pmap-c)# set dscp ef Device(config-pmap-c)# class rel-irrelevant Device(config-pmap-c)# set dscp af11 Device(config-pmap-c)# class rel-default Device(config-pmap-c)# set dscp default Device(config)# policy-map attrib--ops-admin-and-rel Device(config-pmap)# class class--ops-admin-and-rel Device(config-pmap-c)# set dscp cs5
This example shows how to attach a policy map based on NBAR attributes to a wired port:
Device# configure terminal Device(config)# interface GigabitEthernet1/0/2 Device(config-if)# service-policy input attrib--rel-types
show ip nbar protocol-discovery
Displays a report of the Protocol Discovery statistics per interface.
The following is a sample output for the statistics per interface:
Device# show ip nbar protocol-discovery int GigabitEthernet1/0/1 GigabitEthernet1/0/1 Last clearing of "show ip nbar protocol-discovery" counters 00:03:16 Input Output ----- ------ Protocol Packet Count Packet Count Byte Count Byte Count 30sec Bit Rate (bps) 30sec Bit Rate (bps) 30sec Max Bit Rate (bps) 30sec Max Bit Rate (bps) ------------------------ ------------------------ --------------------------------------------------- ms-lync 60580 55911 31174777 28774864 3613000 93000 3613000 3437000 Total 60580 55911 31174777 28774864 3613000 93000 3613000 3437000
show policy-map interface
Displays the QoS statistics and the configured policy maps on all interfaces.
The following is a sample output for the policy-maps configured on all the interfaces:
Device# show policy-map int GigabitEthernet1/0/1 Service-policy input: MARKING-IN Class-map: NBAR-VOICE (match-any) 718 packets Match: protocol ms-lync-audio 0 packets, 0 bytes 30 second rate 0 bps QoS Set dscp ef Class-map: NBAR-MM_CONFERENCING (match-any) 6451 packets Match: protocol ms-lync 0 packets, 0 bytes 30 second rate 0 bps Match: protocol ms-lync-video 0 packets, 0 bytes 30 second rate 0 bps QoS Set dscp af41 Class-map: class-default (match-any) 34 packets Match: any
show policy-map interface
Displays the attribute-based QoS statistics and the configured policy maps on all interfaces.
The following is a sample output for the policy-maps configured on all the interfaces:
Device# show policy-map interface gigabitEthernet 1/0/2 GigabitEthernet1/0/2 Service-policy input: attrib--rel-types Class-map: rel-relevant (match-all) 20 packets Match: protocol attribute business-relevance business-relevant QoS Set dscp ef Class-map: rel-irrelevant (match-all) 0 packets Match: protocol attribute business-relevance business-irrelevant QoS Set dscp af11 Class-map: rel-default (match-all) 14 packets Match: protocol attribute business-relevance default QoS Set dscp default Class-map: class-default (match-any) 0 packets Match: any
show ip nbar protocol-attribute
Displays all the protocol attributes used by NBAR.
The following shows sample output for some of the attributes:
Device# show ip nbar protocol-attribute cisco-jabber-im Protocol Name : cisco-jabber-im encrypted : encrypted-yes tunnel : tunnel-no category : voice-and-video sub-category : enterprise-media-conferencing application-group : cisco-jabber-group p2p-technology : p2p-tech-no traffic-class : transactional-data business-relevance : business-relevant application-set : collaboration-apps
Device# show ip nbar protocol-attribute google-services Protocol Name : google-services encrypted : encrypted-yes tunnel : tunnel-no category : other sub-category : other application-group : google-group p2p-technology : p2p-tech-yes traffic-class : transactional-data business-relevance : default application-set : general-browsing
Device# show ip nbar protocol-attribute dns Protocol Name : google-services encrypted : encrypted-yes tunnel : tunnel-no category : other sub-category : other application-group : google-group p2p-technology : p2p-tech-yes traffic-class : transactional-data business-relevance : default application-set : general-browsing
Device# show ip nbar protocol-attribute unknown Protocol Name : unknown encrypted : encrypted-no tunnel : tunnel-no category : other sub-category : other application-group : other p2p-technology : p2p-tech-no traffic-class : bulk-data business-relevance : default application-set : general-misc
show flow monitor wdavc
Displays information about the specified wired AVC flow monitor.
Device # show flow monitor wdavc Flow Monitor wdavc: Description: User defined Flow Record: wdavc Flow Exporter: wdavc-exp (inactive) Cache: Type: normal (Platform cache) Status: not allocated Size: 12000 entries Inactive Timeout: 15 secs Active Timeout: 1800 secs
show flow monitor wdavc statistics
Displays statistics for wired AVC flow monitor.
Device# show flow monitor wdavc statistics Cache type: Normal (Platform cache) Cache size: 12000 Current entries: 13 Flows added: 26 Flows aged: 13 - Active timeout ( 1800 secs) 1 - Inactive timeout ( 15 secs) 12
clear flow monitor wdavc statistics
Clears the statistics of the specified flow monitor. Use the show flow monitor wdavc statistics command after using the clear flow monitor wdavc statistics to verify that all the statistics have been reset. The following is a sample output of the show flow monitor wdavc statistics command after clearing flow monitor statistics.
Device# show flow monitor wdavc statistics Cache type: Normal (Platform cache) Cache size: 12000 Current entries: 0 Flows added: 0 Flows aged: 0
show flow monitor wdavc cache format table
Displays flow cache contents in a tabular format.
Device# show flow monitor wdavc cache format table Cache type: Normal (Platform cache) Cache size: 12000 Current entries: 13 Flows added: 26 Flows aged: 13 - Active timeout ( 1800 secs) 1 - Inactive timeout ( 15 secs) 12 CONN IPV4 INITIATOR ADDR CONN IPV4 RESPONDER ADDR CONN RESPONDER PORT FLOW OBSPOINT ID IP VERSION IP PROT APP NAME flow dirn . ------------------------ ------------------------ ------------------- ---------------- ---------- ------- --------------------------- --------- 64.103.125.147 144.254.71.184 53 4294967305 4 17 port dns Input . 64.103.121.103 10.1.1.2 67 4294967305 4 17 layer7 dhcp Input . contd. 64.103.125.3 64.103.125.97 68 4294967305 4 17 layer7 dhcp Input . 10.0.2.6 157.55.40.149 443 4294967305 4 6 layer7 ms-lync Input . 64.103.126.28 66.163.36.139 443 4294967305 4 6 layer7 cisco-jabber-im Input . contd. 64.103.125.2 64.103.125.29 68 4294967305 4 17 layer7 dhcp Input . 64.103.125.97 64.103.101.181 67 4294967305 4 17 layer7 dhcp Input . 192.168.100.6 10.10.20.1 5060 4294967305 4 17 layer7 cisco-jabber-control Input . contd. 64.103.125.3 64.103.125.29 68 4294967305 4 17 layer7 dhcp Input . 10.80.101.18 10.80.101.6 5060 4294967305 4 6 layer7 cisco-collab-control Input . 10.1.11.4 66.102.11.99 80 4294967305 4 6 layer7 google-services Input . contd. 64.103.125.2 64.103.125.97 68 4294967305 4 17 layer7 dhcp Input . 64.103.125.29 64.103.101.181 67 4294967305 4 17 layer7 dhcp Input .
show flow monitor wdavc cache format record
Displays flow cache contents in similar format as the flow record.
Device# show flow monitor wdavc cache format record Cache type: Normal (Platform cache) Cache size: 12000 Current entries: 13 Flows added: 26 Flows aged: 13 - Active timeout ( 1800 secs) 1 - Inactive timeout ( 15 secs) 12 CONNECTION IPV4 INITIATOR ADDRESS: 64.103.125.147 CONNECTION IPV4 RESPONDER ADDRESS: 144.254.71.184 CONNECTION RESPONDER PORT: 53 FLOW OBSPOINT ID: 4294967305 IP VERSION: 4 IP PROTOCOL: 17 APPLICATION NAME: port dns flow direction: Input timestamp abs first: 08:55:46.917 timestamp abs last: 08:55:46.917 connection initiator: Initiator connection count new: 2 connection server packets counter: 1 connection client packets counter: 1 connection server network bytes counter: 190 connection client network bytes counter: 106 CONNECTION IPV4 INITIATOR ADDRESS: 64.103.121.103 CONNECTION IPV4 RESPONDER ADDRESS: 10.1.1.2 CONNECTION RESPONDER PORT: 67 FLOW OBSPOINT ID: 4294967305 IP VERSION: 4 IP PROTOCOL: 17 APPLICATION NAME: layer7 dhcp flow direction: Input timestamp abs first: 08:55:47.917 timestamp abs last: 08:55:47.917 connection initiator: Initiator connection count new: 1 connection server packets counter: 0 connection client packets counter: 1 connection server network bytes counter: 0 connection client network bytes counter: 350 CONNECTION IPV4 INITIATOR ADDRESS: 64.103.125.3 CONNECTION IPV4 RESPONDER ADDRESS: 64.103.125.97 CONNECTION RESPONDER PORT: 68 FLOW OBSPOINT ID: 4294967305 IP VERSION: 4 IP PROTOCOL: 17 APPLICATION NAME: layer7 dhcp flow direction: Input timestamp abs first: 08:55:47.917 timestamp abs last: 08:55:53.917 connection initiator: Initiator connection count new: 1 connection server packets counter: 0 connection client packets counter: 4 connection server network bytes counter: 0 connection client network bytes counter: 1412 CONNECTION IPV4 INITIATOR ADDRESS: 10.0.2.6 CONNECTION IPV4 RESPONDER ADDRESS: 157.55.40.149 CONNECTION RESPONDER PORT: 443 FLOW OBSPOINT ID: 4294967305 IP VERSION: 4 IP PROTOCOL: 6 APPLICATION NAME: layer7 ms-lync flow direction: Input timestamp abs first: 08:55:46.917 timestamp abs last: 08:55:46.917 connection initiator: Initiator connection count new: 2 connection server packets counter: 10 connection client packets counter: 14 connection server network bytes counter: 6490 connection client network bytes counter: 1639 CONNECTION IPV4 INITIATOR ADDRESS: 64.103.126.28 CONNECTION IPV4 RESPONDER ADDRESS: 66.163.36.139 CONNECTION RESPONDER PORT: 443 FLOW OBSPOINT ID: 4294967305 IP VERSION: 4 IP PROTOCOL: 6 APPLICATION NAME: layer7 cisco-jabber-im flow direction: Input timestamp abs first: 08:55:46.917 timestamp abs last: 08:55:46.917 connection initiator: Initiator connection count new: 2 connection server packets counter: 12 connection client packets counter: 10 connection server network bytes counter: 5871 connection client network bytes counter: 2088 CONNECTION IPV4 INITIATOR ADDRESS: 64.103.125.2 CONNECTION IPV4 RESPONDER ADDRESS: 64.103.125.29 CONNECTION RESPONDER PORT: 68 FLOW OBSPOINT ID: 4294967305 IP VERSION: 4 IP PROTOCOL: 17 APPLICATION NAME: layer7 dhcp flow direction: Input timestamp abs first: 08:55:47.917 timestamp abs last: 08:55:47.917 connection initiator: Initiator connection count new: 1 connection server packets counter: 0 connection client packets counter: 2 connection server network bytes counter: 0 connection client network bytes counter: 712 CONNECTION IPV4 INITIATOR ADDRESS: 64.103.125.97 CONNECTION IPV4 RESPONDER ADDRESS: 64.103.101.181 CONNECTION RESPONDER PORT: 67 FLOW OBSPOINT ID: 4294967305 IP VERSION: 4 IP PROTOCOL: 17 APPLICATION NAME: layer7 dhcp flow direction: Input timestamp abs first: 08:55:47.917 timestamp abs last: 08:55:47.917 connection initiator: Initiator connection count new: 1 connection server packets counter: 0 connection client packets counter: 1 connection server network bytes counter: 0 connection client network bytes counter: 350 CONNECTION IPV4 INITIATOR ADDRESS: 192.168.100.6 CONNECTION IPV4 RESPONDER ADDRESS: 10.10.20.1 CONNECTION RESPONDER PORT: 5060 FLOW OBSPOINT ID: 4294967305 IP VERSION: 4 IP PROTOCOL: 17 APPLICATION NAME: layer7 cisco-jabber-control flow direction: Input timestamp abs first: 08:55:46.917 timestamp abs last: 08:55:46.917 connection initiator: Initiator connection count new: 1 connection server packets counter: 0 connection client packets counter: 2 connection server network bytes counter: 0 connection client network bytes counter: 2046 CONNECTION IPV4 INITIATOR ADDRESS: 64.103.125.3 CONNECTION IPV4 RESPONDER ADDRESS: 64.103.125.29 CONNECTION RESPONDER PORT: 68 FLOW OBSPOINT ID: 4294967305 IP VERSION: 4 IP PROTOCOL: 17 APPLICATION NAME: layer7 dhcp flow direction: Input timestamp abs first: 08:55:47.917 timestamp abs last: 08:55:47.917 connection initiator: Initiator connection count new: 1 connection server packets counter: 0 connection client packets counter: 2 connection server network bytes counter: 0 connection client network bytes counter: 712 CONNECTION IPV4 INITIATOR ADDRESS: 10.80.101.18 CONNECTION IPV4 RESPONDER ADDRESS: 10.80.101.6 CONNECTION RESPONDER PORT: 5060 FLOW OBSPOINT ID: 4294967305 IP VERSION: 4 IP PROTOCOL: 6 APPLICATION NAME: layer7 cisco-collab-control flow direction: Input timestamp abs first: 08:55:46.917 timestamp abs last: 08:55:47.917 connection initiator: Initiator connection count new: 2 connection server packets counter: 23 connection client packets counter: 27 connection server network bytes counter: 12752 connection client network bytes counter: 8773 CONNECTION IPV4 INITIATOR ADDRESS: 10.1.11.4 CONNECTION IPV4 RESPONDER ADDRESS: 66.102.11.99 CONNECTION RESPONDER PORT: 80 FLOW OBSPOINT ID: 4294967305 IP VERSION: 4 IP PROTOCOL: 6 APPLICATION NAME: layer7 google-services flow direction: Input timestamp abs first: 08:55:46.917 timestamp abs last: 08:55:46.917 connection initiator: Initiator connection count new: 2 connection server packets counter: 3 connection client packets counter: 5 connection server network bytes counter: 1733 connection client network bytes counter: 663 CONNECTION IPV4 INITIATOR ADDRESS: 64.103.125.2 CONNECTION IPV4 RESPONDER ADDRESS: 64.103.125.97 CONNECTION RESPONDER PORT: 68 FLOW OBSPOINT ID: 4294967305 IP VERSION: 4 IP PROTOCOL: 17 APPLICATION NAME: layer7 dhcp flow direction: Input timestamp abs first: 08:55:47.917 timestamp abs last: 08:55:53.917 connection initiator: Initiator connection count new: 1 connection server packets counter: 0 connection client packets counter: 4 connection server network bytes counter: 0 connection client network bytes counter: 1412 CONNECTION IPV4 INITIATOR ADDRESS: 64.103.125.29 CONNECTION IPV4 RESPONDER ADDRESS: 64.103.101.181 CONNECTION RESPONDER PORT: 67 FLOW OBSPOINT ID: 4294967305 IP VERSION: 4 IP PROTOCOL: 17 APPLICATION NAME: layer7 dhcp flow direction: Input timestamp abs first: 08:55:47.917 timestamp abs last: 08:55:47.917 connection initiator: Initiator connection count new: 1 connection server packets counter: 0 connection client packets counter: 1 connection server network bytes counter: 0 connection client network bytes counter: 350
show flow monitor wdavc cache format csv
Displays flow cache contents in CSV format.
Device# show flow monitor wdavc cache format csv Cache type: Normal (Platform cache) Cache size: 12000 Current entries: 13 Flows added: 26 Flows aged: 13 - Active timeout ( 1800 secs) 1 - Inactive timeout ( 15 secs) 12 CONN IPV4 INITIATOR ADDR,CONN IPV4 RESPONDER ADDR,CONN RESPONDER PORT,FLOW OBSPOINT ID,IP VERSION,IP PROT,APP NAME,flow dirn,time abs first,time abs last,conn initiator,conn count new,conn server packets cnt,conn client packets cnt,conn server network bytes cnt,conn client network bytes cnt 64.103.125.147,144.254.71.184,53,4294967305,4,17,port dns,Input,08:55:46.917,08:55:46.917,Initiator,2,1,1,190,106 64.103.121.103,10.1.1.2,67,4294967305,4,17,layer7 dhcp,Input,08:55:47.917,08:55:47.917,Initiator,1,0,1,0,350 64.103.125.3,64.103.125.97,68,4294967305,4,17,layer7 dhcp,Input,08:55:47.917,08:55:53.917,Initiator,1,0,4,0,1412 10.0.2.6,157.55.40.149,443,4294967305,4,6,layer7 ms- lync,Input,08:55:46.917,08:55:46.917,Initiator,2,10,14,6490,1639 64.103.126.28,66.163.36.139,443,4294967305,4,6,layer7 cisco-jabber- im,Input,08:55:46.917,08:55:46.917,Initiator,2,12,10,5871,2088 64.103.125.2,64.103.125.29,68,4294967305,4,17,layer7 dhcp,Input,08:55:47.917,08:55:47.917,Initiator,1,0,2,0,712 64.103.125.97,64.103.101.181,67,4294967305,4,17,layer7 dhcp,Input,08:55:47.917,08:55:47.917,Initiator,1,0,1,0,350 192.168.100.6,10.10.20.1,5060,4294967305,4,17,layer7 cisco-jabber- control,Input,08:55:46.917,08:55:46.917,Initiator,1,0,2,0,2046 64.103.125.3,64.103.125.29,68,4294967305,4,17,layer7 dhcp,Input,08:55:47.917,08:55:47.917,Initiator,1,0,2,0,712 10.80.101.18,10.80.101.6,5060,4294967305,4,6,layer7 cisco-collab- control,Input,08:55:46.917,08:55:47.917,Initiator,2,23,27,12752,8773 10.1.11.4,66.102.11.99,80,4294967305,4,6,layer7 google- services,Input,08:55:46.917,08:55:46.917,Initiator,2,3,5,1733,663 64.103.125.2,64.103.125.97,68,4294967305,4,17,layer7 dhcp,Input,08:55:47.917,08:55:53.917,Initiator,1,0,4,0,1412 64.103.125.29,64.103.101.181,67,4294967305,4,17,layer7 dhcp,Input,08:55:47.917,08:55:47.917,Initiator,1,0,1,0,350
Following are the basic questions and answers for troubleshooting wired Application Visibility and Control:
For complete syntax and usage information for the commands used in this chapter.
Command Reference (Catalyst 9400 Series Switches)