05-15-2013 12:14 AM - edited 03-04-2019 07:54 PM
Hi to evevyone. I have a question.
In CBWFQ do I need to create separate queue for routing protocols? I see nowhere such config
05-15-2013 05:42 AM
Hello
Usually these are left to the class-class default queue.
CBWFQ has a default of 75% maximum reserved bandwidth for queuing with 25% available for unclassifed traffic.
This max reserved bandwidth can be overwritten to give the classes more % of Bw (upto 100%), however I think cisco suggest not to allocate no more than 90% to queuing, so at least enough bw is available for such things as routing protocols.
Also note If some queues do not need their bw for a short period, then this is spread accross the other classes.
res
Paul
Please don't forget to rate any posts that have been helpful.
Thanks.
05-15-2013 06:34 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
Sometimes you should. This is a "it depends" type of answer.
As Paul notes, class default (in pre-HQF CBWFQ) may reserve enough bandwidth for control traffic. Also, Cisco devices sometimes assign special internal PAK priority for device locally sourced routing protocol traffic.
By default, Cisco IOS software (in accordance with RFC 791 and RFC 2474) marks Interior Gateway Protocol (IGP) traffic such as Routing Information Protocol (RIP/RIPv2), Open Shortest Path First (OSPF), and Enhanced Interior Gateway Routing Protocol (EIGRP) to DSCP CS6. However, Cisco IOS software also has an internal mechanism for granting internal priority to important control datagrams as they are processed within the router. This mechanism is called PAK_PRIORITY.
As datagrams are processed though the router and down to the interfaces, they are internally encapsulated with a small packet header, referred to as the PAKTYPE structure. Within the fields of this internal header there is a PAK_PRIORITY flag that indicates the relative importance of control packets to the internal processing systems of the router. PAK_PRIORITY designation is a critical internal Cisco IOS software operation and, as such, is not administratively configurable in any way.
Note that Exterior Gateway Protocol (EGP) traffic such as Border Gateway Protocol (BGP) traffic is marked by default to DSCP CS6 but does not receive such PAK_PRIORITY preferential treatment and may need to be explicitly protected in order to maintain peering sessions.
When addressing the QoS needs of IP Routing traffic, Cisco recommends the following guidelines:
•IP Routing traffic should be marked to DSCP CS6; this is default behavior on Cisco IOS platforms.
•IGPs are usually adequately protected with the Cisco IOS internal PAK_Priority mechanism; Cisco recommends that EGPs such as BGP have an explicit class for IP routing with a minimal bandwidth guarantee.
•Cisco IOS automatically marks IP Routing traffic to DSCP CS6.
Additional information on PAK_PRIORITY can be found at:
http://www.cisco.com/warp/public/105/rtgupdates.html
05-15-2013 01:12 PM
Hello Volodymyr,
I have used an explicit class-map for routing traffic matching ip precedence 6 in the past for a mobile service provider.
This was needed on platforms like C7500 that missed the concept of an implicit system queue for routing traffic.
We used it as well on C12000 GSR with engine 0, engine 2 and engine3 linecards.
I would not leave the routing protocols mixed with best effort or class-default class you want to be sure that when the link is full enough resources are given to routing protocol messages to avoid network instability.
On the other hand leaving 25% of the link bandwidth unused as it happens on several IOS based platforms with the max-reserved bandwidth is simply too much waste of resources specially on high speed links of today.
An explicit configuration should be preferred to achieve better control
Hope to help
Giuseppe
05-15-2013 01:28 PM
Hello Joseph/Giuseppe
Actually this make sense - However all the cco docs have come across has not referred to this procedure step - my interpretation of these docs has always been for control traffic and routing overheads to let them drop into the class class-default
Joeeph post regarding the Pak priority for Igp would say this is applicable or would you both agree that for igp and ebp's ( bgpv4) that you specifically defined a class for these?
Please share your thoughts. as this would help me personally and for future postings
Res
Paul
Sent from Cisco Technical Support iPad App
05-15-2013 01:45 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
Paul, there's often much left out of Cisco documentation.
Again, this is still a "it depends" type of answer.
I've both allowed routing protocols to fall into class-default, and I've also matched against them and treated them special too.
Some criteria I've used for this decision is how the platform works, how it's QoS works, what kind of volume of different traffic types I expect.
For example, CBWFQ generally supports WFQ (pre-HQF) or FQ (HQF) in class-default. With either enabled, and with an expectation other flows (within the same class) won't starve something like routing protocol traffic, and with an expectation of sufficient class bandwidth, class-default might be just fine.
05-15-2013 02:27 PM
Hi,
according to Cisco documentation, PAK priority traffic is protected by HQF (it is in IOS from 12.4(20)T), no need to keep BW for them. The problem in case of creating a class would be how to classify IS-IS (maybe NBAR ?) as it runs over the link layer. However, the router prioritize this IS-IS traffic internally, so no need to worry about that
Best Regards,
Jose.
05-17-2013 02:46 AM
Thanks to all guys. So as I understood IOS prioritizes IGP on IOS 12.4 or later. Thats great))) But what if it is BGP messages, they also marked as IP Prec 6, but if no queue exists, it goes to class-default and it can cause problems. By the way my question arises after I have read this article:
http://cisconinja.wordpress.com/2009/02/18/cbwfq-routing-protocols-and-max-reserved-bandwidth/
But here is no solution for such problem and perhaps author runs older version of IOS than 12.4.
So my question is do I need separate queue for BGP? on IOS 12.4 and later?
05-17-2013 03:39 AM
No, in HQF it´s not needed. The max-reserved-bandwidth is deprecated, a policy can reserve up to 100% of the bandwidth, 99% if class-default is not explicitly defined.
Best Regards,
Jose.
05-18-2013 04:42 AM
Hello again. I have created the scenario:
R1(s0/1) --- (S0/0)R2 (S0/1) --- R5
On R2's S0/0 I set shaper to 180k to simmulate low bandwidth. On R5 I lauched SLA with HTTP, HTTPS, ICMP, FTP, TELNET and SSH to saturate 180k. On purpose I set hello OSPF timer to 300ms to see how saturation influnce OSPF. On R2's s0/0 I created the policy which is below:
policy-map QOS
class file_tracs
bandwidth percent 20
class WEB
bandwidth percent 5
class VOICE
bandwidth percent 30
class MGT
bandwidth percent 10
class ICMP
bandwidth percent 25
class class-default
fair-queue 4096
class-map match-all ICMP
match access-group 120
class-map match-any file_tracs
match protocol ftp
class-map match-any WEB
match protocol http
class-map match-any VOICE
match protocol secure-http
match access-group 180
class-map match-any traff_generated
match access-group 101
class-map match-any MGT
match protocol telnet
match protocol ssh
policy-map QOS_CBWFQ
class class-default
shape average 180000
service-policy QOS
interface Serial0/0
bandwidth 400
ip address 10.1.2.2 255.255.255.0
ip accounting precedence input
ip ospf dead-interval minimal hello-multiplier 3
tx-ring-limit 1
tx-queue-limit 1
fair-queue 10 128 0
clock rate 1200
service-policy output QOS_CBWFQ
hold-queue 1 out
In this scenario OSPF gets to default class and is influenced by my defined classes. So when I saturated the link I get hello messages delayed enough to break the OSPF neighborship. This situation is clear for me. But next scenario I cant understand. I assign separate queue for OSPF and give it 10% (15kbps) of strict priority. However the result is the same: OSPF continues breaking adjacency. And I dont understand why. OSPF remain to be in shaped buffer dispite its higher priority queue. Modified config:
class-map match-all critical
match protocol ospf
policy-map QOS
class file_tracs
bandwidth percent 20
class WEB
bandwidth percent 5
class VOICE
bandwidth percent 30
class MGT
bandwidth percent 10
class ICMP
bandwidth percent 25
class critical
priority percent 10
class class-default
fair-queue 4096
R2#sh traffic-shape queue s0/0
Traffic queued in shaping queue on Serial0/0
Traffic shape class: class-default
Queueing strategy: weighted fair
Queueing Stats: 7/1000/64/49 (size/max total/threshold/drops)
Conversations 2/9/4096 (active/max active/max total)
Reserved Conversations 5/5 (allocated/max allocated)
Available Bandwidth 0 kilobits/sec
(depth/weight/total drops/no-buffer drops/interleaves) 2/4/0/0/0
Conversation 4109, linktype: ip, length: 1204
source: 10.1.3.2, destination: 10.1.2.1, id: 0x3195, ttl: 254, prot: 1
(depth/weight/total drops/no-buffer drops/interleaves) 5/1024/0/0/0
Conversation 4103, linktype: ip, length: 84
source: 10.1.2.2, destination: 224.0.0.5, id: 0xC703, ttl: 1, prot: 89
(OSPF gets not 0 weight as for priority queue but as for link queue - the same as for PAK_PRIORITY packets. It seams that IOS ignores my config and continue using internal marking).
But why? Is there any way I can preserve OSPF in this situation. I now that it is almost unreal in modern word to create such situation but I need to close this topic))))
05-18-2013 05:17 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
Part of the issue you might be seeing is trying to emulate a low bandwidth link using a shaper.
Much better would be using a serial connection between your two routers, in a back to back configuration, and clock the serial line rate down to the bandwidth you want to test.
05-18-2013 07:29 AM
Set bandwidth, shaper value and clock rate to 192000 bps but the behaviour is the same. Tell me what should I see? Perhaps this simulation is not accurate because of shaping.
05-18-2013 07:47 AM
Only when I change fair-queue to 256 on class default I get everything working perfectly.
06-04-2013 01:53 AM
This issue is resolved)))) I know why OSPF remains getting in shape queue. According to Cisco CCIE R&S guide shaper always is processed first, software queues only after is. So if shaper is active, IOS shapes all exceeded packets despite routing protocol it or not.
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