Configuring Jumbo Frames in WS2012 R2 Hyper-V VMs

I’ve had a few questions from people about enabling jumbo frames in Hyper-V VMs.  They wonder if they need to configure the virtual switch to allow jumbo frames.  I’ve been running WS2012 R2 Hyper-V since the preview, and RTM has just been deployed.  So I can’t test for W2008 R2 or WS2012, but I can tell you that configuring Jumbo Frames for VMs on WS2012 R2 requires no virtual switch configuration.

Here are the steps:

1) Physical NICs

You should configure the NICs that are used by the virtual switch to communicate on the LAN.  Edit the properties of the NIC, click Configure, and then find the setting for your NIC model.  It might be called Packet Size, Jumbo Frames, or something else.  Set the value to the maximum supported by your NIC.

image

Those of you who use Chelsio NICs and are observant will notice that I have not upgraded the NIC driver on this host yet.  Bold me!  I won’t get anywhere near the potential bandwidth until I do.

2) Physical Network Appliance(es)

Configure jumbo frames according to your manufacturer’s instructions.  Jumbo Frames needs to be configured end-to-end on the network.  Note that the smallest setting restricts end-to-end packet size.

3) Virtual Switch

Do nothing to the virtual switch.  I want to be clear on that Smile

4) Guest OS NIC

Log into the VM and configure the jumbo frames in the guest OS of the VM.  It’s the same process as above, but the name of the setting is known as Jumbo Packet and the maximum value is known to be 9014.

image

5) Verify

You should use the pick command to verify that a jumbo packet can be transmitted without fragmentation:

ping -f –l <size of packet> <destination>

The –f flag will prevent fragmentation and the –l flag specifies the packet size.  In my case, I ran tests from the host to the VMs, between the VMs, and from the VMs, to the host.

Here’s a gotcha.  You’re going to probably have values like 9000 and 9014.  You, like I did, will think “I’ll run tests with packet sizes of 9000”.  Don’t; it will fail.  When 9000 should have worked, the maximum packet I could sent was 8972.  My guess without doing any research is that wrappers or encapsulation is happening and 8972 is the max that works with ping in my lab.

Anyway, that’s how to get Jumbo Frames configured with Hyper-V VMs.

Before you ask: no I won’t be covering W2008 R2 – that’s a legacy product now.  And I don’t have time to downgrade to WS2012.