cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1335
Views
6
Helpful
5
Replies

QoS marking problem

dadoavdibegovic
Level 1
Level 1

I have a trouble to implement dynamic QoS between two sites (Site A, and site B) across low speed WAN link (512k). On each site I have Cisco 1921 router. Most important app is Oracle. Because of slow speed WAN links, I want to avoid exact bandwith reservation for Oracle. I only reserve 5% bandwith for network control(icmp, ssh, telnet...) and want configure next Qos scenario:

1. If Oracle traffic exist on a network, it must have 70% of link speed guaranteed, all other apps (e.g mail, file share, ftp) use rest of the bandwith.

2. If there isn't Oracle traffic on a network, all other apps can use all available bandwith.

Issue descrtption:

I used all Cisco guides, but when I implemented this on production it simply didn't work. There is no any significant improvement after implementing this (when I start network file sharing accross wan link, Oracle becomes etremly slow.). Do anyone hadsimilar problem?

Here is configuration wich I trying to implement:

ACL-s and class-maps used to mark traffic:

access-list 119 remark ###QoS-MGMT###

access-list 119 permit tcp any any eq 22

access-list 119 permit tcp any any eq telnet

access-list 119 permit icmp any any

access-list 120 remark ###QoS-DB_ORA###

access-list 120 permit ip any host 10.100.40.30

access-list 120 permit tcp any any eq 1521

class-map match-any Oracle

match access-group 120

class-map match-any Mgmt_Traffic

match access-group 119

policy-map LAN

class Mgmt_Traffic

  set dscp 7

class Oracle

  set dscp 5

class class-default

  set dscp default

policy-map WAN

class Oracle

  priority percent 70

class Mgmt_Traffic

  priority percent 5

Implementation of this policy maps (both sites are identical):

interface FastEthernet0/0

description WAN

bandwidth 512

service-policy output WAN


interface FastEthernet0/1

description LAN

bandwidth 512

service-policy input LAN

Thanx for help!

5 Replies 5

Joseph W. Doherty
Hall of Fame
Hall of Fame

Disclaimer

The  Author of this posting offers the information contained within this  posting without consideration and with the reader's understanding that  there's no implied or expressed suitability or fitness for any purpose.  Information provided is for informational purposes only and should not  be construed as rendering professional advice of any kind. Usage of this  posting's information is solely at reader's own risk.

Liability Disclaimer

In  no event shall Author be liable for any damages whatsoever (including,  without limitation, damages for loss of use, data or profit) arising out  of the use or inability to use the posting's information even if Author  has been advised of the possibility of such damage.

Posting

You're WAN is 512 Kbps, but with FastEthernet hand-offs?

If you're supporting bidirectional Oracle, does ACL 120 need to match host 10.100.40.30 both as destination and as source?

If you available bandwidth is less than port's bandwidth, you'll want to shape for it.

From what you've dscribed, you might try something like:

access-list 120 remark ###QoS-DB_ORA###

access-list 120 permit ip any host 10.100.40.30

access-list 120 permit tcp any any eq 1521

class-map match-any Oracle

match access-group 120

policy-map WAN_Shape

class class-default

shape average 512000

service-policy WAN

policy-map WAN

class Oracle

bandwidth percent 70

fair-queue

class class-default

bandwidth percent 30

fair-queue

int f0/0

desc WAN facing

service-policy output WAN_Shape

Hi Joseph,

Thanx for replay.

Yes, ACL 120 need to match host 10.100.40.30 both as destination and as source.

I try to implement what You said, but there is no any significant improvement. All of this still work like a simple bandwith sharing, but not in percent wich I'm specified

e.g. If I start file share, ftp, and oracle sesions (3 different sesions simoultaniously) I got only matematical sharing of bandwith, and each sessiong gets approx 512kbps/3=170 kbps (33%)

Also, while configuring policy-map WAN I'm unable to configure fair-queue under Oracle class (command simply don't exist). Fair-queue command only existing under class class-default, but can not be implemented simoultaniously with bandwith command (I get this error: deconfigure bandwidth before issuing this command in this class).

Any other idea?

Thanx for help again.

Disclaimer

The   Author of this posting offers the information contained within this   posting without consideration and with the reader's understanding that   there's no implied or expressed suitability or fitness for any purpose.   Information provided is for informational purposes only and should not   be construed as rendering professional advice of any kind. Usage of  this  posting's information is solely at reader's own risk.

Liability Disclaimer

