Which VMNet is Which?

  • VMnet0 is for bridged networking
  • VMnet8 is for NAT networking
  • VMnet1 is for Host-only networking

DNS Failure in Guest

I was getting DNS failures in my Windows XP Guest most of the time at work, and some of the time at home.  I read numerous posts suggesting that VMWare's NAT DNS is flakey.  However in my case, the guest was simply timing out on DNS resolution.  To confirm that this is the problem, do the following in the guest:

If it succeeeds (and lookups failed before) then you need to increase your DNS timeout in the guest. Using regedit, update (or create -- type is REG_MULTI_SZ) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DNSQueryTimeouts with a value that resembles: 9 1 1 1 1 0

  1. The first digit is "Query the preferred DNS server on a preferred connection"
  2. Second digit: "Query the preferred DNS server on all connections."
  3. 3rd digit: "Query all DNS servers on all connections (1st attempt)."
  4. 4th digit: "Query all DNS servers on all connections (2nd attempt)."
  5. 5th digit: "Query all DNS servers on all connections (3rd attempt)."
  6. 6th digit: Must be zero.

Slow Guest

  • VMWare client (Windows 2000) was running VERY slow.  Response time was OK, but the clock ticked off the seconds at about 1 tick per 5 real seconds.
    • Solution 1: It turns out that my Dell Precision M70 laptop's Windows XP Pro had recognized the PC as a ACPI Multiprocessor PC.  It has only one processor.  Start Device Manager, open Computer, right click on ACPI Multiprocessor PC, Update Driver, Install from a list or a specific location, Don't search - I will choose, select Advanced Configuration and Power Interface (ACPI) PC.  It will want to reboot twice.  (Let it do so.)
    • Solution 2: Open a Cygwin bash prompt and run a "while true do echo foo done" loop to keep the CPU busy and prevent it going to S3 or S4 power state. 
  • VMNet1 keeps showing as disabled in vmnetcfg, but the Windows host thinks the virtual NIC is connected. Network Neighborhood/[VMNet1 NIC]/Status shows no IP address. Host and guest are unable to communicate via VMNet1's IP addresses (ping fails).
    • Using vmnetcfg.exe, delete VMNet1 (don't forget to click Apply), and re-create VMNet1. No need to stop the VM first.

Getting Vmware networking set up just the way I want it has proven to be time consuming, so I want to capture the setup that is working for me.

vmnetcfg

  1. Run vmnetcfg.exe (in "C:\Program Files\Vmware\Vmware player")
  2. Set up the following interfaces (check the Summary tab):
    1. VMNet0 (Bridged)
    2. VMNet1 (Host-only)
    3. VMNet8 (NAT)
  3. On the Automatic Bridging tab, disable automatic bridging. (Corporate network control freaks don't like unauthorized bridges on their networks.)
  4. On the Host Virtual Network Mapping tab (via the ">" buttons):
    1. VMNet1:
      1. Subnet = 192.168.11.1, Mask = 255.255.255.0, then click Apply on the Virtual Network Mapping tab
      2. DHCP = Start: 192.168.11.128, End: 192.168.11.254
    2. VMNet8:
      1. Subnet = 192.168.18.1, Mask = 255.255.255.0, then click Apply on the Virtual Network Mapping tab
      2. DHCP = Start: 192.168.18.128, End: 192.168.18.254
      3. NAT: Gateway = 192.168.18.2
  5. On the HOST PC, open Network Connections:
    1. Configure "VMware Network Adapter VMnet1"
      1. IP address = 192.168.11.1, Mask = 255.255.255.0, Gateway is empty, DNS servers are empty
    2. Configure "VMware Network Adapter VMnet8"
      1. IP address = 192.168.18.1, Mask = 255.255.255.0, Gateway is empty, DNS servers are empty
  6. Make your vmx files look a lot like the following (but with different MAC addresses for different VMs)

ethernet0.present = "TRUE"
ethernet0.startConnected = "FALSE"
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:0c:29:87:11:00"
ethernet0.generatedAddressOffset = "0"

ethernet1.present = "TRUE"
ethernet1.connectionType = "nat"
ethernet1.addressType = "generated"
ethernet1.generatedAddress = "00:0c:29:89:11:01"
ethernet1.generatedAddressOffset = "10"
ethernet1.startConnected = "TRUE"

ethernet2.generatedAddress = "00:0c:29:89:11:02"
ethernet2.generatedAddressOffset = "20"
ethernet2.addressType = "generated"
ethernet2.present = "TRUE"
ethernet2.connectionType = "hostonly"
ethernet2.startConnected = "TRUE"

  1. In the guest OS
    1. Set its NICs to use DHCP.  This will let you figure out which NIC is on which net.  Write down which is which or rename the connections to the vmnet.   I like names such as:
      1. Ethernet1-VMNet0-Bridged
      2. Ethernet2-VMNet8-NAT
      3. Ethernet3-VMNet1-HostOnly
    2. ping and tracert 192.168.11.1 and 192.168.18.1 and make sure they are routed correctly.
    3. ping and tracert mindspring.com (or other external address that responds to ping)
    4. Set its NICs to use static IPs:
      1. My Win2K is on 192.168.11.10 (no gateway, no DNS) and 192.168.18.10 (192.168.18.2 for gateway and DNS)
      2. My Ubuntu7 is on 192.168.11.20 (eth1: no gateway, no DNS) and (eth2: 192.168.18.2 for gateway and DNS) 192.168.18.20
    5. ping and tracert 192.168.11.1 and 192.168.18.1 and make sure they are routed correctly.
    6. ping and tracert mindspring.com (or other external address that responds to ping)
  2. Note: changing ethernetx.present from True to False or vice-versa, re-arranges which NIC is which in the client OS.  Try to avoid doing it.

Slow or Stuck or Two Mouse Pointers

If your mouse pointer movement is erratic, it won't go to some points on the VMWare virtual display, or it moves VERY slow, check CPanel/Mouse/Hardware.  Do you see "PS/2 Compatible Mouse?"  You should see "VMWare Pointing Device".  If you don't, install or upgrade VMWare Tools in the guest.

temporary end

 

nlsookup
  set timeout=9
  www.google.com