QoS to limit bandwith to a particular app?

Feb 23, 2006 3 Replies

We run Lotus Notes that replicates to another server at another location over a T1. I'm tyring to set up a policy that will say any traffic destined for this server will be given "Lower" priority. I don't care if this maxes out the link all day, as long as other data will be able to flow freely over the link and the replication data will take the back seat.



We are already using CBWFQ on our network, so I belive I have to stick with that



I made an access list:



access-list 102 permit tcp any 10.90.3.91 0.0.0.0 range 1350 1352



Then I defined a class-map:



class-map NotesRepData match access-group 102


Now I was going to put the class-map statement into our existing policy which looks similar to this:



Poilcy-Map Voice Class VoicePayload Priority 880 Class VoiceSignaling Priority 128 Class class-default fair-queue



Here's where my problem comes in.. I don't know what I should put in for my class here..



Poilcy-Map Voice Class VoicePayload Priority 880 Class VoiceSignaling Priority 128



> Class NotesRepData
>> Bandwidth x or Priority X?

Class class-default fair-queue


From what I can see this will allocate/guarantee bandwidth for the

specific application, but what I really want to do is is just make this data take a back seat. Do I need to define a traffic class that encompases all traffic BUT this traffic?


Something like this: (i.e. access-list 102 deny tcp any host 10.90.3.91 range 1350 1352 access-list 102 permit ip any any)


Then define a policy map:


Poilcy-Map Voice Class VoicePayload Priority 880 Class VoiceSignaling Priority 128 Class NotesRepData Bandwidth percent 100 Class class-default fair-queue


This looks to me like Voice Traffic would still get priority, then other data would get 100 percent of the remaining bandwidth, then replication data would get whatever is left over.


I tried setting up priority-lists and priority-groups, but it told me that CBWFQ is in use.


Any input is appreciated!


Thanks,



-DZ



You could use Instead priority-list i found it easier

for example: priority-list 1 protocol ip low tcp 1350 priority-list 1 protocol ip low tcp 1352

interface serial0/0 (or whatever is your T1) priority-group 1

I hope that's help.

How about doing this:

Create a class map such as:

class map not_Lotus match not access-group 102

With CBWFQ you should not reserve more than 75% of the bandwidth. Therefore 880 Kbps + 128 Kbps = 65% of the T1

Poilcy-Map Voice Class VoicePayload Priority 880 Class VoiceSignaling Priority 128 Class Not_Lotus Bandwidth percent 10 Class class-default fair-queue

while you can configure several classes for priority queue, they will actually all end-up in the same queue:

CE8#sh policy-map in se1/0 ou Serial1/0

Service-policy output: LAB-WAN-OUT-01

Class-map: VOICE (match-any) [...] Queueing Strict Priority Output Queue: Conversation 264 [...]

Class-map: VOICE_CLASSIFY (match-all) [...] Queueing Strict Priority Output Queue: Conversation 264

Notice conversation ID. So it's just the same as you'd have assigned both voicepayload and signalling to the same class. Besides, having 65% of the line speed for priority queue will most likely leave other traffic no chance to pass through because router will unconditionally serve priority queue as long as there is traffic. Normally you shouldn't allocate above 20-30% for priority queue.

Back to your original question, with CBWFQ 'priority queue' (LLQ, strict priority) always get absolute service priority, that is this queue is served as long as there are packets. When priority queue becomes empty all other queues are served in round-robin fashion and in each round number of bytes served from a queue (class) depends on configured 'bandwidth' parameter, but there is no priority difference between non-LLQ classes, i.e. they're equal. What you can do with your Lotus replication is to set upper limit allowed for this traffic. For this you need dedicated class (as you have described), then used WRED and 'police' or 'shape' for this class within policy-map, for example:

Poilcy-Map Voice ... Class NotesRepData police rate percent 10 conform-action transmit exceed-action drop violate-action drop ! or comment out above line and uncomment following: ! shape average percent 10 random-detect

Also, remember that QoS is activated only when interface TX-ring becomes full, i.e. only if there is congestion.

Kind regards, iLya

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required