Mitel Phone DHCP Configuration with Multiple VLANs

Typically it is always recommended to segregate VoIP traffic from your typical data traffic.  Recently, however, I was part of a Mitel 3300 phone system installation that was taking a different course.  The techs with the local phone company doing the installation were not familiar with this concept and wanted to actually statically address the phones as well.  Not cool, scalable or best practice particularly as the network grows and changes.

The network looked something like the image above in the simplest sense.  The red VLAN was for data and the blue for voice.  The link to the PC was delivered through the built in switch port in the phone.  The blue VLAN to the phone is tagged traffic while the red is not.  To complicate matters a bit further the DHCP server was not a Windows box but rather Linux.   The details ended up looking something like this:

VLAN10 (red): 192.168.10.0/24  Data Network
VLAN11 (blue):192.168.11.0/24  Voice Network
The switch is a Layer 3 switch that routes traffic between the two VLANs.
Mitel Call Controller: 192.168.11.10
DHCP Server: 192.168.10.10

To understand the dynamic configuration of the Mitel phones you have to first understand how the boot.  Simply put it goes like this:

  1. POE powers up the phone.
  2. Phone gets DHCP information via native VLAN (VLAN 10)
  3. Phone sets those settings and restarts.
  4. If the configuration specified VLAN information the phone now comes up tagging traffic to that VLAN.
  5. The phone gets DHCP information in its new VLAN (VLAN 11), connects to the controller and is ready to make calls.

I may have greatly simplified that but the key points have been made.  Now, let’s start overcoming the problems presented here.

First and foremost let’s configure our Linux DHCP server.  I am using Centos dhcpd in this example.  Open the configuration file for dhcpd and setup similar to my example below.  I have typical IP, mask, gateway, and DNS settings in place.  The Mitel options are the only real customized settings.  Option 43 gets the phone all the information it needs and should be sent to the phone each time it makes a DHCP request.

# Mitel IP Phone Config option#
option MITEL_43 code 43 = string;
 
log-facility local6;
default-lease-time 7200;
server-name sandbox1;
option domain-name-servers 192.168.10.10;
option domain-name "test.net";
 
#data network / VLAN 10
subnet 192.168.10.0 netmask 255.255.255.0 {
    option routers 192.168.10.1;
    option ntp-servers 192.168.10.10;
    range 192.168.10.100 192.168.10.200;
    option MITEL_43 = "id:ipphone.mitel.com;sw_tftp=192.168.11.10;call_srv=192.168.11.1;vlan=11;l2p=1v6s6;dscp=46v46s26;";
}
 
#voice network / VLAN 11
subnet 192.168.11.0 netmask 255.255.255.0 {
    option routers 192.168.11.1;
    option ntp-servers 192.168.10.10;
    range 192.168.11.100 192.168.11.200;
    option MITEL_43 = "id:ipphone.mitel.com;sw_tftp=192.168.11.10;call_srv=192.168.11.10;vlan=11;l2p=1v6s6;dscp=46v46s26;";
}

With this configuration in place the phones, when starting up initially, get the VLAN information and restart.  The phone then comes back up on the the Voice VLAN.  Since the DHCP server is on a different subnet on a different VLAN there is one more piece of configuration that is needed for the phones second DHCP request to be successful.   The layer 3 switch will need an IP helper address added to the VLAN interface the phones connect to.

interface Vlan11
  ip address 192.168.11.1 255.255.255.0
  ip helper-address 192.168.10.10

Also, the interfaces phones connect to will need to be configured as trunks to allow tagged traffic for phones on VLAN 11 and untagged traffic for PCs on VLAN 10.  The interface configuration worked out like this:

interface FastEthernet0/1
  switchport mode trunk
  switchport trunk allowed vlan add 11
  switchport trunk native vlan 10

This will allow the second DHCP request to get routed to the DHCP server.   The phone should then be getting its configuration as needed.  To troubleshoot the best course of action is to verify DHCP requests are traversing the network properly.  Also, check the DHCP servers logs to verify the phones are getting two completed requests, one in each VLAN.

Update Nov 26, 2012:

I read back over this writeup today to get a copy of the Mitel specific string for an implementation and figured I would add some material here about my latest experience. This time I installed a similar setup but with the Cisco router acting as the DHCP server. The DHCP configuration portion of the IOS config looks something like this (I matched IP information to the example above of course:

ip dhcp excluded-address 192.168.10.1 192.168.10.99
ip dhcp excluded-address 192.168.10.201 192.168.10.254
ip dhcp excluded-address 192.168.11.1 192.168.11.99
ip dhcp excluded-address 192.168.11.201 192.168.11.254
!
ip dhcp pool Data_subnet
   network 192.168.10.0 255.255.255.0
   default-router 192.168.10.1
   dns-server 192.168.10.10
   option 43 ascii id:ipphone.mitel.com;sw_tftp=192.168.11.10;call_srv=192.168.11.1;vlan=11;l2p=1v6s6;dscp=46v46s26;
!
ip dhcp pool Mitel_Phone_Subnet
   network 192.168.11.0 255.255.255.0
   default-router 192.168.11.1
   dns-server 192.168.10.10
   option 43 ascii id:ipphone.mitel.com;sw_tftp=192.168.11.10;call_srv=192.168.11.1;vlan=11;l2p=1v6s6;dscp=46v46s26;
!

The configuration assumes you already have the proper IP settings on each VLAN interface facing the data and phone VLANs. As you can see I specified a DHCP pool for each subnet and carved out the unallocated address space with the dhcp exclude commands. The Option 43 is a custom option in the Cisco IOS as it was in Linux and achieved with the “option 43 ascii…” one liner.

I hope this has been helpful! Feel free to comment and check back if you have any questions.

Additional Mitel Documentation on this can be found HERE

This entry was posted in Networking, Telephony and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.