Friday, September 16, 2016

Skype for Business Cloud Connector Edition Fails on BaseVM Windows Update

Well, my adventures in Cloud Connector Edition (CCE) just keep on unfolding, and I must say, learning on a curve can be tricky, as the technology is so new, and things are changing between versions so much. I came across one tricky situation with a very specific fix, and I figured this may help some of you out if your are not as geeky on the Networking side as you are on the Skype for Business side.

The Issue

This problem is not specific to any version of CCE. Let's say you have made it as far as prepping your Hyper-V host with all the appropriate settings. You have downloaded CCE, you have downloaded the S4B bits, you have uploaded the Windows OS ISO that you will be using, and properly filled out your entire CloudConnector.ini file (along with all the other required preparation steps). Finally, you are ready to convert that ISO file into a BaseVM that will be used to create your final 4 VMs in the CCE configuration. You run the following cmdlet:

Convert-CcIsoToVhdx -IsoFilePath <Windows ISO File Path, including file name>

A lot happens now. The original ISO is extracted, stuff is happening in the background, then a new VM gets built and the OS is installed. Of course, the configuration information is pulled from your CloudConnector.ini file, so make sure you have that properly filled out ahead of time. During the original OS install, the PowerShell window does not show you much at all, and doesn't update you with the progress until it is finished. If you are like me, and don't have a lot of patience, or just like to know what is going on, pop open the Hyper-V Manager, click on the BaseVM name (it is named some horrible GUID-looking name), and click Connect from the VM options on the right side. This will let you see the VM as the OS gets installed and the machine restarts over and over again - it is more to look at that PowerShell where nothing seems to be happening.

Finally, in your Powershell window, after the OS is fully installed and the machine has gotten through some initial configuration, you see that it is attempting to download and install Windows Updates. But it fails! NOOOOO!!!! It says it will retry again after 30 seconds...

No Bueno...

The Resolution

So, at this point you are racking your brain. You did everything to prep that you needed to. You cleared all the IPs and Network segments with your Network guy. All the DNS settings are accessible, so you know it is not DNS. The Networking guy even did you a favor and setup the firewall rules correctly on the first try (sorry Networking guys, had to throw that friendly zinger in there). So why is the machine still not able to connect to the internet, resulting in the above cmdlet ultimately failing on Windows Updates?

Well, if your situation was like mine, it was because you did not realize VLAN Tagging was at play! Yep, all your IPs and network information is correct, but the individual vNICs on each VM have to set up with the properly VLAN ID. Luckily, this can be done with the machine still running and doing its thing. With the VM still highlighted in the Hyper-V Manager, click on Settings under the VM options, and then click on the name of the Corpnet NIC as you have set it up on the VMs properties. Once there, you will need to check the box next to Enable virtual LAN identification, and then enter the proper VLAN ID in the box below it. Don't forget to hit Apply before closing the window!

Wasn't that nice? I even added numbers to show you the order to set those VLAN IDs! ;-) 

Once you do this, the VM will almost instantly pick up its connection, and if you are still on the WIndows Update step, you should see updates detected:

And that's that! VLAN tagging is one of those things that is not really covered in the CCE documentation, at least that I have seen, so be aware that you will have to figure it in if it is in use in your environment, or your clients' environments. Please remember, you will need to set it on ALL VMs, not just the BaseVM. On that Edge VM, though, you will have two NICs to set it on, and they should likely each be on different VLANs, thus different tags for each NIC.

Hope this helps at least one or two of you fumbling through a CCE deployment out there!

Stay techy my friends!