Cisco and trunking voice over fiber

I've been working on a lot of VoIP lately so you can expect this blog to focus on that quite a bit. Most of what I'm doing is with Cisco's VoIP gear including Call Manager (CM) and Call Manager Express (CME). Cisco's site is excellent in terms of technical support, but sometimes it's lacking when you are trying to do something a little different from "The Cisco Way". For instance, how do you make Cisco VoIP phones work without configuring your switch ports with auxlvan or voice vlan commands? Setting it up with a simple 802.1q trunk doesn't work. Turns out, the Cisco VoIP phones are specifically looking for auxvlan info in the CDP message. Pure trunking doesn't supply that. We had to manually configure the Admin VLAN on the phone itself. Yuck.

You might ask why this is even necessary. Well, fiber ports don't support the auxvlan command. So if you are extending VoIP service to phones that are attached via fiber, you must use strict 802.1q tagging. The IOS commands are:

switchport trunk encapsulation dot1q
switchport trunk native vlan 2
switchport trunk allowed vlan 1,2,4-4094
switchport mode trunk

In this test case, vlan 1 is the voice vlan and vlan 2 is the data. Making vlan 2 native makes it untagged, which is what the phone is looking for when passing traffic to the PC port on the phone. Again, this requires the vlan to be manually set on the phone.