Sunday, May 27, 2012

Configuring QoS in Cisco IOS

I'm back! Today I'm posting a how-to on QoS (Quality of Service) configuration on Cisco routers and switches.

QoS is a valuable tool whenever you have different types of traffic arriving at a router where they'll need to be aggregated and sent out over a single link like a WAN connection. Some types of data and applications require traffic to be handled with as little latency and jitter as possible; VOIP is a prime example of this, as well as Citrix, RDP, and anything else that involves streaming audio and video.

The reason this is important is because as a traffic arrives in a router, it gets sent into a processing queue in the router based upon the order in which the packet was received. After routing decisions are made, this traffic is sent into an input queue for the WAN interface in preparation of being sent out over the WAN link.

Traffic passes from this input queue into the transmit ring, a hardware output queue. If this queue fills up during a period of high traffic congestion, additional traffic arriving to the interface is queued in the software output queue, where it waits on room in the transmit ring to become available. If the software output queue (usually just called the output queue) gets filled up and traffic is still arriving at the interface, the interface has to start dropping packets. These are recorded as "Output drops" when you do a show interface command.

If this happens, critical data can be dropped, or voice traffic can be delayed while it sits in the output queue with less important traffic in front of it. Even if the voice traffic is successfully delivered, the delays can cause stuttering and poor quality on the call.

QoS prevents problems like these by guaranteeing bandwidth to critical data and preventing that traffic from being dropped if the circuit becomes congested. It can also be configured to prioritize certain types of traffic over others in terms of the order they are transmitted, to ensure time-sensitive traffic is transmitted as quickly as possible.

Hit the jump and we'll look at this in detail!