{"id":515,"date":"2010-03-23T15:38:17","date_gmt":"2010-03-23T15:38:17","guid":{"rendered":"http:\/\/mccltd.net\/blog\/?p=515"},"modified":"2015-02-21T09:25:43","modified_gmt":"2015-02-21T09:25:43","slug":"qos-templates-for-cisco-catalyst-3550","status":"publish","type":"post","link":"http:\/\/darenmatthews.com\/blog\/?p=515","title":{"rendered":"QoS templates for Cisco Catalyst 3550"},"content":{"rendered":"<p>Here are some QoS examples configured on a Cisco Catalyst 3550:<br \/>\n<!--more--><\/p>\n<p>1. mls qos<br \/>\n### enables qos globally#######<\/p>\n<p>2. mls qos cos-map 0 8 16 26 34 46 48 56<br \/>\n### maps cos values to dscp values properly######<\/p>\n<p>3. For IP phones ports, apply the following commands<\/p>\n<p>int range fa 0\/1 , fa 0\/2<br \/>\n#### ip phone ports<\/p>\n<p>flowcontrol receive off ***** important command********<br \/>\nflowcontrol send off *********important command*******<\/p>\n<p>4. Mapping voice bearer traffic in priority queue<\/p>\n<p>int fa0\/1<\/p>\n<p>wrr-queue cos-map 4 5<br \/>\npriority-queue out<br \/>\n### if asked to put Voice bearer in priority queue<\/p>\n<p>5. Mapping voice signalling traffic in queue 3<\/p>\n<p>wrr-queue cos-map 3 3<\/p>\n<p>6. Port configuration<\/p>\n<p>interface fa0\/1<\/p>\n<p>mls qos trust cos<br \/>\n#### trusts packet cos<br \/>\nmls qos trust device cisco-phone<br \/>\n#### trusts cos only if a phone is attached<\/p>\n<p>switchport priority extend cos 0<\/p>\n<p>### zeros out PC cos values.<\/p>\n<p>7. If asked to modify bandwidth and buffer settings for each queue (only then do the following)<\/p>\n<p>For fastE ports:<\/p>\n<p>mls qos min-reserve 5 170<br \/>\nmls qos min-reserve 6 130<br \/>\nmls qos min-reserve 7 51<br \/>\nmls qos min-reserve 8 34<br \/>\n#### defines min-reserve levels (upto 8 levels may be defined, default buffer size is 100 for all levels)####<\/p>\n<p>int range fa 0 \/1, fa 0\/2<\/p>\n<p>wrr-queue bandwidth 20 20 60 1<br \/>\n### priority queue doesnt need wrr bandwidth allocation<br \/>\nwrr-queue min-reserve 1 5<br \/>\nwrr-queue min-reserve 2 6<br \/>\nwrr-queue min-reserve 3 7<br \/>\nwrr-queue min-reserve 4 8<br \/>\n### maps min-reserve levels to queues#####<\/p>\n<p>For GigE ports:<\/p>\n<p>int range gi 0\/1 , gi 0\/2<br \/>\nwrr-queue queue-limit 60 20 20 1<br \/>\n#### defines more buffer space for low priority queue ####<br \/>\nwrr-queue bandwidth 20 20 60 1<\/p>\n<p>8. DSCP maps (optional)<\/p>\n<p>For gig ports there is a dscp map that maps dscp values to thresholds.<br \/>\nEach queue has two thresholds, and by default all dscp values are mapped to threshold 1.<br \/>\nIf asked to set voice traffic (may be video) to threshold 2, use command.<\/p>\n<p>wrr-queue dscp-map 2 26 34 46 (this is higher threshold in the queue)<\/p>\n<p>9. Tail Drop or WRED (optional)<\/p>\n<p>For gig ports default drop mechanism is tail drop. Here is how you may modify these thresholds:<\/p>\n<p>wrr-queue threshold 1 80 100<br \/>\nwrr-queue threshold 2 80 100<br \/>\nwrr-queue threshold 3 80 100<\/p>\n<p>### no need to define drop thresholds for queue 4 if its priority queue<\/p>\n<p>To enable WRED and specify thresholds, use following commands:<\/p>\n<p>wrr-queue random-detect max-threshold 1 80 100<br \/>\nwrr-queue random-detect max-threshold 2 80 100<br \/>\nwrr-queue random-detect max-threshold 3 80 100<\/p>\n<p>### WRED and tail drop are mutually exclusive<\/p>\n<p>10. Classification using ACLs.<\/p>\n<p>To classify based on subnet, define standard or extended acl&#8217;s.<\/p>\n<p>access-list 101 permit ip any any dscp 24<\/p>\n<p>class-map test<br \/>\nmatch access-group 101<\/p>\n<p>11 .Defining Policer and Remarking traffic<br \/>\nmls qos map policed-dscp-map 26 46 to 0<br \/>\n#### remarks voice control and bearer traffic to dscp 0. (Defined in policer)<\/p>\n<p>mls qos aggregate-policer TestPolicer 256000 8000 exceed-action policed-dscp-transmit<br \/>\n#### defines an aggregate policer with a rate of 256kbps, burst of 8000 bits and remarks dscp for voice and bearer traffic based on above policed-dscp map<br \/>\nclass-map match-all Voice<br \/>\nmatch ip dscp af31 ef<\/p>\n<p>policy-map Voice<br \/>\nclass Voice<br \/>\ntrust dscp<br \/>\npolice aggregate TestPolicer<br \/>\n#### applies aggregate policer to the class.<br \/>\nYou cannot define same policer across multiple policy-maps.<\/p>\n<p>int range fa 0\/1 , fa0\/2<br \/>\nservice policy input Voice<\/p>\n<p>Example configs:<\/p>\n<p>1. To define a class-map that remarks traffic:<br \/>\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014<br \/>\nclass-map match-all VoiceControl<br \/>\nmatch ip dscp af31<br \/>\nclass-map match-all VoiceBearer<br \/>\nmatch ip dscp ef<\/p>\n<p>policy-map Voice<br \/>\nclass VoiceControl<br \/>\ntrust dscp<br \/>\nset ip dscp 40<br \/>\nclass VoiceBearer<br \/>\ntrust dscp<br \/>\nset ip dscp 24<br \/>\nint range fa 0\/1 , fa0\/2<br \/>\nservice policy input Voice<\/p>\n<p>2 . To perform per-vlan, per-port classification, marking, policing. (may be required on gateway ports which may be a trunk port)<br \/>\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014<br \/>\nclass-map match-all Voice<br \/>\nmatch ip dscp af31 ef<\/p>\n<p>class-map match-all VoiceVLAN<br \/>\nmatch vlan 100 \u2014\u2014\u2014\u2014\u2013 defines which vlan you want to match<br \/>\nmatch class-map Voice \u2014\u2014- defines all traffic on voice vlan with dscp af31 or ef.<br \/>\npolicy-map Voice<br \/>\nclass VoiceVLAN<br \/>\ntrust dscp<br \/>\npolice aggregate TestPolicer<\/p>\n<p>#### applies aggregate policer to vlan 100<br \/>\nYou cannot define same policer across multiple policy-maps.<\/p>\n<p>int range fa 0\/3<br \/>\nDecription Gateway port<br \/>\nservice policy input Voice<\/p>\n<p>3. To perform individual policing on each class:<br \/>\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014-<\/p>\n<p>mls qos map policed-dscp-map 26 46 to 0<\/p>\n<p>class-map match-all Voice<br \/>\nmatch ip dscp af31 ef<\/p>\n<p>policy-map Voice<br \/>\nclass Voice<br \/>\ntrust dscp<br \/>\npolice 256000 8000 exceed-action policed-dscp-transmit<br \/>\n####This is a individual policer<\/p>\n<p>int range fa 0\/1 , fa0\/2<br \/>\nservice policy input Voice<\/p>\n<p>Source:<br \/>\nCCIE Voice Notes at:<br \/>\nhttp:\/\/cciev.wordpress.com\/2006\/05\/25\/qos-templates-for-3550\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here are some QoS examples configured on a Cisco Catalyst 3550:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[83,76],"tags":[21],"_links":{"self":[{"href":"http:\/\/darenmatthews.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/515"}],"collection":[{"href":"http:\/\/darenmatthews.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/darenmatthews.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/darenmatthews.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/darenmatthews.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=515"}],"version-history":[{"count":4,"href":"http:\/\/darenmatthews.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/515\/revisions"}],"predecessor-version":[{"id":535,"href":"http:\/\/darenmatthews.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/515\/revisions\/535"}],"wp:attachment":[{"href":"http:\/\/darenmatthews.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/darenmatthews.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=515"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/darenmatthews.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}