cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Announcements

Welcome to the Cisco Small Business Community

Have a question? Click on a topic board below to get started in the community.
Get the latest news in this issue of the Cisco Small Business Monthly Newsletter

SPA9000 Voice system with QOS (separate VLAN and DSCP) Example

8906
Views
0
Helpful
2
Comments

Sample network using Cisco Small Business Switch and Router.

Network_2.bmp

In my model (SMALL):

Voice VLAN:

SPA IP Phones in ports 1,2, and 3

SPA9000 in port 4

SPA400s in ports 5 & 6

Data VLAN:

Data clients for the SMB in ports 7-24  (one of which runs a SYSLOG server)

GE Uplink (G1) connected to Router (802.1q trunk)

VLAN Assignments

We want to place SPA Phones and SPA9000 and SPA400 in a VOICE VLAN, which we are calling in our examnple VLAN 10 within the SMB in this reference design.  This configuration also supports plugging a data client in the back of a SPA9x2 phone and having it get its IP address from VLAN 1 (untagged). This VLAN is created on both the Switch and the Router and the two devices are connected with an 802.1q trunk.. The DHCP Scopes for the VLANs resides on the router.  

Ethernet ports 7-24 have identical configurations, they are members of the default VLAN1 which by default are left as all untagged members of this VLAN.

Port G1 on the switch is the 802.1q Trunk to the Router, hence it must carry Tagged Traffic for VLAN 10 and untagged traffic for VLAN1.

Network_3.bmp

    

Regarding the PVID and MODE settings on the switch, this identifies the VLAN assigned to untagged frames on that port.  The mode dictates its frame handling capability.   Slightly different from usual Cisco ‘mode’ terminology is the use of ‘General” for ports carrying both tagged and untagged traffic which is either VLAN aware or unaware.  General is sometimes referred to also as ‘hybrid’ mode when uploading the configuration CLI from the switch.

Ports 1-4:     PVID = 1

                       Mode General

Ports 5-6:     PVID = 10

                       Mode General

Ports 7-24: PVID = 1

                       Mode Access

Port G1:       PVID = 1

                       Mode Trunk

Spanning Tree Protocol and Port Fast

LVS phones rely on multicast for discovering and communicating with the SPA9000. Since multicast is used by the phones during initialization, it’s important that ‘PORTFAST’ be enabled on any port connected to an LVS device. This will eliminate the need for the configured switch port from having to transition through the listening and learning STP states each time a phone restarts or is power cycled, which can cause the initialization multicasts to be dropped by the switch, and the phones fail to find the SPA9000.  This would be undesirable as the phones would fall out of synchronization with the SPA9000.

Simply disabling Spanning Tree Protocol from running on all SPA devices switch (Phones, IP-PBX, and GW) and enabling PORTFAST is the recommendation which must be followed.  I included this same configuration on the Uplink (G1) port to the router.

Router

The router plays a key role in the L2 switch fabric as it includes the VLANs (via 802.1q trunk port) and DHCP scopes configured to perform IP address management of the IP Phones and IP-PBX.

VLAN

The Router should be set with its VLAN 1 (Default used for data) and VLAN 10 (Voice) with Inter-VLAN routing enabled.

VLAN 1: 192.168.1.1

VLAN 10: 192.168.30.1

The router has switch ports (1..4) and a WAN Uplink port (discussed in WAN interconnection section)  We recommend the following configuration:

Port 1-3: Untagged VLAN1

Port 4: Untagged VlAN1; Tagged VLAN10; PORT MODE = TRUNK

Network_4.bmp

Network_5.bmp

SPA9000

The SPA9000 offers a VLAN association configuration option on its GUI, so we configure it for the VOICE VLAN 10 and it will send TAGGED Frames indicating this in its DHCP Discover messages.  We don’t need to worry about untagged devices behind a SPA9000, so the PVID of the SPA9000 port really doesn’t matter much, but configuring its switch port like a phone allows you to plug phones and SPA9000 into any VOICE VLAN port. 

Network_6.bmp

