O R G A N I C / F E R T I L I Z E R: how to get around dhcp in virtual pc

Jun 15, 2010

how to get around dhcp in virtual pc

 

yes, virtual pc has dhcp built-in.  found this out in a training class where virtual pc was being used to host virtual machines in an osd (operating system deployment) scenario.  one of the best things you can do with imaging pcs is pxe boot.  this kind of falls apart when you have competing dhcp services.

on statically assigned IPs, you’d never realize that anything was going on.  however, in an osd training scenario, you usually have a machine that will get an ip address, connect to pxe (wds), and retrieve a boot image.  we fully expected the pxe client to receive the ip address from dhcp that was loaded on the domain controller.  instead, we kept getting an apipa address (automatic private ip addressing – 169.254.0.0 – 169.254.255.255).  you would generally expect to see this on a windows 98 and above machine where a machine can’t get an ip address and assigns one to itself.

because of that behavior, it seemed as if the pxe boot machine couldn’t get an ip address from the dhcp server.  further investigation revealed that the dhcp server integrated in virtual pc answers requests faster than the dhcp service on the dc.  there are two ways to correct this problem, if the scenario you’re using is like mine.

use a loopback adapter

  • on the host machine, create a loopback adapter (available under the manually added hardware with microsoft as the vendor).
  • on each virtual machine, use the loopback adapter as the network connection.
  • restart the nic on each virtual machine.

 

shut down the virtual pc dhcp service

  • shut down any open virtual machines.
  • kill the vpc.exe process if it’s still running.
  • open options.xml for editing (%localappdata%\microsoft\windows virtual pc).
  • change the value of “enabled type” to false.

<virtual_network id="0">
<id type="bytes">50C6B929053B4BF0B5ADAEEF5818A133</id>
<gateway type="integer">0</gateway>
<name type="string">Internal Network</name>
<virtual_server>
<dhcp>
<enabled type="boolean">false</enabled>
<ending_ip_address type="integer">2851998462</ending_ip_address>
<network type="integer">2851995648</network>
<network_mask type="integer">4294901760</network_mask>
<starting_ip_address type="integer">2851995664</starting_ip_address>
</dhcp>
</virtual_server>


 

credit: found the second solution here at http://www.simonsen.bz/blog/Lists/Posts/Post.aspx?ID=117.