Nested QoS Question

Unanswered Question
Jun 20th, 2008
User Badges:

All,


I have multiple customers connecting to a single "aggregate" WAN router at a location for access to remote sites. I need to guarantee each customer a certain percentage of the overall available bandwidth and at the same time prioritize their traffic accordingly within this percentage boundary. For instance, customer A should receive 25% of the DS3 (45Mbps) and Customer A VOIP should receive 30% of the 25% allocated to Customer A.


I tried to accomplish this using a nested policy-map statement, but IOS puked at me and said nested policy-maps are usable with traffic shaping only. Does anyone know how to do this without creating individual class maps for each service defined for each customer? This is highly unscalable and would have to be completely tweaked every time a customer came online. For instance, 7 customers at a site with 5 prioritized services would require a total of 35 class maps. If customer 8 comes online, I will have to create the 5 class maps for the customer and adjust the bandwidth percentages allocated to the previous 35 maps. A nested service policy would have been cool because I could allocate bandwidth once to a customer and then break-out the separate services within…


Thanks in advance for any help provided.


-Erik


  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 0 (0 ratings)
Loading.
n.nandrekar Sat, 06/21/2008 - 02:09
User Badges:
  • Silver, 250 points or more

Hi Eric,

Can you please give the details of the policy you are trying to configure and the router/ios details?

I am able to configure hierarchal policy with bandwidth command in the parent class without shaping on 6500. Also shaping is the most used configuration on the parent class. You shape in the parent class to the bandwidth you have allotted to the customer (as this doesnot change frequently unless the customer upgrades the service). then under this class, a child policy is applied which does CBWFQ.

eg.

Ferrari#sh policy-map parent_cust1

Policy Map parent_cust1

Class cust1

bandwidth 25 (%)

service-policy child_cust1

Ferrari#sh poli

Ferrari#sh policy-map child_cust1

Policy Map child_cust1

Class voip_cust1

priority 35 (%)

Class data_cust1

bandwidth 35 (%)

Ferrari#sh poli

Ferrari#sh policy-map int gi 1/1/0


GigabitEthernet1/1/0


Service-policy output: parent_cust1


Class-map: cust1 (match-all)

0 packets, 0 bytes

5 minute offered rate 0 bps, drop rate 0 bps

Match: input vlan 3

Queueing

queue limit 62500 packets

(queue depth/total drops/no-buffer drops) 0/0/0

(pkts output/bytes output) 0/0

bandwidth 25% (250000 kbps)


Service-policy : child_cust1


queue stats for all priority classes:

queue limit 21875 packets

(queue depth/total drops/no-buffer drops) 0/0/0

(pkts output/bytes output) 0/0


Class-map: voip_cust1 (match-all)

0 packets, 0 bytes

5 minute offered rate 0 bps, drop rate 0 bps

Match: dscp ef (46)

Priority: 35% (87500 kbps), burst bytes 2187500


Class-map: data_cust1 (match-all)

0 packets, 0 bytes

5 minute offered rate 0 bps, drop rate 0 bps

Match: ip precedence 3

Queueing

queue limit 21875 packets

(queue depth/total drops/no-buffer drops) 0/0/0

(pkts output/bytes output) 0/0

bandwidth 35% (87500 kbps)


Class-map: class-default (match-any)

0 packets, 0 bytes

5 minute offered rate 0 bps, drop rate 0 bps

Match: any

queue limit 18750 packets

(queue depth/total drops/no-buffer drops) 0/0/0

(pkts output/bytes output) 0/0


Class-map: class-default (match-any)

23 packets, 2070 bytes

5 minute offered rate 0 bps, drop rate 0 bps

Match: any

queue limit 187500 packets

(queue depth/total drops/no-buffer drops) 0/0/0

(pkts output/bytes output) 25/2250

Ferrari#

regards,

Niranjan.


(please rate the post if it helps.)

efairbanks Mon, 06/23/2008 - 06:30
User Badges:

Niranjan,


We are running IOS Version 12.4(4)T Advanced Enterprise Services on 3825 routers. I tried to accomplish exactly what you outlined, but IOS wouldn't let me. What version IOS are you running on the 6500? It is possible nested policy map functionality was introduced after 12.4(4)T.


Thanks in advance.

n.nandrekar Mon, 06/23/2008 - 22:23
User Badges:
  • Silver, 250 points or more

hi Eric!

The support and options for Hqos can vary according to the platforms due to hardware as well as the software support. 6500 uses 12.2 train of images. Probably on 3800 hqos is supported only with shaping.

Please see if shaping sis supported as interface %. else you have no other option than to limit the customer to whatever he busy. Thsts the way it usually works. If customer buys 3 mbps, thats what you limit him at. Anyways, if thats the case, your requirement cannot be fulfilled exactly.


Regards,

Niranjan

Joseph W. Doherty Sat, 06/21/2008 - 04:38
User Badges:
  • Super Bronze, 10000 points or more

The crux of your problem, I suspect, is you want each customer to have a minimal guarantee of bandwidth, which you want to subdivide, but you further don't want to limit a customer to the same guarantee of bandwidth.


Don't believe you're going to be able to accomplish your goal with Cisco's current QoS support. Either you'll need to define the many classes, you wish to avoid, when the interface itself congests, or you'll need to shape each customer to a rate and then subdivide that bandwidth with a child policy. Of these two approaches, besides the second being more manageable assuming most customer's subdivisions could use the same template, the second approach also offers consistent behavior to your customers. Otherwise, although each customer will continue to obtain the minimum bandwidth you've guaranteed, as you add additional customers they are likely to see their peak bandwidth diminish. So, using per customer shaping from the start might be a better way to also manage customer expectations.


E.g.


policy-map STD

class realtime

priority percent 40

class gold

bandwidth remaining percent 59

class scavenger

bandwidth remaining percent 1

class class-default

bandwidth remaining percent 40


policy-map customers


class cust1

shape 2000000

service-policy STD

class cust2

shape 3000000

service-policy STD

.

.

.

ciscocow Tue, 06/24/2008 - 08:49
User Badges:

You can also take what joseph said and add an inbound map to limit the traffic then feed it into the STD policy map to ensure they do not overload the incoming interfaces and force the router to traverse traffic it is just going to drop as well.



efairbanks Tue, 06/24/2008 - 09:18
User Badges:

I would like to make the full scope of bandwidth available to any site unless congestion is experienced and at that time the QoS policies will be enacted. I don't want to perform traffic shaping and isolate customers within fixed bandwidth boundaries which will leave a percentage of bandwidth unused. It looks like I can't accomplish this easily with the 3800 series routers we have deployed.....

ciscocow Tue, 06/24/2008 - 09:27
User Badges:

It does not matter really matter what platform you want to go to, it is not going to be fesiable from an IOS point of view.

Actions

This Discussion