Virtual PC 2004 with SP1 has replaced virtual switch. What it means is your VPC Guest will no longer have network connectivity in the virtual sense. What Microsoft wants you to do is have a physical NIC for each VPC Guest and VPC 2004 binds the VPC Guest to the physical NIC. The physical network card can then get an IP address from the DHCP server or Domain Controller or whatever.
This way, as far as the rest of your network is concerned, your VPC Guest is just another server on the network.
But the question is, what if you don't have multiple network card and all you have is one NIC used by your VPC host machine? The answer it seems is quite simple but took me a while to figure it out.
You install a virtual NIC on your host called Microsoft Loopback Adapter and assign your VPC Guest to use that as its NIC. Then you enable ICS (Internet Connection Sharing) on you host physical NIC. This way, the Microsoft Loopback Adapter will use the physical NIC as a gateway.
Below are the steps I took:
The directions on how to install the Microsoft Loopback Adapter under Windows XP are as follows:
1) On the host operating system go to 'Control Panel'
2) Go to 'Add Hardware'
3) In the 'Add Hardware' wizard, click 'Next'
4) When the 'Is the hardware connected?' page appears, select 'Yes, I have already connected the hardware', and then click 'Next'
5) In the 'Installed hardware' list, select 'Add a new hardware device' and then click 'Next'
6) In the 'What do you want the wizard to do?' list, select 'Install the hardware that I manually select from a list (Advanced)', and then click 'Next'
7) In the 'Common hardware types' list, click 'Network adapters', and then click 'Next'
8) In 'Manufacturer' list, select 'Microsoft'
9) In the 'Network Adapter' list, select 'Microsoft Loopback Adapter', and then click 'Next' twice
10) In the 'Completing the Add Hardware Wizard' page, click 'Finish'
11) Once you have done this you will then need to enable Internet Connection Sharing (ICS). The catch here is that you need to enable ICS on the network interface that you want to use to access the Internet - not the Microsoft Loopback Adapter:
12) On the host operating system go to 'Control Panel'
13) Go to 'Network Connections'
14) Right click on the network connection that you use for Internet connectivity and select 'Properties'
15) Click on the 'Advanced' tab
16) Check the option to 'Allow other network users to connect through this computer's Internet connection'
17) If you have multiple network adapters you will need to also specify that you are sharing the Internet connection with the Microsoft Loopback Adapter.
18) Click 'OK'
A couple of things to know at this stage:
Under Windows XP this will cause your Microsoft Loopback Adapter to be hard configured to use '192.168.0.1'. This is problematic if your external network is configured to use the 192.168.0.xxx subnet - but unfortunately there is nothing that you can do about this except to change your physical network settings (I have moved my physical home network to 192.168.1.xxx for exactly this reason).
Under Windows Server 2003 it is possible to change the IP address and subnet used on the Microsoft Loopback Adapter when ICS is enabled.
ICS provides DHCP services as well - so virtual machines connected to the Microsoft Loopback Adapter do not need to have static IP addresses configured.