[an error occurred while processing this directive]
VMware ESX Server 1.5 Troubleshooting
[an error occurred while processing this directive]Knowledge Base Troubleshooting
The following sections will help you diagnose and correct problems you may encounter when using networking.
To help diagnose the cause of the problem, run this command on the console operating system of each ESX Server computer hosting a virtual machine that is having network trouble.
If the command prints 127.0.0.1, the ESX Server computer was not correctly connected to the network at the time the ESX Server software was installed. As a result, the file /etc/hosts on the console operating system was not set up correctly. Examine that file. Notice that the local machine's external name is on the line beginning with 127.0.0.1.
To resolve the problem, edit /etc/hosts, and move the local machine's external name to a new line beginning with its external IP address. For example, if the name of the machine is volley and its external IP address is 18.104.22.168, the resulting file will be similar to this:
127.0.0.1 localhost.localdomain localhost
We have seen this behavior with NC3131 adapters. The workaround is to assign both adapters on the card to the same use - either assign both to the console operating system or assign both to virtual machines.
When Ethernet adapters are taken away from the console operating system and given to the virtual machines, the adapters are gone, but often the network settings were not changed to reflect the disappearance of the adapters. The way Linux and the console operating system name Ethernet devices is to give them a name of the form eth0, eth1, , eth<n> where <n> is one less than the number of Ethernet adapters you have. Each of these names is called an Ethernet interface. Each Ethernet interface has its own IP address, gateway address and other network settings.
When you take away Ethernet devices, it is possible the Ethernet interface names will change too. For example, suppose you have three Ethernet devices with corresponding Ethernet interfaces eth0, eth1 and eth2. If you take the device corresponding to eth0 from the console operating system and assign it to the virtual machines, then the device that was interface eth1 will become eth0. Similarly, the device that was interface eth2 will become eth1.
Linux and the console operating system associate networking information with the Ethernet interfaces, not the Ethernet device. As a result, the networking settings for a particular device may have changed. In cases where the Ethernet devices are all of the same manufacturer and type, no problems will occur. Problems will occur if the devices are not of the same type or the higher numbered Ethernet interfaces (such as eth2 in our example) were being used to access the network. We will describe how to deal with the two cases.
First, assume the Ethernet devices are of two different manufacturers and types. As a result, a different driver will most likely be needed by each device. Look in the
alias eth0 3c90x
alias eth1 e100
The Ethernet interface eth0 is expected to be bound to a 3Com 90x Ethernet card and the interface eth1 is expected to be bound to an Intel EEPro card. If the 3Com card was assigned to the virtual machines, the Intel card is now eth0. You will have to modify the file so that eth0 is bound to the e100 driver. The new file should say
alias eth0 e100
This change ensures that your system will start automatically with the new settings the next time your machine boots. To try to load the driver while the system is running, you can use the insmod(8) command.
Consider a different example. In this case, the higher numbered Ethernet interface was being used to access the network. You must migrate the networking configuration for each interface to the device's new interface name. For example, suppose you have Ethernet interfaces eth0, eth1 and eth2 and wish to allocate the device bound to eth0 to the virtual machines. After you allocate the device, the device previously bound to eth1 is bound to eth0, and the device that was bound to eth2 is bound to eth1. If eth2 was being used to access the network, the network settings need to be changed along with the Ethernet interfaces. To get the same network configuration, you must take the network settings that had been used for eth2 and apply them to eth1 and, similarly, transfer the settings for eth1 to eth0.
To make the change, go to the directory
Once you make this change, you can restart your networking by running the command
This command stops your networking and restarts it with the new settings.
The easiest way to resolve this problem is to change the networking configuration in the virtual machine. The cause of the problem is the way the ping program in Linux behaves when it thinks a name server is available. If it does not find the reverse mapping for the target in /etc/hosts, it attempts to contact the name server. There is no name server on the console operating system, but the Linux virtual machine may be configured to expect one there.
There are several possible solutions to this problem.
The speed reported to the guest operating system is not related to the actual speed of the physical network connection.