Lab A-1 Install CUCM in a VM

Installing CUCM can be an intensive and uncommon undertaking that a CCNA student is not expected to master. This distinguishes it from preparing a CME router to work with Cisco Configuration Professional, which a student is expected to understand. This difference explains why this lab is in an appendix and why it feels more like a tutorial aimed at just getting the job done.

Lab Topology

Topology Diagram

We'll set up CUCM in a virtual machine running on an inexpensive Windows PC. VMWare Workstation Player is free for non-commercial use and runs under both Windows and Linux. The Linux option allows you to buy a very inexpensive used laptop online without worrying about its lack of an OS or even a hard drive. I'll be using the Windows version here.

Our lab topology is shown to the right. The swtich will have voice and data VLANs, with the router "on a stick" routing between those VLANs and acting as a DHCP server for the phones and the PC hosting the CUCM virtual machine (the actual CUCM server will have a separate static IP address). Interestingly, the CUCM server will be on the data VLAN because it normally handles call signaling, not the kind of audio traffic that would require special QoS expediting.

Underlying Network Configurations and Services

Communications Manager uses many of the same network services and configurations as Communications Manager Express, so our router and switch configurations will look much as they did in Chapter 3. The only major change is that we'll be moving our TFTP server from the router to CUCM, itself (option 150 in the table, below).

VLAN Configuration and Network Addressing

Our CUCM server will be configured with a static address of 10.0.4.5. This is in the data vlan because CUCM generally deals with signaling traffic rather than the actual audio that requires QoS expediting. The physical computer that hosts the Virtual Machine (VM) containing the CUCM server will automatically receive some unimportant address in the same subnet from the DHCP server.

If you need some extra complexity to accomodate a classroom, feel free to replace the 0 in the second octet with a pod number …and try not to think of your students as pod people.

Table 1. VLAN configuration and network addressing.
VLANSubnet GatewayDHCP Excluded Addresses Option 150
3( VOICE )10.0.3.0 /2410.0.3.110.0.3.1 - 10.0.3.10 10.0.4.5
4( DATA ) 10.0.4.0 /2410.0.4.110.0.4.1 - 10.0.4.10

Underlying Services

Because we're working in a prototyping environment and protecting the real world from our experimental traffic, we'll either need to remove dependence on network services or provide them locally.

Table 2. Network services used by network telephony and our handling of them in a lab environment.
ServiceOur Approach
DNS Remove dependence—One of our first labs will configure CUCM to use IP addresses instead of domain names. This is a best practice anyway; you don't want an unusable phone system just because the DNS server is unreachable.
NTP Fake It—Manually set the clock on our router and tell it to be an NTP master. We don't really care that our lab timestamps are absolutely correct; we just want to meet CUCM's requirement for an NTP server.
TFTP Let CUCM handle it—Option 150 in the voice VLAN will point to our CUCM server.
CDP Take it for granted. Simply use Cisco devices and don't turn it off.
POE Take it for granted. Buy hardware that provides it and don't turn it off. If necessary, use power adapters on the phones.

Router and Switch Configurations

These configs should get you started. Remember that your interfaces might be called FastEthernet instead of GigabitEthernet and that the actual setting of the clock on your router will need to be done with a command in privileged exec mode (clock set ...), not in the config.

Router ConfigurationSwitch Configuration
clock timezone PST -8 0
clock summer-time PDT recurring
ntp master 3
! Also set your clock in privileged exec
!
ip dhcp excluded-address 10.0.3.1 10.0.3.10
!
ip dhcp pool VOICE_POOL
 network 10.0.3.0 255.255.255.0
 default-router 10.0.3.1 
 option 150 ip 10.0.4.5 
!
ip dhcp excluded-address 10.0.4.1 10.0.4.10
!
ip dhcp pool DATA_POOL
 network 10.0.4.0 255.255.255.0
 default-router 10.0.4.1 
!
interface GigabitEthernet0/0.3
 description VOICE VLAN
 encapsulation dot1Q 3
 ip address 10.0.3.1 255.255.255.0
!
interface GigabitEthernet0/0.4
 description DATA VLAN
 encapsulation dot1Q 4
 ip address 10.0.4.1 255.255.255.0
            
clock timezone PST -8
clock summer-time PDT recurring
ntp server 10.0.4.1
!
vtp mode transparent
! Transparent mode stores VLANs in config
!
vlan 3
 name VOICE
!
vlan 4
 name DATA
!
interface FastEthernet0/1
 description Trunk to Router
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface range FastEthernet0/2 -24
 switchport access vlan 4
 switchport mode access
 switchport voice vlan 3
 spanning-tree portfast
!
interface Vlan4
 ip address 10.0.4.2 255.255.255.0
 no shut
! This enables IP for NTP
! Without the switch grabbing a DHCP address
            

Phase 1—Install VMware (Screenshots are clickable)

Phase 2—Create a Virtual Machine for CUCM

Now that WMware is installed, we will work within that program to create a VM that will hold our CUCM server. We'll give the VM a name, a maximum disk size, a certain number of CPU cores, and acertain amount of the host's RAM. We'll also "bridge" the imaginary network interface, telling the VM to directly use the real ethernet hardware on the host machine, with no translation. One thing to remember about the disk space allocation is that it won't be used unless CUCM actually needs it. This means that your computer doesn't even need to have as much free disk space as you allocate.

The final thing we'll do is tell the VM where to find a bootable CUCM install disk image. The first time the VM runs, it will boot from this disk image and install CUCM into itself. From then on, the VM will run CUCM. This is just like when you install any other operating system onto a real computer. In this sense, CUCM acts more like an operating system than a piece of software. If your CUCM disk image isn't bootable (most are only meant for upgrading existing systems) there are ways around that. Check the internet, including YouTube, for tutorials.

In this vein, VMware wants to know what kind of operating system is running inside of the VM. We'll say that it is some version of Red Hat Linux. This is a little white lie to cope with the fact that VMware doesn't have an option labeled CUCM. If you have a 64-bit machine, tell VMware that it is hosting the 64-bit version of Red Hat.

Table 3. VM Creation Options
VM NameGuest Operating SystemVM Disk Space RAMNetwork
CUCM LabRed Hat Enterprise Linux 480 GB 3 GB or soBridged

VM Creation Walkthrough

Phase 3—Run the VM and Install CUCM Into It

When we created the VM, we told it to install an operating system into itself from the CUCM install disk / image on its first run. Now we'll "boot" that VM and walk through the CUCM installation process. From this point forward, it's as if we had purchased one of Cisco's rackmount computers, put the install disk in the DVD player, and turned it on for a fresh install. Our VM is pretending to be one of those Cisco computers. If you've ever installed Linux using a text interface, this will all look familiar.

To interact with the process running inside the VM, click in the window of the running VM. To escape back to your host computer, press the [ ctrl ] and [ alt ] keys together. VMware will remind you of this on the first occasion that it's relevant.

Table 4. CUCM Installation Options
Host NameIP AddressGateway Console Login / PasswordSecurity PasswordApplication User
cucmlab10.0.4.5 /2410.0.4.1 cucmroot / ciscoclassciscoclassstudent / ciscoclass

CUCM Installation Walkthrough