1. I usually leave ESXi on AutoNeg and configure desired speed via the switch/interface, that works fine for the CX3.
2. Your issue occurs when you change the current management vSwitch? Thats not indicative that the NIC has issues, its quite normal for ESXi to be finicky when you modify that (active) vswitch.
3.To test the NIC: Create a new switch with a vmk, add an IP in a new range (new vlan if you want to), add the nic to that. Repeat on a second host. Adjust vlan on switch if necessary. Test.
If that works, its not ESXi, but your messing with the management vswitch
Btw why are you not using a dvSwitch if you run 3 hosts? I assume youre going for a cluster setup; dvSwitch will make things easier for that (most of the time)
I usually do sth like the following when setting up a new box and trying to change management from the onboard nic (and dhcp ip to the MLXs and permanent ip). Basically add a new switch, make it management capable, add the new ip, add new nic, add a backup nic to the old one on another vlan [in case its not working as expected], remove old nic, reboot and hope the new nick takes.
Maybe it helps.
Code:
myHOSTNAME=esx
myIP=a.b.c.d
esxcli system hostname set --host=$myHOSTNAME
esxcli system hostname set --fqdn=$myHOSTNAME.myDomain
esxcli network vswitch standard add --vswitch-name=vS_MGMT
esxcli network vswitch standard portgroup add --portgroup-name=pG_MGMT --vswitch-name=vS_MGMT
esxcli network vswitch standard portgroup add --portgroup-name=1G_Failover --vswitch-name=vS_MGMT
esxcli network ip interface add --interface-name=vmk20 --portgroup-name=pG_MGMT
esxcli network ip interface ipv4 set --interface-name=vmk20 --ipv4=$myIP --netmask=255.255.255.0 --type=static
esxcli network ip interface tag add -i vmk20 -t Management
esxcfg-route -a default GWIP;esxcli network ip interface set -e false -i vmk20; esxcli network ip interface set -e true -i vmk20
esxcfg-nics -l #show physical nics + mtu
esxcli network ip interface list # show vmks + mtu
esxcli network ip interface ipv4 get #show vmk IPs
#--->Remove vmnic0 from Default network first and ensure accessibility (ie add vmnic 2 as uplink to vm network + CABLEING/VLAN check (if vmnic1!!))
esxcli network vswitch standard uplink add --uplink-name=vmnic2 --vswitch-name=vSwitch0
esxcli network vswitch standard uplink remove --uplink-name=vmnic0 --vswitch-name=vSwitch0
esxcli network vswitch standard uplink add --uplink-name=vmnic0 --vswitch-name=vS_MGMT ##########Nur als STBY drin?
#accessibile via new IP
esxcli network vswitch standard add --vswitch-name=vS_DMZ
esxcli network vswitch standard portgroup add --portgroup-name=DMZNet --vswitch-name=vS_DMZ
esxcli network vswitch standard uplink add --uplink-name=vmnic1 --vswitch-name=vS_DMZ
#--->2 DO: ensure accessibility via new IP
#---> Then remove vmnic1 Default network if added and add to vs_DMZ # else vmnic 1 removal will casue error - ignore
#Delete VIA GUI at this time
esxcli network vswitch standard uplink remove --uplink-name=vmnic2 --vswitch-name=vSwitch0
esxcli network vswitch standard uplink remove --uplink-name=vmnic128 --vswitch-name=vSwitch0
#-----NOW RECONNECT TO NEW IP
# reboot needed on freeze, new ip should continue to work
esxcli network ip interface remove --interface-name vmk0
esxcli network vswitch standard remove --vswitch-name=vSwitch0