Windows DNS Queries Failing

I was putting together a PoC late last year and encountered an issue that I’ve not seen before that was caused by some functionality within Windows 2008 that I did not know existed at the time. In fact, no one who I’ve mentioned it to since knew about it either. It seemed sufficiently obscure that I thought I should write about it quickly.

In the PoC, I had created a Windows domain based on Server 2008 R2. Setting that up was simple enough and I’d done it many times before. What I began to notice though was that DNS queries forwarded outside of my PoC infrastructure were failing more often than not. This made Microsoft Updates impossible to install amongst other issues.

After fiddling with the DNS timeouts and talking with the hosting provider at the remote datacenter to no avail, I discovered this Microsoft KB article:

Some DNS name queries are unsuccessful after you deploy a Windows Server 2003 or Windows Server 2008 R2-based DNS server

After following the workaround instructions and issuing the following command on the Windows DNS server…

[text]dnscmd /config /enableednsprobes 0[/text]

…external DNS queries were successfully resolved 100% of the time. Following up with the hosting provider, they confirmed that the larger UDP packets would have been dropped by their firewalls.


Adding disks to 2008 R2 Server Core VMs

In a lab environment, sometimes anything can go. Solutions aren’t always standards compliant or don’t always follow best / sensible practices. One that I can’t shake off though is using separate drives in my VMs for operating systems and data. It’s too ingrained.

Given my new found penchant for using Windows 2008 R2 Server Core for VMs in my lab though I hit a little niggle that I thought I ought to note down for when I inevitably forget about it.

When deploying a VM from a template for a specific purpose, it’s natural to add extra disks to it. In the normal version of windows, using the DiskManagement snapin to bring the disk online automatically makes it read-write as well. In Server Core, you can’t use the snapin locally. Firewalls permitting, you should be able to use it remotely (via RSAT tools installed on another machine) but if you’re in a hurry and comfortable with DISKPART then you might be tempted to use that. And that’s where the niggle is.

In DISKPART when you online a new disk, it changes the disk’s state but not whether it is read-only or read-write. And you can’t create a partition on a readonly disk!

So, what do you do? It’s just a couple of extra steps really.

1. In the command prompt window on the VM’s console, start up DISKPART.

2. First, list the disks present on the VM:

You notice that Disk 1 is 100% free but Offline.

3. Next we select that disk and then turn it Online.

If you tried to create a partition now you’d get a fairly non-specific error.

4. Look at the disk’s detail and you see why though.

“Current Read-only State: Yes”, not the clearest way of saying it but the disk is read-only at present.

5. To make the disk writable you need only type ATTRIBUTE DISK CLEAR READONLY.

Now you can create a partition as you normally would.

Job done.


Installing VMtools on Windows 2008 Server Core

Not having a full GUI to use, it can sometimes be difficult to install software on Windows 2008 Server Core machines. You need to get used to scripted installations, software distribution methods and / or silent installs.

If you’ve gone as far as initiating the tools installation for a VM you could be forgiven for wondering what the heck you’re going to do next. The install doesn’t autorun (Windows Explorer does this normally but Windows Explorer isn’t there). Even if you run setup64.exe manually it won’t help.

If you run setup64.exe /? though you get a little bit of help.

A typical (and silent) install of VMtools can therefore be performed by running:

[text]setup64.exe /s /v /qn[/text]

The VM will automatically reboot though, just so you know…

Note: Jonathan Medd has a very similar (and excellent) post about installing VMtools on Windows Server 8 Beta.


Windows 2008 – Full Fat or Diet?

Out of curiosity (cats give it a bad name in my opinion) I recently chose to do a little experimentation. No bunsen burners and weird coloured liquids though, I wanted to do a light weight comparison of Windows Server 2008 R2 vs Windows Server Core 2008 R2 in my home lab. Let it never be said that I don’t know how to have fun!

It was a rather simple comparison with a fairly simple aim: I wanted to know if there was a difference in how many resources were consumed on an ESXi host (specifically one of my low power HP Microservers). Certainly not rocket science.

I started off by building brand new VMs for each in vSphere 5. Aside from the OS itself, both were identically configured with:

  • 1 vCPU
  • 2Gb Ram
  • 1 x 40Gb, thin provisioned VMDK hosted on an NFS datastore

I installed VMtools into both, enabled RDP in both and gave them IP addresses. That was it. No updates, no added features etc.

I powered them up on separate, otherwise empty hosts within a few seconds of each other and then sat back to watch.

After each had about 5 minutes to settle down, the above snapshot from vCenter showed:

  1. 2008 R2 Server Core base install uses nearly 4Gb less disk space
  2. 2008 R2 Server Core is uses less host memory (about 81Mb at the time of the screenshot)
  3. 2008 R2 Server Core uses fractionally more CPU (13Mhz)

Of course this was without any applications or additional services running and so the results may be different when the two are used in anger but vanilla installs seemed like the simplest way to compare them.

Server Core seems to use less physical memory and have a smaller disk footprint. Those, in my home lab, are probably amongst the biggest constraints that I have to deal with so in future I’m going to try and make more use of Server Core VMs. As long as the differences in how they’re managed doesn’t inconvenience me too much that is.