mls qos
! -- turns QOS on for the whole switch
mls qos map cos-dscp 0 8 16 24 32 46 48 54
! -- maps COS to DSCP using the new standards of CS3 for signaling.
interface fastethernet 5/1
! -- the interface of course
switchport mode access
! -- disable trunking
switchport voice vlan 111
! -- enable trunking when CDP detects a phone. This is called DTP or Dynamic Trunking Protocol.
switchport access vlan 11
! -- set the VLAN for the phones built in switch for the PC on the other side of the phone or for the PC when no phone is detected.
spanning-tree portfast
! -- disable the slow detection of loops with spanning tree. This is a single endpoint and should never have a switch connected to it.
mls qos trust cos
! -- trust the COS of the traffic from the phone
mls qos trust extend cos 0
! -- mark all traffic from the PC to COS 0 no matter what the PC says it should be.
------------------------------
In depth configuration of a "full trust" policy for phones connected to a 6500:
Excerpt below taken from: Configuring Access Layer QoS for Voice on Cisco Catalyst 6500 with Cisco IOS SW
CONFIGURATION OVERVIEW
This sample configuration implements one of several methods to provide QoS at the access layer of an IP Communications deployment. Specifically this configuration is limited to a "full trust" policy on the switch interface. The "full trust" policy assumes a Cisco IP Phone (from Table 3) will be connected to the port to which this policy is applied, as the IP phone is responsible for remarking the PC traffic to CoS = 0. If a PC is instead directly connected to an interface with "full trust" policy, and its traffic is untagged, the switch marks the traffic CoS = 0. However, if the directly connected PC is marking its traffic with a CoS value, the switch accepts it because the port is configured to trust any received CoS. A "conditional trust" policy may be used as an alternative to reduce this possible risk. Though supported on several other Cisco Catalyst switch platforms, Cisco IOS Software for the Cisco Catalyst 6500 does not currently support the mls qos trust device cisco-phone command, which is the simplest method to implement a "conditional-trust" policy. Please see other Cisco documentation for more information regarding "conditional trust" policy configuration.
For the Cisco Catalyst 6500 to act as an access switch for a Cisco 7940/7960/7970 IP phone + PC, using a "full trust" policy, the following is required:
1. Enable switchwide QoS.
2. Configure interfaces used for IP phones:
• Enable trust so the switch accepts the phone class-of-service (CoS) markings.
• Extend the trust boundary to the access port on the IP phone and mark PC traffic as CoS = 0.
• Enable input queue scheduling.
• Configure CoS-to-queue mapping.
• Configure output scheduling.
• Configure CoS-to-differentiated services code point (DSCP) mapping.
• Optionally configure a policy for additional application traffic marking or policing (not covered).
3. Configure the uplink interfaces to the distribution switch:
• Enable trust to accept markings from the distribution switch. This can be either CoS or DSCP trust.
• Enable input queue scheduling.
• Configure CoS-to-queue mapping.
• Configure output scheduling.
• Verify and configure CoS-to-DSCP mapping.
• Optionally configure a policy for additional application traffic marking or policing (not covered).
ENABLING QoS ON THE SWITCH
To enable QoS on the access layer Cisco Catalyst 6500, do the following:
Enable switchwide QoS:
6509-Access(config)#mls qos
CONFIGURING AN INTERFACE FOR IP PHONE + PC
As stated previously, the access port configuration depends on the module in use. All of the 10/100 Ethernet series modules in Tables 1 and 2 have 1Q4T receive and 2Q2T transmit queue architectures. For modules in Table 1 the port is configured to trust the IP phone and not to trust the PC attached to the phone. For modules in Table 2 a workaround is used because these modules are unable to "trust" the CoS of incoming traffic. The workaround consists of using an access-control-list (ACL) policy to retain the CoS of the traffic. An access port also is configured to use output scheduling through multiple transmit queues.
To configure the interface for a module in Table 1,do the following:
Step 1. Select a port to configure.
6509-Access(config)#interface fastethernet 5/1
Step 2. Configure the port as a Layer 2 port in the access mode.
6509-Access(config-if)#switchport
6509-Access(config-if)#switchport mode access
Step 3. Define the voice VLAN.
6509-Access(config-if)#switchport voice vlan 111
Step 4. Define the data VLAN.
6509-Access(config-if)#switchport access vlan 11
Step 5. Configure the port as a host port.
6509-Access(config-if)#spanning-tree portfast
Step 6. Enable inline power.
6509-Access(config-if)#power inline auto
Step 7. Accept the incoming Layer 2 CoS. This lets the switch accept the phone marking of voice traffic at CoS = 5 and voice control traffic at CoS = 3 and enables input scheduling.
6509-Access(config-if)#mls qos trust cos
Step 8. Instruct the IP phone to rewrite the PC traffic to CoS = 0.
6509-Access(config-if)#mls qos trust extend cos 0
Step 9. Place CoS = 1 in queue 1 threshold 1.
6509-Access(config-if)#wrr-queue cos-map 1 1 1
Step 10. Place CoS = 0 in queue 1 threshold 2.
6509-Access(config-if)#wrr-queue cos-map 1 2 0
Step 11. Place CoS = 2, 3, 4, 6, and 7 in queue 2 threshold 1.
6509-Access(config-if)#wrr-queue cos-map 2 1 2 3 4 6 7
Step 12. Place CoS = 5 in queue 2 threshold 2.
6509-Access(config-if)#wrr-queue cos-map 2 2 5
Step 13. Modify the CoS-to-DSCP mapping. The recommended settings are DSCP = CS3 (24) for voice-over-IP (VoIP) control and DSCP = EF (46) for VoIP media traffic. To map the Layer 2 CoS correctly to these DSCP values, you must modify the switch default CoS-to-DSCP mappings. All CoS are shown though only 0, 3, and 5 are directly related to IPT.
6509-Access(config)#mls qos map cos-dscp 0 8 16 24 32 46 48 54
Note: CoS 3 and 5 are the 4th and 6th values, respectively.
To configure an interface on the modules listed in Table 2 do Steps 1 through 13 plus configure the following additional commands:
Step 1. Create an access list to match all traffic.
6509-Access(config)#access-list 100 permit ip any any
Step 2. Create a class for this traffic.
6509-Access(config)#class-map TRUST_COS_CLASS
6509-Access(config-cmap)#match access-group 100
6509-Access(config-cmap)#exit
Step 3. Create a policy to trust the CoS for the traffic in the class.
6509-Access(config)#policy-map TRUST_COS_POLICY
6509-Access(config-pmap)#class TRUST_COS_CLASS
6509-Access(config-pmap-c)#trust cos
6509-Access(config-pmap-c)#exit
Step 4. Apply the policy to the interface.
6509-Access(config)#int fa5/1
6509-Access(config-if)#service-policy input TRUST_COS_POLICY
CONFIGURING THE UPLINK TO THE DISTRIBUTION SWITCH
After you configure the access port queuing, you must also configure the uplink interfaces to the distribution, or core, switch. This involves enabling trust for Ethernet frames coming into the trunk port, enabling output scheduling, and manipulating the CoS-to-queue mapping entrance criteria, mapping the CoS values to the appropriate DSCP value.
This section includes information for two of the six types of queue structures: 1P2Q2T and 2Q2T.
Configuring an Uplink Port
Step 1. Accept incoming DSCP markings if incoming traffic is known to be properly marked at Layer 3. This is the preferred method.
6509-Access(config-if)#mls qos trust dscp
Alternate Step 1. Accept incoming CoS markings if incoming traffic is known to be properly marked at Layer 2 only.
6509-Access(config-if)#mls qos trust cos
Optional Step 2 (required when trusting CoS) Verify CoS-to-DSCP mapping. This should have been set in Step 10 in the interface configuration. Map CoS = 5 to DSCP = EF (46) and CoS = 3 to DSCP = CS3 (24).
6509-Access(config)#mls qos map cos-dscp 0 8 16 24 32 46 48 54
Configuring Transmit Queues
All CoS = 5 traffic (VoIP media) is placed into the egress interface priority queue on 1P2Q2T interfaces and queue 2 threshold 2 on 2Q2T interfaces by default upon enabling switchwide QoS. To follow QoS best practices, additional configuration of the CoS queue admission rules is needed to ensure that all other CoS traffic, and most importantly CoS = 3 (VoIP control), is placed into the correct queue. Separate configurations follow for 1P2Q2T and 2Q2T interfaces. For configuration of different interface queue structures, refer to other Cisco Catalyst 6500 QoS documentation.