Wednesday, December 7, 2011

Voice VLAN QoS Policy

       The following is a basic QoS Policy for a branch office router to prioritize voice traffic . The assumption made is that the voice traffic is marked at source (i.e. ip phones). This is an example of a LLQ (Low Latency Queue) in which voice traffic is placed in a priority queue and all other traffic is placed in a WFQ (Weighted Fair Queue). DMVPN is being used for connectivity back to the main office so we have to use the qos pre-classify command to ensure QoS is applied before data is encrypted and markings on the tunneled packets are preserved. Congestion management and avoidance is implement using a WFQ (Weighted Fair Queue) and WRED (Weighted Random Early Discard) for all non voice traffic.

class-map match-all VOICE
match ip dscp ef
class-map match-any CALL-SIGNALING
match ip dscp cs3
class-map match-any CRITICAL-DATA
match ip dscp cs6
match ip dscp af21 af22
match ip dscp cs2
policy-map WAN-EDGE
class VOICE

priority 256
bandwidth 32
bandwidth 64
class class-default


interface Tunnel0
qos pre-classify

interface Dailer0
bandwidth 1500
service-policy output WAN-EDGE

Voice VLAN
       If you are running Cisco IP Telephony on your network you will most likely be using the Voice VLAN feature of your Catalyst switches. What this allows is for the use of one port on your switch to connect an IP Phone and a PC through your IP Phone.
       Configuration is pretty simple as show below where voice vlan is 200 and vlan that our PC will connect to is 100.

interface FastEthernet0/1
switchport access vlan 200
switchport voice vlan 100

Note: When you enable the voice vlan on a port spanning-tree it is automatically set to port fast.

       If you want to learn more about the Voice VLAN the following are some good references.

       The voice VLAN confuses the hell out of me. In our production network we assign an access VLAN and a separate voice VLAN to each user switchport:

int f0/1
switchport access vlan 100
switchport voice vlan 200

       My understanding is that this is a trunk. We’re trunking VLANs 100 and 200 to the IP phone. But if you do a ‘show interfaces trunk’ command, the ports configured for a voice and data VLAN do not show up as trunks. And if we look at the switchport setting for the port, we can also verify that it is not trunking(output is from a 3640 with a NM-16ESW module emulated via Dynamips):

sw1(config-if)#do sh int f0/1 switchport
Name: Fa0/1
Switchport: Enabled
Administrative Mode: static access
Operational Mode: static access
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: native
Negotiation of Trunking: Disabled
Access Mode VLAN: 100 (VLAN0100)
Trunking Native Mode VLAN: 1 (default)
Trunking VLANs Enabled: ALL
Trunking VLANs Active: 100
Priority for untagged frames: 0
Override vlan tag priority: FALSE
Voice VLAN: 200
Appliance trust: none

The 3750 configuration guide even goes so far as to warn you:

Note Voice VLAN is only supported on access ports and not on trunk ports, even though the configuration is allowed.

       Also, I’ve been told “No silly little man, those aren’t trunk links.” Okay. Then how the hell are we passing two separate VLANs between the IP phone and the switchport


Post a Comment