Saturday, August 31, 2013

Configuring CUCM Express as a TFTP Server

When a Cisco IP phone successfully powers up, it will use CDP to determine the voice VLAN it should belong to and then request and receive, at a minimum, an IP address/subnet mask and gateway IP address via DHCP. It also must have the all – important option 150 IP address, which is the location of the TFTP server. The TFTP server is responsible for delivering Cisco phone firmware and configuration files to the phones when requested. The TFTP server can be located anywhere on your network, but in smaller environments, the CUCM Express router is configured for TFTP. This is the first server the IP phone gets its information from. One group of files that our Cisco IP phone will request is its firmware, which is specifically tailored to the type of Cisco phone hardware. If you are using your CUCM Express router to handle TFTP server functionality, you must configure the IOS to serve up the firmware that your phones will request. Because we’ve downloaded and extracted the .tar CUCM Express software, the extraction process neatly placed all the necessary firmware files needed by most phones into an easy - to - understand directory structure. All you need to do is figure out which Cisco phones you will want to allow on your network and then configure the router to serve the appropriate files. You can see all of the firmware file directories by issuing the dir flash:/phone command:

Directory of flash:/phone/

  47 drw- 0 Aug 31 2013 18:18:28 +00:00 7945-7965
  56 drw- 0 Aug 31 2013 18:18:56 +00:00 7937
  58 drw- 0 Aug 31 2013 18:19:24 +00:00 7914
  60 drw- 0 Aug 31 2013 18:19:26 +00:00 7906-7911
  69 drw- 0 Aug 31 2013 18:19:52 +00:00 7920
  71 drw- 0 Aug 31 2013 18:19:58 +00:00 7931
  79 drw- 0 Aug 31 2013 18:20:24 +00:00 7942-7962
  88 drw- 0 Aug 31 2013 18:28:46 +00:00 7921
  96 drw- 0 Aug 31 2013 18:29:30 +00:00 7940-7960
  101 drw- 0 Aug 31 2013 18:29:38 +00:00 7970-7971
  110 drw- 0 Aug 31 2013 18:30:06 +00:00 7975
  118 drw- 0 Aug 31 2013 18:30:34 +00:00 7941-7961

511664128 bytes total (395001856 bytes free)

Let’s assume that we are going to be configuring Cisco 7945, 7965, and 7970 phones in our environment. Therefore, we need to configure our TFTP server to offer all of the files within the flash:/phone/7945 - 7965 and flash:/phone/7970 - 7971 directories. Note that some of the firmware files work for multiple phones. For example, the firmware files required by the Cisco 7945 are the same as those required by the 7965. This is because the phones are essentially identical except for the number of extension buttons they have. The 7945 has four extension buttons, whereas the 7965 has six. Configuring the Cisco CUCM Express router to serve as a TFTP server for the firmware files is quite simple. Each firmware file needs to have its own tftp-server flash:/phone/ < firmware_file > command. Also note that because our CUCM Express files are organized with a directory structure, we must provide a directory alias for the Cisco phones. Remember that Cisco phones are unintelligent devices for the most part. They know only the name of the firmware files and not where they are located. Because we’ve organized our CUCM Express software into directories, we must create aliases so that when the Cisco phone asks for a file, it knows which subdirectory the file is located in. Let’s use the 7945 - 7965 phone firmware files as an example. We’ll first run the dir flash:/phone/7945 - 7965 command to see what firmware files those specific phones will require:

Router# dir flash:phone/7945-7965

Directory of flash:phone/7945-7965/
  48 -rw- 2496963 Aug 31 2013 18:26:30 +00:00 apps45.8-3-2-27.sbn
  49 -rw- 585536 Aug 31 2013 18:26:34 +00:00 cnu45.8-3-2-27.sbn
  50 -rw- 2453202 Aug 31 2013 18:26:44 +00:00 cvm45sccp.8-3-2-27.sbn
  51 -rw- 326315 Aug 31 2013 18:26:46 +00:00 dsp45.8-3-2-27.sbn
  52 -rw- 555406 Aug 31 2013 18:26:48 +00:00 jar45sccp.8-3-2-27.sbn
  53 -rw- 638 Aug 31 2013 18:26:50 +00:00 SCCP45.8-3-3S.loads
  54 -rw- 642 Aug 31 2013 18:26:50 +00:00 term45.default.loads
  55 -rw- 642 Aug 31 2013 18:26:52 +00:00 term65.default.loads

These phones will need all eight files to fully function properly. To offer up these files for downloading to the phones, we need to configure the following:
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#tftp-server flash:/phone/7945-7965/apps45.8-3-2-27.sbn alias apps45.8-3-2-27.sbn
Router(config)#tftp-server flash:/phone/7945-7965/cnu45.8-3-2-27.sbn alias cnu45.8-3-2-27.sbn
Router(config)#tftp-server flash:/phone/7945-7965/cvm45sccp.8-3-2-27.sbn alias cvm45sccp.8-3-2-27.sbn
Router(config)#tftp-server flash:/phone/7945-7965/dsp45.8-3-2-27.sbn alias dsp45.8-3-2-27.sbn
Router(config)#tftp-server flash:/phone/7945-7965/jar45sccp.8-3-2-27.sbn alias jar45sccp.8-3-2-27.sbn
Router(config)#tftp-server flash:/phone/7945-7965/SCCP45.8-3-3S.loads alias SCCP45.8-3-3S.loads
Router(config)#tftp-server flash:/phone/7945-7965/term45.default.loads alias term45.default.loads
Router(config)#tftp-server flash:/phone/7945-7965/term65.default.loads alias term65.default.loads
Router(config)#

