Archive for category QoS

Weighted Random Early Detection (WRED)

WRED can be IP Precedence or DSCP based (default is precedence).  First choose which one is appropriate

To enable WRED on an interface:

Router(config-if)# random-detect [dscp-based | prec-based]

Decide if it’s flow based:

Router(config-if)# random-detect flow

Next, make any changes to the minimum and maximum thresholds and the mark probability denominator:

Router(config-if)# random-detect dscp dscp-value min-threshold max-threshold [max-probability-denominator]

or

Router(config-if)# random-detect precedence {precedence | rsvp} min-threshold max-threshold max-probability-denominator

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Verify WRED with:

Router# show queueing interface

No Comments

Using CAR

To apply a CAR policy to an interface, use the following commands:

Router(config-if)# rate-limit {input | output} [access-group [rate-limit] acl-index] bps burst-normal burst-max conform-action action exceed-action action

Notice that you can use the flag rate-limit to the access-group which specifies the traffic that you would like the policy to apply to. To create a rate-limit ACL use the following command structure:

Router(config)# access-list rate-limit acl-index {precedence | mac-address | mask prec-mask}

Example:

R3(config)#ip access-list extended 133
R3(config-ext-nacl)#permit tcp any any eq 80
R3(config)#int f1/0
R3(config-if)#rate-limit input access-group 133 16000 1500 2000 conform-action transmit exceed-action drop
R3(config-if )#rate-limit input 4000000 8000 12000 conform-action set-prec-transmit 6 exceed-action drop

No Comments

Flow-based WRED (precedence based)

To enable flow-based WRED:

Router(config-if)# random-detect flow

To change the default threshold values for different precedence values:

Router(config-if)# random-detect precedence-value precvalue min-threshold max-threshold [mark-probability-denominator]

Example:
R4(config-if)#random-detect flow
R4(config-if)#random-detect precedence 4 11 21 3

This example enables flow based random-detection on the interface.  It sets the minimum threshold of IP precedence 4 to 11, the max to 21 and the mark probability detector to 3.

No Comments

Time-Based QoS Policies

The first step is to create a time-range in global configuration mode.

First give the time range a name:
time-range time-range-name

then configure the time range, either in absolute terms or
relative terms:
absolute [start time date] [end time date]

or

periodic days-of-the-week hh:mm to [days-of-the-week] hh:mm

Example:

R1(config)#time-range Shaping_Time
R1(config-time-range)#periodic daily 08:00 to 16:00
R1(config-time-range)#exit

This creates a time-shape which would be true between 8am and 4pm.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Next you need to create an ACL which matches the traffic requried and add
the time-range to the end.

Example:

R1(config)#ip access-list extended match_any
R1(config-ext-nacl)#permit ip any any time-range Shaping_Time

This simple ACL matches all IP traffic between the time range defined by the time-range Shaping_Time.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Last, use the match ip access-group statement within the class map to match the specified traffic within the time frame.

Example:

R1(config)#class-map R1_shaping
R1(config-cmap)#match access-group name match_any
R1(config-cmap)#exit

This will now match all IP traffic within the time frame specified.  The class-map can now be used within a policy-map.

No Comments