cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2670
Views
29
Helpful
13
Replies

Routing protocols and CBWFQ

Hi to evevyone. I have a question.

In CBWFQ do I need to create separate queue for routing protocols? I see nowhere such config

13 Replies 13

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.


Please rate and mark as an accepted solution if you have found any of the information provided useful.
This then could assist others on these forums to find a valuable answer and broadens the community’s global network.

Kind Regards
Paul

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

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.

IP Routing

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

Giuseppe Larosa
Hall of Fame
Hall of Fame

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

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


Please rate and mark as an accepted solution if you have found any of the information provided useful.
This then could assist others on these forums to find a valuable answer and broadens the community’s global network.

Kind Regards
Paul

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.

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.

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?

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.

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))))

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.

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.

Only when I change fair-queue to 256 on class default I get everything working perfectly.

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.