In an NSX-T environment the following symptoms are observed:
The vmx file, which is the configuration file of a VM, contains information about how that VM connects to the network.
In an NSX-T environment you will see entries similar to this sample output:
ethernet0.externalId = "9286ab5d-a342-41e0-####-###########"
ethernet0.opaqueNetwork.id = "0d95a802-1dc8-4424-####-###########"
ethernet0.opaqueNetwork.type = "nsx.LogicalSwitch"
“opaqueNetwork.id” is the UUID of the NSX logical switch
“externalId” is the UUID of the VIF that the VM is using to connect to the logical switch
Whenever a VM connects to an NSX logical switch, the VIF and switch ID are stored in the vmx file.
Each VM vNIC should have a unique VIF.
There is a known issue in vSphere that results in a VM’s VIF not being removed during vNIC edits or clone operations.
This results in the new VM using the same VIF in its vmx file as an existing VM.
When VMs with the same externalId/VIF connect to the logical switch, the switch will think it is the same VM and attempt to connect them to the same switchport.
Only one vNIC can be connected to a switchport and therefore only one VM will be able to connect.
The issue is resolved in:
Workaround:
Before using any VM or VM template as a source for cloning:
For existing VMs that are having the problem:
Note: it is safe to remove all the lines that have “ethernetN.externalId” when a VM is powered off.
When the VM is powered on again, a new unique VIF will be created for any vNIC that connects to a NSX logical switch.
The new VIF will then be written back to the vmx file.