cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1750
Views
0
Helpful
10
Replies

QOS for WAN with Variable Speed.

s.maxina1
Level 1
Level 1

Hi Dears.

i have a P2P Wireless Link as WAN which has variable speed due to bad air condition( at offshore drilling rig). it's speed vary from 30mbps to 25 or maybe lower( it is not predictable). i have a Cisco router as gateway which uses this p2p wireless link to access internet. i want to configure 2 user group( in qos i mean class-maps) in this router to access the internet as follow: group A with higher speed and group B with lower speed. which is the best solution for such variable speed link for optimal use of wan link.

 

best regards,

Sina HR.

10 Replies 10

Hello,

 

not knowing which device this is on, and what IOS you are running, below is an example of what could work in your scenario (IP addressing is arbitrary, obviously):

 

access-list 101 permit ip 192.168.1.0 0.0.0 255 any
!
access-list 102 permit ip 192.168.2.0 0.0.0 255 any
!
class-map match-all GROUP_A
match access-group 101
!
class-map match-all GROUP_B
match access-group 102
!
policy-map BANDWIDTH_POLICY
class GROUP_A
bandwidth percent 70
class GROUP_B
bandwidth percent 30
!
interface GigabitEthernet0/0
description WAN Interface
service-policy output BANDWIDTH_POLICY

Hi Georg
thanks for reply. my Cisco router model is 2801 and ios version is c2801-adventerprisek9-mz.151-4.M12a.bin.
what do you mean by bandwidth percent 70 or 30. 70 percent of what bandwidth? can you explain more? how Cisco router can calculate current wan bandwidth and dedicate 70 or 30 percent of that to group users.
i did it using shape average, but due to unstable p2p link speed, it is not optimal and precise.

Hello,

 

you are running a rather old IOS version; the bandwidth percent is I think not available in your IOS. Check if you can configure the below:

 

access-list 101 permit ip 192.168.1.0 0.0.0 255 any
!
access-list 102 permit ip 192.168.2.0 0.0.0 255 any
!
class-map match-all GROUP_A
match access-group 101
!
class-map match-all GROUP_B
match access-group 102
!
policy-map PRIORITY_POLICY
class GROUP_A
priority percent 70
class GROUP_B
priority percent 30
!
interface GigabitEthernet0/0
description WAN Interface
service-policy output PRIORITY_POLICY

hi Georg, since i have to configured service policy on sub interface, it is not supported.

Policy-map class bandwidth percentages will be based on the policy "believes" is the controlling bandwidth. For a physical interface, it would default to the physical bandwidth the interface is running at. This can be changed using an interface bandwidth statement.

For a child policy under a parent policy with a shaper, the child policy will base its bandwidth percentage on the shaper's bandwidth allocation.

Neither of which, is as optimal or precise as you're trying to achieve. Again, as noted in my first post, simple solution would be to use a typical/average "load water mark" for your shaper's bandwidth allocation. The optimal solution would use some kind of on-going SLA test to monitor available bandwidth and rewrite shaper's bandwidth allocation as needed. Oh, if you do try to roll your own Adaptive QoS, you'll want to "prioritize" your SLA test's traffic over all other traffic, and perhaps even bypass the shaper. E.g.:

policy-map Parent
class SLA
priority #
class class-default
bandwidth remaining percent 100
shape average # !this is the value your script will rewrite
service-policy Child

policy-map Child
class GroupA
bandwidth percent #
class GroupB
bandwidth percent #
!or just use
class class-default
fair-queue !unsure but FQ in parent's class-default might negate the need for a child policy if just using child with class-default using FQ

hi Joseph W. Doherty, it is a good idea to track some parameters such as jitter or bandwidth. but i did not find any document to use ip sla parameter as metric for service-policy.

To my knowledge, you will not find any feature for a direct link between SLA and a service-policy. I suspect (or recall?) that's what Adaptive QoS, with DMVPN, is doing (under-the-covers). For you to do something similar, would be for you to write a device script, that wakes up, often, checks on-going SLA performance, and rewrites the shaper's value. (A non-trivial, solution.)

Joseph W. Doherty
Hall of Fame
Hall of Fame
Simple solution, you use a hierarchal policy, with parent policy having a shaper for an expected "reasonable" amount of bandwidth and child policy splitting your bandwidth into two classes, with bandwidth proportional between the classes as desired. (BTW, unless you really need two classes with very distinct bandwidth allocations, a single default class using FQ may work very well for you [still using a shaper, though].)

For "true" dynamic shaping, you could use Adaptive QoS over DMVPN, see https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/qos_plcshp/configuration/15-mt/qos-plcshp-15-mt-book/qos-plcshp-adaptive-qos-dmvpn.html.

If you don't want to use or rely on DMVPN, you might be able to use device scripts to dynamically rewrite a shaper's bandwidth value based on an on-going SLA test (what the prior is doing "under the covers").

honestly i know both of methods include 1) use parent and child policy 2) per-class shaping policy, which both of them depend on "expected reasonable amount of bandwidth" as you say and i have to use one of them (maybe 2). about DMVPN, since my router only nat users to internet directly, i did not configure any DMVPN. Anyway, thanks for reply.

Unclear, what advantage, if any, to doing per class shaping.
Review Cisco Networking for a $25 gift card