cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1730
Views
0
Helpful
23
Replies

QoS questions and challenges

Steven Williams
Level 4
Level 4

I have a 2921 router that is connected to ISP. It has two sub-interfaces. One that directs traffic to the internet and the other one that forces traffic to the provider MPLS. I need to carve this up. Its a 100mbps pipe and need to cut it in half and dedicated 50mbps to the MPLS and 50mbps to the internet. So I assume I going to use the shaping feature to accomplish this. Once that is complete I need to create some rules that prioritize the traffic for the MPLS pipe. I am not very familiar with QoS, on a WAN routing basis. Switching only for phones. 

would I apply the shaping at the physical interface or the sub interfaces? I am really looking for a way to start this and understand this. 

I have the config guide for 15.4 but its a bit confusing and there is a lot of info to take in.

 

Thanks.

1 Accepted Solution

Accepted Solutions

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

Believe you could shape at the main interface or the subinterfaces.  For the former, you would need a class for each subinterface.  For the latter, you don't need classes to distinguish between the subinterfaces.

You can define a child policy to deal with congestion caused by the shaper.  What that policy should be depends on your congestion management goals.  For starters, you might just use FQ as a child policy.

e.g.

policy-map Sample

class class-default

fair-queue

policy-map Shape50M

class class-default

shape average 50000000

service-policy Sample

interface g0.1

desc to Internet

service-policy output Shape50M

interface g0.2

desc to MPLS

service-policy output Shape50M

View solution in original post

23 Replies 23

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

Believe you could shape at the main interface or the subinterfaces.  For the former, you would need a class for each subinterface.  For the latter, you don't need classes to distinguish between the subinterfaces.

You can define a child policy to deal with congestion caused by the shaper.  What that policy should be depends on your congestion management goals.  For starters, you might just use FQ as a child policy.

e.g.

policy-map Sample

class class-default

fair-queue

policy-map Shape50M

class class-default

shape average 50000000

service-policy Sample

interface g0.1

desc to Internet

service-policy output Shape50M

interface g0.2

desc to MPLS

service-policy output Shape50M

service-policy command does not work on this 1841 I have, is this a new command in 15?

Doesnt work on my 2921 either running 15.4

Maybe I am just fighting a version issue here...

 

class-map match-any VOICE
 match protocol h323
 match protocol rtcp
 match protocol rtp
 match protocol sip
 match protocol skinny
 match protocol skype

 

policy-map MPLS
 class VOICE
  priority 64
 

perimrt(config)#int fa0/0.3086
perimrt(config-subif)#service-policy output MPLS         
CBWFQ : Not supported on subinterfaces
perimrt(config-subif)#
*Jun 22 18:10:10.835: qos_feature_objects_init: created FO table 0x6417E46C
*Jun 22 18:10:10.835: qos_feature_objects_init: created FO table 0x656A69CC 
 

 

Did you try what I posted or what you've posted?

Believe since HQF, subinterfaces require a shaper.

the command  service-policy does not work

 

So this output confuses me a bit since it looks like its evaluating the class-default first?

 