SPA400

In the case of the SPA400, it doesn’t offer administration of the VLAN, so we must exclude it from VLAN1 and place it in VLAN 10 on the switch port used for connection.  This allows communicate with the SPA9000 via Layer 2 on the switch itself. 

SPA9xx IP Phones

The SPA Phones offer an administrative GUI option to allocate the phone to the Voice VLAN 10 (they all default to VLAN 1).   In the case of the SPA9x2 models, switch ports must be considered since non voice data clients (like PCs) may be plugged in (especially if only one CAT5 Ethernet drop is available per office/cube location).

With these settings, the SPA Phones (all models) will send DHCP Discover messages with the Frame ‘Ether Type’ set to 0x8100, which indicates ‘802.1q TAGGED Frame’ with the TAG parameter set to VLAN 10.

Data clients plugged into the phone switch ports will send DHCP Discover messages UNTAGED with normal ‘Ether Type’ = 0x0800 (normal untagged frame)  and be placed in the PVID of the switch port (in our configuration, VLAN1).

Network_7.bmp

QoS for DSCP

We will be using L3 IP based DSCP for SIP and RTP Media packets.  It is good to understand what to look for in the traces so you can see if its set correctly.  So first see the basic description of values you will see in the traces and the different network element GUIs:

  IP DSCP  0x68 (hex) is 104 decimal

        seen as 0110 1000

            where dscp (bold) is 011010 which is 1a (hex) or 26 decimal

    IP RTP  0xb8 (hex) is 184 decimal

        seen as 1011 1000

            where dscp (bold) is 10111 which is 2e (hex) or 46 decimal

It helps to recognize all above values since the router GUI presents decimal values for DSCP but the Wire shark trace will show you hex. 

First,  set the QOS Trust Mode to DSCP (other options are Port or COS, just FYI). 

Network_8.bmp

DSCP will use 6 bits in TOS header which marks and maps (to Queue) as follows:

SIP DSCP 1A (hex) = 26 (dec) - Queue 3

RTP DSCP 2E (hex) = 46 (dec) - Queue 4

Network_9.bmp

L2 Switch

IP Precedence / DSCP

We want to use Differentiated Services Code Point (DSCP) markings to determine Packet priority through the network.  The switch will support either L2 COS or L3 QoS.  We recommend L3 DSCP.  This enables the switch to mark the packets which will be classified and prioritized by the router.

On the switch, under the QoS Tab, you will want to enable DSCP:

IP Precedence/DSCP Priority Status = DSCP

Network_10.bmp

SPA9000

In the reference architecture, we are using a Customer Premises based IP-PBX, and it is the Linksys SPA9000.   The SIP trunk SP I am using uses SIPConnect (see SIP Forum definition) to perform the SIP Register for all DIDs assigned to all IP Phones at the customer Premises to the SIP Trunk Service Provider.

The SPA9000 has up to 4 “lines” each of which can be used to connect to a separate SIP Trunk using SIP Connect, or other types of connections (Local Voice Mail, FXO Gateway to the PSTN included).

Shown below is Line 1.  The User ID and SIP Proxy and Outbound proxy are erased, to protect the provider’s identity and the test account.

Setting Line 1 as sown in this section should allow the line to REGISTER with the SP (as seen Under the SPA9000 INFO Tab:

Network_11.bmp

And Under the SPA9000 VOICE: SIP Tab, we also set up the NAT so we can have bi directional communications with the SIP Trunk over a public internet connection, as I have in this reference architecture.

The IP address of my WAN router is the 12.19.xx.yy address shown in the configuration GUI.

Network_12.bmp

Network_13.bmp

Comments
Beginner

Thanks Steve, this is truly awesome...  you and your colleagues that maintain this community have given me yet another reason why I love to promote and support Cisco SMB products!

Thanks very much.  Happy you found it useful.  I once had to demo that system myself and asked alot of questions of the BU (very smart people there) and payed it forward, so to speak, by writing it all down.  I'm no expert, but that is the way I got it to work ;-)