Feedback
|
Table Of Contents
Prerequisites for Implementing QoS for IPv6
Restrictions for Implementing QoS for IPv6
Information About Implementing QoS for IPv6
Implementation Strategy for QoS for IPv6
Policies and Class-Based Packet Marking in IPv6 Networks
Congestion Management in IPv6 Networks
Congestion Avoidance for IPv6 Traffic
Traffic Policing in IPv6 Environments
Classifying Traffic in IPv6 Networks
Specifying Marking Criteria for IPv6 Packets
Using the Match Criteria to Manage IPv6 Traffic Flows
Configuration Examples for Implementing QoS for IPv6
Example: Verifying Cisco Express Forwarding Switching
Example: Verifying Packet Marking Criteria
Feature Information for Implementing QoS for IPv6
Implementing QoS for IPv6
First Published: May 5, 2008Last Updated: April 27, 2011This module provides tasks for implementing quality of service (QoS) features in IPv6 environments, specifically the application of the Differentiated Services (DiffServ) QoS features to IPv6 packets.
Finding Feature Information
Your software release may not support all the features documented in this module. For the latest feature information and caveats, see the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the "Feature Information for Implementing QoS for IPv6" section.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
Contents
•
Prerequisites for Implementing QoS for IPv6
•
Restrictions for Implementing QoS for IPv6
•
Information About Implementing QoS for IPv6
•
How to Implement QoS for IPv6
•
Configuration Examples for Implementing QoS for IPv6
•
Feature Information for Implementing QoS for IPv6
Prerequisites for Implementing QoS for IPv6
This document assumes that you are familiar with IPv4. Refer to the publications referenced in the "Additional References" section for IPv4 configuration and command reference information.
Restrictions for Implementing QoS for IPv6
The following QoS features are not supported for managing IPv6 traffic:
•
Compressed Real-Time Protocol (CRTP)
•
Network-based application recognition (NBAR)
•
Committed access rate (CAR)
•
Priority queueing (PQ)
•
Custom queueing (CQ)
Information About Implementing QoS for IPv6
•
Implementation Strategy for QoS for IPv6
•
Packet Classification in IPv6
•
Policies and Class-Based Packet Marking in IPv6 Networks
•
Congestion Management in IPv6 Networks
•
Congestion Avoidance for IPv6 Traffic
•
Traffic Policing in IPv6 Environments
Implementation Strategy for QoS for IPv6
IPv6 packets are forwarded by paths that are different from those for IPv4. QoS features supported for IPv6 environments include packet classification, queueing, traffic shaping, weighted random early detection (WRED), class-based packet marking, and policing of IPv6 packets. These features are available at both the process switching and Cisco Express Forwarding switching paths of IPv6.
All of the QoS features available for IPv6 environments are managed from the modular QoS command-line interface (CLI). The modular QoS CLI allows you to define traffic classes, create and configure traffic policies (policy maps), and then attach those traffic policies to interfaces.
To implement QoS in networks running IPv6, follow the same steps that you would follow to implement QoS in networks running only IPv4. At a very high level, the basic steps for implementing QoS are as follows:
•
Know which applications in your network need QoS.
•
Understand the characteristics of the applications so that you can make decisions about which QoS features would be appropriate.
•
Know your network topology so that you know how link layer header sizes are affected by changes and forwarding.
•
Create classes based on the criteria you establish for your network. In particular, if the same network is also carrying IPv4 traffic along with IPv6, decide if you want to treat both of them the same way or treat them separately and specify match criteria accordingly. If you want to treat them the same, use match statements such as match precedence, match dscp, set precedence, and set dscp. If you want to treat them separately, add match criteria such as match protocol ip and match protocol ipv6 in a match-all class map.
•
Create a policy to mark each class.
•
Work from the edge toward the core in applying QoS features.
•
Build the policy to treat the traffic.
•
Apply the policy.
Packet Classification in IPv6
Packet classification is available with both process and CEF switching path. Classification can be based on IPv6 precedence, differentiated services control point (DSCP), and other IPv6 protocol-specific values that can be specified in IPv6 access lists in addition to other non-IPv6 protocol specific values such as COS, packet length, and QOS group. Once you determine which applications need QoS, you can create classes based on the characteristics of the applications. You can use a variety of match criteria to classify traffic. You can combine various match criteria to segregate, isolate, and differentiate traffic.
The enhancements to the modular QoS CLI (MQC) allow you to create matches on precedence, DSCP, and IPv6 access group values in both IPv4 and IPv6 packets. The match command has been modified so that matches can be made on DSCP values and precedence for both IP and IPv6 packets. See "Using the Match Criteria to Manage IPv6 Traffic Flows" section on page 162 for configuration guidelines and see the match dscp and match precedence command descriptions. See the "Marking Network Traffic" document for details of the modular QoS CLI enhancements.
Policies and Class-Based Packet Marking in IPv6 Networks
You can create a policy to mark each class of traffic with appropriate priority values, using either DSCP or precedence. Class-based marking allows you to set the IPv6 precedence and DSCP values for traffic management. The traffic is marked as it enters the router on the ingress interface. The markings are used to treat the traffic (forward, queue) as it leaves the router on the egress interface. Always mark and treat the traffic as close as possible to its source.
Use the set dscp and set precedence commands for packet marking. These commands have been modified to handle both IPv4 and IPv6 traffic. See the "Specifying Marking Criteria for IPv6 Packets" section for configuration guidelines for using these commands. See the set dscp and set precedence command pages for detailed descriptions of the commands.
Congestion Management in IPv6 Networks
Once you have marked the traffic, you can use the markings to build a policy and classify traffic on the rest of the network segments. If you keep the policy simple (no more than about four classes), it will be easier to manage. Class-based and flow-based queueing are supported for IPv6. The processes and tasks use the same commands and arguments to configure various queueing options for both IP and IPv6. Refer to the Cisco IOS XE Quality of Service Configuration Guide for configuration and usage instructions of queueing features.
Congestion Avoidance for IPv6 Traffic
WRED implements the RED-based drop policy on the packets that are likely to overflow the limits of Class-based Weighted Fair Queueing (CBWFQ). WRED supports class-based and flow-based (using DSCP or precedence values) queueing. The WRED commands apply to both IPv4 and IPv6 with no changes. Refer to the Cisco IOS XE Quality of Service Solutions Configuration Guide for information about these QoS features.
Traffic Policing in IPv6 Environments
Congestion management for IPv6 is similar to its implementation for IP packets, and the commands used to configure queueing and traffic shaping features for IPv6 environments are the same commands as those used for IP. Traffic shaping allows you to limit the packet dequeue rate by holding additional packets in the queues and forwarding them as specified by parameters configured for traffic shaping features. Traffic shaping uses flow-based queueing by default. CBWFQ can be used to classify and prioritize the packets. Class-Based Policer and Generic Traffic Shaping (GTS) or Frame Relay Traffic Shaping (FRTS) can be used for conditioning and policing traffic.
Although no changes to existing configuration or command usage for policing are required for use in IPv6 environments, the police command has been enhanced to mark both IPv4 and IPv6 packets when the following keyword options are used in confirm action, exceed action, and violate action:
•
set-dscp-transmit
•
set-precedence-transmit
Refer to the Cisco IOS XE Quality of Service Solutions Configuration Guide for information about these features and Cisco IOS Quality of Service Solutions Command Reference for detailed descriptions of these commands and their options.
How to Implement QoS for IPv6
•
Classifying Traffic in IPv6 Networks (required)
•
Specifying Marking Criteria for IPv6 Packets (required)
•
Using the Match Criteria to Manage IPv6 Traffic Flows (required)
Classifying Traffic in IPv6 Networks
Except for the modifications to the match dscp and match precedence commands (which are described in this document) and the addition of the IPv6-specific match access-group name command, the functionality of all of the match commands is the same for both IPv4 and IPv6.
The match access-group xxx command for matching numbered access lists is not supported. Note that the match ip rtp command for matching RTP port ranges works only for IPv4 packets.
The set cos and match cos commands for 802.1Q (dot1Q) interfaces are supported only for CEF-switched packets. Process-switched packets, such as router-generated packets, are not marked when these options are used.
The set cos and match cos for ISL links is not supported for CEF-switched packets. Process switching is not supported with these options.
Specifying Marking Criteria for IPv6 Packets
Perform this task to establish the match criteria (or marks the packets) to be used to match packets for classifying network traffic.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
policy map policy-map-name
4.
class {class-name | class-default}
5.
set precedence {precedence-value | from-field [table table-map-name]}
or
set [ip] dscp {dscp-value | from-field [table table-map-name]}
DETAILED STEPS
Using the Match Criteria to Manage IPv6 Traffic Flows
You can use multiple match statements. Depending on the type of class, you can specify whether to match all classes or any of the classes.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
class-map {class-name | class-default}
4.
match precedence precedence-value [precedence-value precedence-value]
or
match access-group name ipv6-access-group
or
match [ip] dscp dscp-value [dscp-value dscp-value dscp-value dscp-value dscp-value dscp-value dscp-value]
DETAILED STEPS
Confirming the Service Policy
Ensure that the traffic flow matches the input or output parameter of the policy. For example, downloading a file from an FTP server generates congestion in the receive direction because the server sends large MTU-sized frames, and the client PC returns small acknowledgments (ACKs).
Before you begin this task, simulate congestion with an extended ping using a large ping size and a large number of pings. Also, try downloading a large file from an FTP server. The file constitutes "disturbing" data and fills the interface bandwidth.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
interface atm slot/0. subinterface-number {multipoint | point-to-point}
4.
ip address ip-address mask [secondary]
5.
pvc [name] vpi/vci [ces | ilmi | qsaal | smds]
6.
tx-ring-limit ring-limit
7.
service-policy {input | output} policy-map-name
DETAILED STEPS
Configuration Examples for Implementing QoS for IPv6
•
Example: Verifying Cisco Express Forwarding Switching
•
Example: Verifying Packet Marking Criteria
Example: Verifying Cisco Express Forwarding Switching
The following is sample output from the show cef interface detail command for GigabitEthernet interface 1/0/0. Use this command to verify that CEF switching is enabled for policy decisions to occur. Notice that the display shows that CEF switching is enabled.
Router# show cef interface GigabitEthernet 1/0/0 detailGigabitEthernet1/0/0 is up (if_number 9)Corresponding hwidb fast_if_number 9Corresponding hwidb firstsw->if_number 9Internet address is 10.2.61.8/24ICMP redirects are always sentPer packet load-sharing is disabledIP unicast RPF check is disabledInbound access list is not setOutbound access list is not setIP policy routing is disabledHardware idb is GigabitEthernet1/0/0Fast switching type 1, interface type 5IP Distributed CEF switching enabledIP Feature Fast switching turbo vectorIP Feature CEF switching turbo vectorInput fast flags 0x0, Output fast flags 0x0ifindex 7(7)Slot 1 Slot unit 0 VC -1Transmit limit accumulator 0x48001A82 (0x48001A82)IP MTU 1500Example: Verifying Packet Marking Criteria
The following example shows how to use the match precedence command to manage IPv6 traffic flows:
Router# configure terminalEnter configuration commands, one per line. End with CNTL/Z.Router(config)# class-m c1Router(config-cmap)# match precedence 5Router(config-cmap)# endRouter#Router(config)# policy p1Router(config-pmap)# class c1Router(config-pmap-c)# police 10000 conform set-prec-trans 4To verify that packet marking is working as expected, use the show policy command. The interesting information from the output of this command is the difference in the number of total packets versus the number of packets marked.
Router# show policy p1Policy Map p1Class c1police 10000 1500 1500 conform-action set-prec-transmit 4 exceed-action dropRouter# configure terminalEnter configuration commands, one per line. End with CNTL/Z.Router(config)# interface serial 4/1Router(config-if)# service out p1Router(config-if)# endRouter# show policy interface s4/1Serial4/1Service-policy output: p1Class-map: c1 (match-all)0 packets, 0 bytes5 minute offered rate 0 bps, drop rate 0 bpsMatch: precedence 5police:10000 bps, 1500 limit, 1500 extended limitconformed 0 packets, 0 bytes; action: set-prec-transmit 4exceeded 0 packets, 0 bytes; action: dropconformed 0 bps, exceed 0 bps violate 0 bpsClass-map: class-default (match-any)10 packets, 1486 bytes5 minute offered rate 0 bps, drop rate 0 bpsMatch: anyDuring periods of transmit congestion at the outgoing interface, packets arrive faster than the interface can send them. It is helpful to know how to interpret the output of the show policy-map interface command, which is useful for monitoring the results of a service-policy created with Cisco's modular QoS CLI.
Congestion typically occurs when a fast ingress interface feeds a relatively slow egress interface. A common congestion point is a branch-office router with an Ethernet port facing the LAN and a serial port facing the WAN. Users on the LAN segment are generating 10 Mbps of traffic, which is being fed into a T1 with 1.5 Mbps of bandwidth.
Functionally, congestion is defined as filling the transmit ring on the interface (a ring is a special buffer control structure). Every interface supports a pair of rings: a receive ring for receiving packets and a transmit ring for sending packets. The size of the rings varies with the interface controller and with the bandwidth of the interface or virtual circuit (VC). As in the following example, use the show atm vc vcd command to display the value of the transmit ring on a PA-A3 ATM port adapter.
Router# show atm vc 3ATM5/0.2: VCD: 3, VPI: 2, VCI: 2VBR-NRT, PeakRate: 30000, Average Rate: 20000, Burst Cells: 94AAL5-LLC/SNAP, etype:0x0, Flags: 0x20, VCmode: 0x0OAM frequency: 0 second(s)PA TxRingLimit: 10InARP frequency: 15 minutes(s)Transmit priority 2InPkts: 0, OutPkts: 0, InBytes: 0, OutBytes: 0InPRoc: 0, OutPRoc: 0InFast: 0, OutFast: 0, InAS: 0, OutAS: 0InPktDrops: 0, OutPktDrops: 0CrcErrors: 0, SarTimeOuts: 0, OverSizedSDUs: 0OAM cells received: 0OAM cells sent: 0Status: UPCisco IOS software (also referred to as the Layer 3 processor) and the interface driver use the transmit ring when moving packets to the physical media. The two processors collaborate in the following way:
•
The interface sends packets according to the interface rate or a shaped rate.
•
The interface maintains a hardware queue or transmit ring, where it stores the packets waiting for transmission onto the physical wire.
•
When the hardware queue or transmit ring fills, the interface provides explicit back pressure to the Layer 3 processor system. It notifies the Layer 3 processor to stop dequeuing packets to the interface's transmit ring because the transmit ring is full. The Layer 3 processor now stores the excess packets in the Layer 3 queues.
•
When the interface sends the packets on the transmit ring and empties the ring, it once again has sufficient buffers available to store the packets. It releases the back pressure, and the Layer 3 processor dequeues new packets to the interface.
The most important aspect of this communication system is that the interface recognizes that its transmit ring is full and throttles the receipt of new packets from the Layer 3 processor system. Thus, when the interface is congested, the drop decision is moved from a random, last-in, first-dropped decision in the first in, first out (FIFO) queue of the transmit ring to a differentiated decision based on IP-level service policies implemented by the Layer 3 processor.
Service policies apply only to packets stored in the Layer 3 queues. Table 1 illustrates which packets sit in the Layer 3 queue. Locally generated packets are always process switched and are delivered first to the Layer 3 queue before being passed on to the interface driver. Fast-switched and Cisco Express Forwarding-switched packets are delivered directly to the transmit ring and sit in the L3 queue only when the transmit ring is full.
The following example shows these guidelines applied to the show policy-map interface command output. The four key counters are shown in boldface type.
Router# show policy-map interface atm 1/0.1ATM1/0.1: VC 0/100 -Service-policy output: cbwfq (1283)Class-map: A (match-all) (1285/2)28621 packets, 7098008 bytes5 minute offered rate 10000 bps, drop rate 0 bpsMatch: access-group 101 (1289)Weighted Fair QueueingOutput Queue: Conversation 73Bandwidth 500 (kbps) Max Threshold 64 (packets)(pkts matched/bytes matched) 28621/7098008(depth/total drops/no-buffer drops) 0/0/0Class-map: B (match-all) (1301/4)2058 packets, 148176 bytes5 minute offered rate 0 bps, drop rate 0 bpsMatch: access-group 103 (1305)Weighted Fair QueueingOutput Queue: Conversation 75Bandwidth 50 (kbps) Max Threshold 64 (packets)(pkts matched/bytes matched) 0/0(depth/total drops/no-buffer drops) 0/0/0Class-map: class-default (match-any) (1309/0)19 packets, 968 bytes5 minute offered rate 0 bps, drop rate 0 bpsMatch: any (1313)Table 2 defines the counters that appear in the example in boldfaced type.
Without congestion, there is no need to queue any excess packets. When congestion occurs, packets, including Cisco Express Forwarding- and fast-switched packets, might go into the Layer 3 queue. If you use congestion management features, packets accumulating at an interface are queued until the interface is free to send them; they are then scheduled according to their assigned priority and the queueing mechanism configured for the interface.
Normally, the packets counter is much larger than the packets matched counter. If the values of the two counters are nearly equal, then the interface is receiving a large number of process-switched packets or is heavily congested. Both of these conditions should be investigated to ensure optimal packet forwarding.
Routers allocate conversation numbers for the queues that are created when the service policy is applied. The following example shows the queues and related information.
Router# show policy-map interface s1/0.1 dlci 100Serial1/0.1: DLCI 100 -output : mypolicyClass voiceWeighted Fair QueueingStrict PriorityOutput Queue: Conversation 72Bandwidth 16 (kbps) Packets Matched 0(pkts discards/bytes discards) 0/0Class immediate-dataWeighted Fair QueueingOutput Queue: Conversation 73Bandwidth 60 (%) Packets Matched 0(pkts discards/bytes discards/tail drops) 0/0/0mean queue depth: 0drops: class random tail min-th max-th mark-prob0 0 0 64 128 1/101 0 0 71 128 1/102 0 0 78 128 1/103 0 0 85 128 1/104 0 0 92 128 1/105 0 0 99 128 1/106 0 0 106 128 1/107 0 0 113 128 1/10rsvp 0 0 120 128 1/10Class priority-dataWeighted Fair QueueingOutput Queue: Conversation 74Bandwidth 40 (%) Packets Matched 0 Max Threshold 64 (packets)(pkts discards/bytes discards/tail drops) 0/0/0Class class-defaultWeighted Fair QueueingFlow Based Fair QueueingMaximum Number of Hashed Queues 64 Max Threshold 20 (packets)Information reported for each class includes the following:
•
Class definition
•
Queueing method applied
•
Output Queue Conversation number
•
Bandwidth used
•
Number of packets discarded
•
Number of bytes discarded
•
Number of packets dropped
The class-default class is the default class to which traffic is directed, if that traffic does not satisfy the match criteria of other classes whose policy is defined in the policy map. The fair-queue command allows you to specify the number of dynamic queues into which IP flows are sorted and classified. Alternately, routers allocate a default number of queues derived from the bandwidth on the interface or VC. Supported values in either case are a power of two, in a range from 16 to 4096.
Table 3 lists the default values for interfaces and for ATM permanent virtual circuits (PVCs).
Table 4 lists the default number of dynamic queues in relation to ATM PVC bandwidth.
Based on the number of reserved queues for WFQ, Cisco IOS software assigns a conversation or queue number as shown in Table 5.
Example: Matching DSCP Value
The following example shows how to configure the service policy called priority50 and attach service policy priority50 to an interface. In this example, the match dscp command includes the optional ip keyword, meaning that the match is for IPv4 packets only. The class map called ipdscp15 will evaluate all packets entering interface Gigabit Ethernet 1/0/0. If the packet is an IPv4 packet and has a DSCP value of 15, the packet will be treated as priority traffic and will be allocated with bandwidth of 50 kbps.
Router(config)# class-map ipdscp15Router(config-cmap)# match ip dscp 15Router(config)# exitRouter(config)# policy-map priority50Router(config-pmap)# class ipdscp15Router(config-pmap-c)# priority 50Router(config-pmap-c)# exitRouter(config-pmap)# exitRouter(config)# interface fa1/0/0Router(config-if)# service-policy input priority55To match on IPv6 packets only, use the match dscp command without the ip keyword preceded by the match protocol command. Ensure that the class map has the match-all attribute (which is the default).
Router(config)# class-map ipdscp15Router(config-cmap)# match protocol ipv6Router(config-cmap)# match dscp 15Router(config)# exitTo match packets on both IPv4 and IPv6 protocols, use the match dscp command:
Router(config)# class-map ipdscp15Router(config-cmap)# match dscp 15Router(config)# exitAdditional References
Related Documents
Related Topic Document TitleIPv6 supported feature list
"Start Here: Cisco IOS Software Release Specifics for IPv6 Features," Cisco IOS IPv6 Configuration Guide
IPv6 commands: complete command syntax, command mode, defaults, usage guidelines, and examples
Standards
Standard TitleNo new or modified standards are supported by this feature, and support for existing standards has not been modified by this feature.
—
MIBs
MIB MIBs LinkNone
To locate and download MIBs for selected platforms, Cisco software releases, and feature sets, use Cisco MIB Locator found at the following URL:
RFCs
Technical Assistance
Feature Information for Implementing QoS for IPv6
Table 6 lists the features in this module and provides links to specific configuration information.
Use Cisco Feature Navigator to find information about platform support and software image support. Cisco Feature Navigator enables you to determine which software images support a specific software release, feature set, or platform. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
Note
Table 6 lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.
Table 6 Feature Information for Implementing QoS for IPv6
Feature Name Releases Feature InformationIPv6 Quality of Service (QoS)
Cisco IOS XE Release 2.1
QoS features supported for IPv6 environments include packet classification, queueing, traffic shaping, WRED, class-based packet marking, and policing of IPv6 packets.
This entire document provides information about this feature.
IPv6 QoS—MQC Packet Marking/Re-marking
Cisco IOS XE Release 2.1
Class-based marking allows you to set the IPv6 precedence and DSCP values for traffic management.
The following sections provide information about this feature:
•
Implementation Strategy for QoS for IPv6
•
Policies and Class-Based Packet Marking in IPv6 Networks
IPv6 QoS—MQC Packet Classification
Cisco IOS XE Release 2.1
The modular QoS CLI allows you to define traffic classes, create and configure traffic policies (policy maps), and then attach those traffic policies to interfaces.
The following sections provide information about this feature:
•
Implementation Strategy for QoS for IPv6
•
Packet Classification in IPv6
IPv6 QoS—MQC Traffic Policing
Cisco IOS XE Release 2.1
Configuration or command usage for policing are the same in IPv6 environments as for IPv4 environments.
The following sections provide information about this feature:
•
Implementation Strategy for QoS for IPv6
IPv6 QoS—MQC Traffic Shaping
Cisco IOS XE Release 2.1
Traffic shaping allows you to limit the packet dequeue rate by holding additional packets in the queues and forwarding them as specified by parameters configured for traffic shaping features.
The following sections provide information about this feature:
•
Implementation Strategy for QoS for IPv6
IPv6 QoS—MQC WRED-Based Drop
Cisco IOS XE Release 2.1
WRED implements the RED-based drop policy on the packets that are likely to overflow the limits of CBWFQ.
The following sections provide information about this feature:
•
Implementation Strategy for QoS for IPv6
IPv6 QoS—Queueing
Cisco IOS XE Release 2.1
Class-based and flow-based queueing are supported for IPv6.
The following sections provide information about this feature:
•
Implementation Strategy for QoS for IPv6
•
Congestion Management in IPv6 Networks
Cisco and the Cisco Logo are trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and other countries. A listing of Cisco's trademarks can be found at www.cisco.com/go/trademarks. Third party trademarks mentioned are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (1005R)
Any Internet Protocol (IP) addresses used in this document are not intended to be actual addresses. Any examples, command display output, and figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses in illustrative content is unintentional and coincidental.
© 2002-2011 Cisco Systems, Inc. All rights reserved.
Feedback