In this How To we will introduce the concepts of Quality of Service or QoS (kwas).
Managing QoS is an important process and skill that everyone who runs a network needs to understand. We will introduce you to QoS principles at a high level. You will find details in other How To’s.
First, lets understand something clearly: If you have enough bandwidth, you don’t need QoS. On simple networks, with few intersections, if the bandwidth is sufficient for the application you don’t need to read any further. On the other hand, if you have little bandwidth and the application needs a lot of bandwidth, QoS may not be able to help either. Where QoS comes in play is when you have shared bandwidth with multiple applications, and some of those applications need preferred or controlled access to the bandwidth.
To manage QoS on your network, several things are required:
- you need to classify traffic into different categories,
- you need to determine policies for the different traffic types in the first step, and
- you need to apply those policies in the right places in the network.
Let’s not think it is too simple, however. QoS can be quite complex with the many options that exist in Cisco IOS.
Consider the Following:
Lets say you have an access router that is going to support the following: a VoIP service, an online interactive game, and of course be used for Web browsing and e-mail and file transfer. Lets further say that the router is experiencing performance issues with the VoIP service when simultaneously running other applications. Specifically, when downloading a file, the VoIP service barely works and the online interactive game is unplayable.
Following our basic procedure the first step is to classify the traffic types. This is done in IOS by either using an access control list (ACL), creating a Policy Based Routing (PBR) definition or using Network Based Application Recognition (NBAR).
The traditional way is to use an ACL to specify the different port numbers used by the applications in the example. To see more on ACL implementation – there are a number of How To’s. You can start here.
For more details on PBR, look here.
NBAR is Cisco’s QoS Auto-Pilot. You simply switch it on and it takes care of QoS on an assumed template. This may be good for some, but not customizable enough for others. For more info on NBAR look here.
Assuming you have created the ACL, the next step is to create what IOS calls a class-map. A class-map defines the traffic into groups. So for each traffic type you would create a class map (i.e. Class-map voip, class-map gaming, etc.). This completes the classification process. Now you are ready to determine how the traffic will be handled with policies.
The next step is to create a policy-map. A policy-map defines how much bandwidth and priority each class you created above will get. There are many options here, but the concept is simple.
The last step is to actually apply the policy to an interface on the router. This is done like applying an ACL. You can apply the policy you create to either the input or the output of an interface:
cell_pe1(config-if)# service-policy output|input {name of policy-map}
If you are going to use NBAR, then you must use the ‘ip nbar protocol-discovery’ command on the interface on which you wish to enable NBAR.