Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Is there a command to test whether jumbo frames are actually working? i.e. some sort of "ping" that reports whether or not the packet was broken up along the way.

I've an ESXi host with an Ubuntu VM which mounts a Dell MD3000i via iSCSI. I suspect jumbo frames are not enabled on the switch, and can't easily get admin access to it. I have the option to connect the disk array directly to the ESXi host, but would like some way of confirming that jumbo frames are a problem first.

share|improve this question
add comment

3 Answers

up vote 29 down vote accepted

Enabling Jumbo Frames means allowing a larger Maximum Transmission Unit (MTU), usually by setting the MTU to 9000.

To verify this has worked you can use ping in windows with the -l flag to set the packet size, and the -f flag to set Don't Fragment flag in the packet.

ping my.test.host -f -l 8792

If the packet gets fragmented you will see

Packet needs to be fragmented by DF set

in place of what you would normally see.

For Linux, the ping command uses different flags. -s sets the packet size, and -M do sets Do Not Fragment. So the above command would be:

ping my.test.host -M do -s 8972

By adjusting the packet size, you can figure out what the mtu for the link is. This will represent the lowest mtu allowed by any device in the path, which could be your switch, your computer, target or anything else inbetween.

This won't by itself tell you where the lowest MTU is - you may be able to work that out by running the test to different devices in the path, but there could always be transparent routers that limit the MTU but don't show up for traceroute.

Note there is an overhead of 28 bytes for the ICMP headers, so the MTU is 28 bytes larger than the figure you establish through the method above. So to check for MTU of 9000, you actually need to set your ping packet size to 9000-28 = 8972.

Update I found some resources which will specifically figure out the MTU across the path between the host and the target:

  • For Windows mturoute
  • For *nix tracepath or traceroute --mtu

And some more discussion on finding the MTU of a path.

share|improve this answer
    
+1. Nice answer. I thought of this as well but wasn't sure if it would allow him to detect what the switch supported frame size was. I didn't think of it as testing the path MTU. –  joeqwerty Feb 11 '11 at 12:09
1  
Nice.. on Windows. Small change to make it work on linux. [ping 10.1.1.101 -s 1472] where 1472 is the MTU size. Please edit your question to include this and I'll accept –  pufferfish Feb 11 '11 at 13:55
    
Here's a utility that uses the method described by dunxd: elifulkerson.com/projects/mturoute.php –  Chris Feb 11 '11 at 14:55
2  
Ok - man page would have helped you straight away, but I've updated with the specific details for Linux. Do not fragment flag is required for test to work properly, and this isn't as clear in Linux ping as in Windows. –  dunxd Feb 14 '11 at 15:53
1  
If you first enable SSH on the ESXi host and log in, you can use vmkping -d -s 8972 10.1.1.101, where -s sets the packet size and -d sets the Do Not Fragment flag. –  Eric3 Jul 9 '13 at 17:38
show 2 more comments

I'm not sure this would work but you could give it a try:

On the computer that has the MDSM client make sure Jumbo Frames are supported and enabled, then go to the support tab in the MDSM client and select the "Gather Support Information" link, select a location on the MDSM client to download the file to, start a packet capture on the MDSM client, and click the start button to start collecting and downloading the support info (zip file). When the collection/download is done look at the capture and see how big the Ethernet frames are from the MD3000i to the MDSM client. If the switch, the MD300i, and the MDSM client are all configured for Jumbo Frames you should see that in the Ethernet frame size in the capture.

share|improve this answer
add comment

You also can check it from ESXi console via SSH: turn on Security->Firewall->Remote Tech.support (SSH) and after ssh login do "vmkping -s 8000" or something like that (don't remember its options exactly)

share|improve this answer
1  
Look up the options and someone might vote you up. –  dunxd Sep 27 '11 at 15:56
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.