We’ve now successfully configured our CUCM Express router to serve up firmware files for the Cisco 7945 and 7965 phones using TFTP. Let’s go ahead and finish off this example by configuring the router to serve up firmware files for the Cisco 7971 phones. First we look in the phone directory for the 7970 and 7971 phones:

Router# dir flash:/phone/7970-7971

Directory of flash:/phone/7970-7971/
  102 -rw- 2494499 Aug 31 2013 18:29:46 +00:00 apps70.8-3-2-27.sbn
  103 -rw- 547706 Aug 31 2013 18:29:48 +00:00 cnu70.8-3-2-27.sbn
  104 -rw- 2456051 Aug 31 2013 18:29:58 +00:00 cvm70sccp.8-3-2-27.sbn
  105 -rw- 530601 Aug 31 2013 18:30:00 +00:00 dsp70.8-3-2-27.sbn
  106 -rw- 538527 Aug 31 2013 18:30:04 +00:00 jar70sccp.8-3-2-27.sbn
  107 -rw- 638 Aug 31 2013 18:30:06 +00:00 SCCP70.8-3-3S.loads
  108 -rw- 642 Aug 31 2013 18:30:06 +00:00 term70.default.loads
  109 -rw- 642 Aug 31 2013 18:30:06 +00:00 term71.default.loads

511664128 bytes total (395001856 bytes free)

Now we configure IOS to begin serving up these files using TFTP:

Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#tftp-server flash:/phone/7970-7971/apps70.8-3-2-27.sbn alias apps70.8-3-2-27.sbn
Router(config)#tftp-server flash:/phone/7970-7971/cnu70.8-3-2-27.sbn alias cnu70.8-3-2-27.sbn
Router(config)#tftp-server flash:/phone/7970-7971/cvm70sccp.8-3-2-27.sbn alias cvm70sccp.8-3-2-27.sbn
Router(config)#tftp-server flash:/phone/7970-7971/dsp70.8-3-2-27.sbn alias dsp70.8-3-2-27.sbn
Router(config)#tftp-server flash:/phone/7970-7971/ jar70sccp.8-3-2-27.sbn alias jar70sccp.8-3-2-27.sbn
Router(config)#tftp-server flash:/phone/7970-7971/SCCP70.8-3-3S.loads alias SCCP70.8-3-3S.loads
Router(config)#tftp-server flash:/phone/7970-7971/term70.default.loads alias term70.default.loads
Router(config)#tftp-server flash:/phone/7970-7971/term71.default.loads alias term71.default.loads
Router(config)#

That’s all there is to it! At this point, if you were to add one of these phones to your network, it would receive all the necessary IP information and download the phone firmware files from the TFTP server. The phone will not register to the CUCM Express, however. It is still missing vital configurations that must be set up on the CUCM Express for the registration process to occur.

Configuring Voice VLANs

When it comes to configuring a separate VLAN for voice traffic, the process of configuration and VLAN creation is exactly the same whether traffic is going router-to-switch or switch-to-switch. The voice VLAN configuration differs when you want to use Cisco IP phones that incorporate a data port on the phone for PC connections. Many Cisco mid - and high - range phones such as the 7945G give users the ability to plug a PC into an Ethernet port on the phone to provide network connectivity. The phone essentially becomes a three-port switch at that point. One port connects the phone to the access-layer switch, the second (virtual) port is for voice traffic to the phone, and the third port is to connect to a PC for standard data transport. Figure below shows how a PC is plugged directly into the phone, which is essentially trunked with both a voice and data VLAN.


As you can see, the connection between the switch and the Cisco phone is an 802.1Q trunk link. It is necessary to have a VLAN trunk because we have our voice and data separated on two different VLANs. When configuring the VLAN trunk on the switchport that connects to the phone, we use a slightly different method. The Cisco IOS has a unique command to identify a VLAN as a voice VLAN. The command is switchport voice vlan. Even though the switchport command doesn’t specifically reference 802.1a, in all actuality, this trunk link between our switch and the Cisco phone is not a full-pledged 802.1Q trunk. Instead, the Cisco switch and Cisco IP phone use CDP to implement this quasi-trunk. The VLAN that is configured the voice VLAN is marked with an 802.1Q tag, while the data VLAN is considered to be the native VLAN and is left unmarked. This VLAN trunk is capable of handling only two VLANs — one tagged VLAN for voice and one untagged VLAN for data.

Configuring Voice VLAN:

Switch#configure terminal
Switch(config)#vlan 100
Switch(config-vlan)#name Voice

Switch(config-vlan)#end

Configure the int fa0/5 switchport to quasi-trunk VLAN 100 for voice and VLAN 10 for data transport:

Switch#configure terminal
Switch(config)#interface fa0/5
Switch(config-if)#switchport voice vlan 100
Switch(config-if)#switchport access vlan 10

Switch(config-if)#end