I have recently been working with esxi hosts and to decommission them and recommission them into new projects and had to use the command vmkping to test the MTU of certain types of vmkernel ports like VMOTION, VSAN, VTEPs etc.
Here is a refresher for the vmkping commands which are very useful for a day to day Virtual Administrator
Command to check the MTU of 9000 with a certain amount of packets and with a certain interval and using a certain vmkernel port
vmkping -I vmk3 -d -s 8972 -c 1000 -i 0.005 vmkping -d -s 1472 <IP_Address>
In one of the above command vmkernel port is vmk3, for MTU 9000, we will be using 8972 as the packet size , -c is the count of packets and -i is the interval for which the ping will work (In the above example it is 0.005 seconds)
The second command is to test the MTU 1500 and the IP to test. You can also add -I (Interface) and vmkernel port through which you want to ping the IP
Command to check the communication of an IP address through an vmkernel port
vmkping -I vmk# IP address of the host
Command to get all the network adapters and the type of tcp/ip stack assigned to the nics
Using the above command you can check the netstack which will be used in the below command to ping a vmotion vmkernel port
vmkping -S vmotion -I vmk1 <IP_Address_to_ping>
The -S is for netstack name like vmotion and this is the only command to be used if we use a NetStack
List of arguments:
vmkping [args] [host/IP_Address]
-4 use IPv4 (default) -6 use IPv6 -c <count> set packet count -d set DF bit (IPv4) or disable fragmentation (IPv6) -D vmkernel TCP stack debug mode -i <interval> set interval (secs) -I <interface> outgoing interface – for IPv6 scope or IPv4 bypasses routing lookup -N <next_hop> set IP*_NEXTHOP – bypasses routing lookup for IPv4, -I option is required -s <size> set the number of ICMP data bytes to be sent. The default is 56, which translates to a 64 byte ICMP frame when added to the 8 byte ICMP header. (Note: these sizes does not include the IP header). -t <ttl> set IPv4 Time To Live or IPv6 Hop Limit -v verbose -W <timeout> set timeout to wait if no responses are received (secs) -X XML output format for esxcli framework. -S The network stack instance name. If unspecified the default netstack instance is used.