06-22-2015 07:26 AM - edited 03-05-2019 01:43 AM
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.
Solved! Go to Solution.
06-22-2015 10:19 AM
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
06-22-2015 10:19 AM
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
06-22-2015 10:19 AM
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
06-22-2015 10:37 AM
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
06-22-2015 11:12 AM
Did you try what I posted or what you've posted?
Believe since HQF, subinterfaces require a shaper.
06-22-2015 11:36 AM
the command service-policy does not work
08-05-2015 12:58 PM
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#
08-05-2015 05:01 PM
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.
08-06-2015 06:44 AM
What what is the order of processing then? Does it look at the voice class map in the child policy first?
08-06-2015 10:24 AM
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.
08-06-2015 10:27 AM
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.
08-06-2015 04:26 PM
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.
06-22-2015 01:03 PM
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
06-22-2015 04:30 PM
It should shape the subinterface at 50 Mbps, and then use the Sample policy to manage congestion.
06-22-2015 01:28 PM
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?
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide