CCIE Pursuit Blog

August 8, 2008

Internetwork Expert Volume II: Lab 6 – Section 7

Section 7 – QoS – 6 Points

7.1 Real Time Protocol

“…ensure that all RTP packets sent over the Frame Relay circuit between r2 and r4 are prioritized.”
“Allocate 25% fo the bandwidth for these RTP packets.”
“This configuration should be done in such a way that it is easy to add additional QoS configuration at a later date.”

Well the first thing we need to do is classify the RTP traffic.

Rack11R3(config)#class-map TASK_7_1
Rack11R3(config-cmap)#match protocol rtp ?
  audio         Match voice packets
  payload-type  Match an explicit PT
  video         Match video packets

The task mentions VoIP users but also say “all RTP packets”. I chose “audio” and was wrong.  😦  As always, clarify these types of questions with the proctor.

Okay, now the policy-map:

Rack11R3(config-cmap)#policy-map TASK_7_1
Rack11R3(config-pmap)#class TASK_7_1
QoS policy-map class configuration commands:
  bandwidth        Bandwidth
  compression      Activate Compression
  drop             Drop all packets
  estimate         estimate resources required for this class
  exit             Exit from QoS class action configuration mode
  netflow-sampler  NetFlow action
  no               Negate or set default values of a command
  police           Police
  priority         Strict Scheduling Priority for this Class
  queue-limit      Queue Max Threshold for Tail Drop
  random-detect    Enable Random Early Detection as drop policy
  service-policy   Configure Flow Next
  set              Set QoS values
  shape            Traffic Shaping

We are asked to prioritize the RTP packets and allocate them 25% of the bandwidth.

Rack11R3(config-pmap-c)#priority ?
  <8-2000000>  Kilo Bits per second
  percent      % of total bandwidth

Rack11R3(config)#int s1/0
Rack11R3(config-if)#service-policy out TASK_7_1

Do the same thing on r4 (do “sh hist” while still in config mode and copy and paste on r4(making sure to change int s1/0 to int s0/0).

Rack11R4#sh policy-map
  Policy Map TASK_7_1
    Class TASK_7_1
      Strict Priority
      Bandwidth 25 (%)

Rack11R4#sh policy-map int s0/0


  Service-policy output: TASK_7_1

    Class-map: TASK_7_1 (match-all)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: protocol rtp
        Strict Priority
        Output Queue: Conversation 264
        Bandwidth 25 (%)
        Bandwidth 386 (kbps) Burst 9650 (Bytes)
        (pkts matched/bytes matched) 0/0
        (total drops/bytes drops) 0/0

    Class-map: class-default (match-any)
      25 packets, 1777 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: any

The solution guide has a great breakdown on this task.

7.2 Congestion Avoidance

“…configure your network so that HTTP traffic is dropped prior to the interface becoming congested.”
“This HTTP traffic should not be reserved by any bandwidth.”

Does “your network” mean all devices or just r3 and r4 (continuing from the last task)?  I’m going to stick with r3 and r4 only because configuring this on 20+ interfaces seems a bit much.  I’m guessing that the second task means that we should not use the bandwidth statement.

“dropped prior to…congestion” simply sounds like WRED to me.  Simply WRED?  Loved them in the 80’s.  🙂  Okay, not really and I apologize to all three people who got that pathetic attempt at humor.

Let’s match HTTP traffic:

Rack11R4(config)#class-map TASK_7_2
Rack11R4(config-cmap)#match proto http

And add this to our already existing policy-map (which – in hindsight – should have been named something else):

Rack11R4(config-cmap)#policy-map TASK_7_1
Rack11R4(config-pmap)#class TASK_7_2
bandwidth on the class is required to issue this command

DOH!!!  Adding a bandwidth statement would break the task requirement.

This stumped me.  I had to peek the solution guide:

“To configure WRED in the MQC, one of two conditions must be met.  There must either be a bandwidth reservation made within a class [verboten for this task], or the default-class must be running weighted fair queuing.”

Okay…so how does that help us?:

Rack11R4(config-pmap-c)#class class-default
Rack11R4(config-pmap-c)#class TASK_7_2
bandwidth on the class is required to issue this command

The answer is pretty cool.  First match all traffic other than HTTP traffic using the ‘not’ keyword:

Rack11R4(config-cmap)#class-map TASK_7_2
Rack11R4(config-cmap)#no match protocol http
Rack11R4(config-cmap)#match notproto http

Now turn on random-detect and fair-queueing for the default class:

Rack11R4(config-cmap)#policy-map TASK_7_1
Rack11R4(config-pmap)#class class-default

Here’s what your policy map looks like:

Rack11R4(config-pmap-c)#do sh run | sec policy-map
policy-map TASK_7_1
 class TASK_7_1
  priority percent 25
 class TASK_7_2
 class class-default

So all RTP traffic (class TASK_7_1) is prioritized.  Then we match all other traffic EXCEPT HTTP traffic in class TASK_7_2…but we don’t do anything to it.  This means that the only remaining traffic is HTTP traffic…which is now in the default class.  Booyah!  We just go around the bandwidth restriction.  Nice method and one to remember for the lab.


Create a free website or blog at