bna-perimrt-xo#show policy-map interface gi0/0.3086
 GigabitEthernet0/0.3086 

  Service-policy output: MPLS_POLICYMAP_PARENT

    Class-map: class-default (match-any)  
      80 packets, 5627 bytes
      5 minute offered rate 0000 bps, drop rate 0000 bps
      Match: any 
      Queueing
      queue limit 64 packets
      (queue depth/total drops/no-buffer drops) 0/0/0
      (pkts output/bytes output) 80/5627
      shape (average) cir 50000000, bc 200000, be 200000
      target shape rate 50000000
      QoS Set
        dscp default
          Packets marked 80

      Service-policy : MPLS_QUEUEING_CHILD

        queue stats for all priority classes:
          Queueing
          queue limit 64 packets
          (queue depth/total drops/no-buffer drops) 0/0/0
          (pkts output/bytes output) 0/0

        Class-map: MPLS_VOICE_CHILD (match-any)  
          0 packets, 0 bytes
          5 minute offered rate 0000 bps, drop rate 0000 bps
          Match: protocol rtp
            0 packets, 0 bytes
            5 minute rate 0 bps
          Match: protocol rtsp
            0 packets, 0 bytes
            5 minute rate 0 bps
          Match: protocol sip
            0 packets, 0 bytes
            5 minute rate 0 bps
          Match: protocol skinny
            0 packets, 0 bytes
            5 minute rate 0 bps
          Match: protocol h323
            0 packets, 0 bytes
            5 minute rate 0 bps
          Match: ip dscp ef (46)
            0 packets, 0 bytes
            5 minute rate 0 bps
          Priority: 20% (10000 kbps), burst bytes 250000, b/w exceed drops: 0
          
          QoS Set
            dscp ef
              Packets marked 0

        Class-map: MPLS_ENCRYPTION_CHILD (match-any)  
          0 packets, 0 bytes
          5 minute offered rate 0000 bps, drop rate 0000 bps
          Match: protocol isakmp
            0 packets, 0 bytes
            5 minute rate 0 bps
          Match: protocol ipsec
            0 packets, 0 bytes
            5 minute rate 0 bps
          Priority: 70% (35000 kbps), burst bytes 875000, b/w exceed drops: 0
          
          QoS Set
            dscp af11
              Packets marked 0

        Class-map: class-default (match-any)  
          80 packets, 5627 bytes
          5 minute offered rate 0000 bps, drop rate 0000 bps
          Match: any 
          
          queue limit 64 packets
          (queue depth/total drops/no-buffer drops) 0/0/0
          (pkts output/bytes output) 80/5627
bna-perimrt-xo#

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

That's because it's a nested or hierarchical policy.  The "first" class default is from the parent policy, the "last" class default is from the child policy.  The parent policy logically contains the child policy.

What what is the order of processing then? Does it look at the voice class map in the child policy first? 

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

It processes the parent policy.  When the shaper, in parent's class-default queues, queue management is then hand-off to child policy.

Right got that. I guess I am worried about the parent policy getting the initial traffic and marking it as dscp 0 before it hits child policy.

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 should worry.  I.e. where you (re)tag is important.

If you have a child policy, tagging, if done, should be done in it.

Ok I am on 15.1 now and this is what works.

 

ChangingTheName(config)#policy-map Policy_Shape_50M
ChangingTheName(config-pmap)#class Class_Shape_50M

ChangingTheName(config-pmap-c)#shape average 50000000

ChangingTheName(config)#int fa0/0.3086
ChangingTheName(config-subif)#service-policy output Policy_Shape_50M

 


 

What does this do?

 

service-policy Sample

class class-default

fair-queue

It should shape the subinterface at 50 Mbps, and then use the Sample policy to manage congestion.
 

ChangingTheName(config)#policy-map Policy_Shape_50M
ChangingTheName(config-pmap)#class Class_Shape_50M

ChangingTheName(config-pmap-c)#shape average 50000000

ChangingTheName(config)#int fa0/0.3086
ChangingTheName(config-subif)#service-policy output Policy_Shape_50M

 

- See more at: https://supportforums.cisco.com/discussion/12539326/qos-questions-and-challenges#comment-10590356

 

ChangingTheName#show policy-map interface fa0/0.3086
 FastEthernet0/0.3086 

  Service-policy output: Policy_Shape_50M

    Class-map: Class_Shape_50M (match-any)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: none 
        0 packets, 0 bytes
        5 minute rate 0 bps
      Queueing
      queue limit 64 packets
      (queue depth/total drops/no-buffer drops) 0/0/0
      (pkts output/bytes output) 0/0
      shape (average) cir 50000000, bc 200000, be 200000
      target shape rate 50000000

    Class-map: class-default (match-any)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: any 
      
      queue limit 64 packets
      (queue depth/total drops/no-buffer drops) 0/0/0
      (pkts output/bytes output) 0/0
ChangingTheName#

 

Alright it looks like this is applying, this isnt in prod at this point so cant really see anything going on. But what does all this mean.

From what I am understanding, Service-Policy is a container that many Class-maps can sit in. So one to many. 

So I have a class-map that is shaping 50mbps, but then also have a class-map for class-default.

So how does this actually work? Since the Class-map for my shape average policy is first it will always use that? When does the class-default become in use?