In   no event shall Author be liable for any damages whatsoever (including,   without limitation, damages for loss of use, data or profit) arising  out  of the use or inability to use the posting's information even if  Author  has been advised of the possibility of such damage.

Posting

FQ isn't supported in your CBWFQ outside class-default, eh?  I had assumed your 1921's had a later IOS version that was HQF CBWFQ.  What IOS version are you running on the 1921?

If yours is pre-HQF, you might try removing FQ from class-default.

Did you confirm, your Oracle traffic was in its class?

When you note 3 sessions got about 1/3 each, will each individual session (including Oracle's) drive the shaper to 512 Kbps?  This is important, because only then will/should the bandwidth ratios be maintained.

BTW, depending on your version of IOS, I've documented, to Cisco TAC, bandwidth sharing under a shaper doesn't appear to correctly use the child's non-LLQ bandwidth percentages under 12.x IOS.  It appears to work correctly under 15.x.

What you might also try is the child policy like:

policy-map WAN

class Oracle

priority percent 70

class class-default

fair-queue

Normally we don't use LLQ for non-RT traffic, but I'm curious whether your testing will now show Oracle getting the allocated bandwidth.  (Note: in this example, I left FQ in class-default, as pre-HQF FQ shouldn't distort LLQ.)

PS:

Something else to consider, if this is a MetroEthernet connection, where provider is enforcing 512 Kbps at L2 (with a traffic generator, you've verified you can obtain a sustained 512 w/o drops or additional latency?), I suspect some shapers really "count" rate at L3.  If this is happening, you'll also need to drop your shaper's rate to account for L2 overhead.  [Generally 5-15%])

I confirmed that Oracle is in this class. I'have ACL matches, and it's also confirmed this with implementing this ACL on interfaces (with acces group).

After updating IOS on version 15.0(1) on both sites, all commands are accepted(fair-queue in class Oracle, and Class-class-default). But, still nothing's hapen.

If I sumarize bandwith for each individual session I got 512 kbps. Each individual session takes approximatley 170 kbps.

Try to implement booth child policyes You sugested but there is no any significant change. My current configuriation on booth sites are configuration You sugessted in first post.

Any other idea?

P.S. Connection is MPLS, but it's preaty easy to reconfigure parameters, if system works fine. Before I'm even try to configure dynamic QoS i was succesfuly implemented static QoS with shape average on each class. I was able to change app behavir (speed) in real time, but I waste link Bw.

Disclaimer

The Author of this posting offers the information contained within this posting without consideration and with the reader's understanding that there's no implied or expressed suitability or fitness for any purpose. Information provided is for informational purposes only and should not be construed as rendering professional advice of any kind. Usage of this posting's information is solely at reader's own risk.

Liability Disclaimer

In no event shall Author be liable for any damages whatsoever (including, without limitation, damages for loss of use, data or profit) arising out of the use or inability to use the posting's information even if Author has been advised of the possibility of such damage.

Posting

Any other idea?

Yes, several.

First, we might confirm whether CBWFQ is working as configured.  To be precise, when TAC "showed me" shaped/child CBWFQ worked correctly under 15.x, it was a specific 15.x something (I'll have to find what they actually used) and I took their word for it, i.e. I didn't actually confirm it operated correctly as our internal IOS usage standards don't (yet) allow 15.x code.

Easiest way to confirm correct operation, use a traffic generator to push 1 Mbps to the two classes and see if overall rate is limited to 512 Mbps and bandwidth proportions are 70/30.

I note you wrote you did try the 2nd LLQ policy, correct?  Well, it too should be tested to insure your rate is limited to 512 and 70/30 bandwidth split.  (You can also try a variation of the last w/o any FQ.)

If above tests confirm correct operation, then there are numerous reasons why you're not obtaining the performance you expect.  For example, your WAN vendor could have a misconfiguration or even a technical issue they're unaware of (my experience the former is rare, say less than 1% of the time, the latter is very, very rare but I've seen such too [e.g. 3 months of complaining to a tier one vendor, Ethernet performance not quite right, they finally found cause - buggy firmware on one of their line cards]); or the nature of your traffic you're testing with causes "unexpected behavior" (e.g. UDP vs. TCP?); or L2 rates vs. L3 rates (touched on that in my prior post); application sensitivity (e.g. don't know about Oracle, but some earlier version of SAP were extremely "fragile"); or etc.

So, first confirm CBWFQ is working as it should.  If not, you'll need to work with TAC.  If it's working correctly, we can start to eliminate other possible issues.