How to – use vmkping to verify Jumbo Frames

You have configured Jumbo Frames in your VMware infrastructure and want to verify if everything is working well? No problem – you can do this with the command vmkping. But you should take care how to use this command.

First some basics about Jumbo Frames:
(if you know them – read on below)

• every MTU size larger 1500 bytes is a Jumbo Frame
• maximum MTU size supported by ESXi is 9000 bytes
• Jumbo Frames are limited to data networking only (vMotion & virtual machines network)
• your network must support Jumbo Frames end to end

How to enable Jumbo Frames on your vSwitch?

It is very easy to change the MTU size on your vSwitch:

– open your vSphere Client and select a Host.
– open the “Configuration tab” and select “Networking”
– open “Properties” from your vSwitch and click “edit”
– now you can change the MTU size in the section “Advanced Properties”:

How to use vmkping right when testing Jumbo Frames?

Assuming you have configured everything right, you will now use vmkping to verify if everything is working as expected.
But the vmkping command has some parameters you should know and use in this case:

-s to set the payload size

Syntax: “vmkping -s size IP-address”

With the parameter -s you can define the size of the ICMP payload. If you have defined a MTU size from eg. 9000 bytes and use this size in your vmkping command, you may get a “Message too long” error. This happens because ICMP needs 8 bytes for its ICMP header and 20 bytes for its IP header:

The size you need to use in your command will be:

9000 (MTU size) – 8 (ICMP header) – 20 (IP header) = 8972 bytes for ICMP payload

-d to disable IP fragmentation

Syntax: “vmkping -d IP-address”

Now you know that you should use the command “vmkping -s 8972 IP-address” to test your infrastructure when using a MTU size from 9000 bytes.

But there is one thing more to take care. When the Internet Protocol has to send a packet larger than its frame, it will divide the message into fragments for transmission by design. This is the reason why every payload size will work (try it e.g. with a payload of 15000 bytes…) without showing an error.

As we do not want this behaviour for our tests we can use the parameter -d, which will disable IP fragmentation.

Et voila – the command to verify if your configuration is doing well is:

vmkping -s 8972 -d IP-address

If you use the ping command from your windows server, you need to use -l and -f instead of -s and -d:

ping -l 8972 -f IP-address

Verify this on all your devices as the MTU size must be supported end to end!!!

Leave a Comment

Your e-mail address will not be published. Required fields are marked *