In VMWare ESX, the management traffic for the host is sent to the interface vmk0 which is a virtual interface. This morning while troubleshooting another vmk* interface because of a vMotion problem, I accidentally changed the dvsPortGroup (VLAN) on vmk0. As soon as that took effect, the host was not able to be seen by vCenter. Thankfully the guest VMs continued to run without any failure.
Now came a chicken and the egg problem. I needed to change the dvsPortGroup on vmk0 back, but I couldn't access the host using vCenter until vmk0 was back online. This led me to Google to find a way to accomplish the same thing using the CLI on the individual host. This article pointed me in the right direction for the commands.
What I ended up doing was the following:
1. Lookup the DVPort number using esxcfg-vmknic -l command. As you can see below the DVPort currently used by a VMK* interface is easily found in the output.
2. Lookup the DVPort of a free port in the distributed vSwitch (in our case a Nexus 1000V) in the proper port group using vCenter.
3. Delete the existing vmk* nic by using the command:
esxcfg-vmknic -d -s DVSwitch_name -p DVPort
4. Recreate the vmk* nic by using the command below with the DVPort found in step 2.
esxcfg-vmknic -a -s DVSwitch_name -p DVPort -i IPAddress -n NetMask
At this point I had my vmk0 back with the proper IP and VLAN so I was able to reconnect the host to vCenter and all was well. The moral of the story is be careful what you're clicking on.