NBAR in QoS
NBAR functioned on how to action packets that matches the protocol criteria required. It has its niche within the QoS crowd where specific applications are given precedence or not as the case maybe depending on the network requirements at the time of the implementation. NBAR allows recognition of a wide variety of applications where QoS may be implemented on them, i.e. from the bandwidth intensive Citrix to the port changing Kazaa application.
NBAR allows the classification of protocols from layer 4 to 7 hence allowing the router in some respects to disregard its layer 3 positions and to look at the high layer protocols. NBAR can recognize:
-- Statically assigned TCP and UDP port numbers
-- Non-UDP and non-TCP IP protocols
-- Dynamically assigned TCP and UDP port numbers. Classification of such applications requires stateful inspection; that is, the ability to discover the data connections to be classified by parsing the connections where the port assignments are made.
-- Sub-port classification or classification based on deep packet inspection; that is, classification by looking deeper into the packet.
NBAR can classify static port protocols. Although access control lists (ACLs) can also be used for this purpose, NBAR is easier to configure and can provide classification statistics that are not available when using ACLs.
NBAR includes a Protocol Discovery feature that provides an easy way to discover application protocols that are transferring an interface. The Protocol Discovery feature discovers any protocol traffic supported by NBAR. Protocol Discovery maintains the following per-protocol statistics for enabled interfaces: total number of input and output packets and bytes, and input and output bit rates. The Protocol Discovery feature captures key statistics associated with each protocol in a network that can be used to define traffic classes and QoS policies for each traffic class.
The router (depending on model and IOS version) has built-in in NBAR functionality which may be seen when configuring NBAR:
router(config-cmap)# match protocol ?
router# sh ip nbar port-map
This will demonstrate the ports and IP protocol of the various protoocols present.