Menu
Amazon Elastic Compute Cloud
User Guide for Windows Instances

Network Maximum Transmission Unit (MTU) for Your EC2 Instance

The maximum transmission unit (MTU) of a network connection is the size, in bytes, of the largest permissible packet that can be passed over the connection. The larger the MTU of a connection, the more data that can be passed in a single packet. Ethernet packets consist of the frame, or the actual data you are sending, and the network overhead information that surrounds it.

Ethernet frames can come in different formats, and the most common format is the standard Ethernet v2 frame format. It supports 1500 MTU, which is the largest Ethernet packet size supported over most of the Internet. The maximum supported MTU for an instance depends on its instance type. All Amazon EC2 instance types support 1500 MTU, and many current instance sizes support 9001 MTU, or jumbo frames.

Jumbo Frames (9001 MTU)

Jumbo frames allow more than 1500 bytes of data by increasing the payload size per packet, and thus increasing the percentage of the packet that is not packet overhead. Fewer packets are needed to send the same amount of usable data. However, outside of a given AWS region (EC2-Classic), a single VPC, or a VPC peering connection, you will experience a maximum path of 1500 MTU. VPN connections and traffic sent over an Internet gateway are limited to 1500 MTU. If packets are over 1500 bytes, they are fragmented, or they are dropped if the Don't Fragment flag is set in the IP header.

Jumbo frames should be used with caution for Internet-bound traffic or any traffic that leaves a VPC. Packets are fragmented by intermediate systems, which slows down this traffic. To use jumbo frames inside a VPC and not slow traffic that's bound for outside the VPC, you can configure the MTU size by route, or use multiple elastic network interfaces with different MTU sizes and different routes.

For instances that are collocated inside a placement group, jumbo frames help to achieve the maximum network throughput possible, and they are recommended in this case. For more information, see Placement Groups.

The following instances support jumbo frames:

  • Compute optimized: C3, C4, CC2

  • General purpose: M3, M4, T2

  • Accelerated computing: CG1, F1, G2, P2

  • Memory optimized: CR1, R3, R4, X1

  • Storage optimized: D2, HI1, HS1, I2, I3

Path MTU Discovery

Path MTU Discovery is used to determine the path MTU between two devices. The path MTU is the maximum packet size that's supported on the path between the originating host and the receiving host. If a host sends a packet that's larger than the MTU of the receiving host or that's larger than the MTU of a device along the path, the receiving host or device returns the following ICMP message: Destination Unreachable: Fragmentation Needed and Don't Fragment was Set (Type 3, Code 4). This instructs the original host to adjust the MTU until the packet can be transmitted.

By default, security groups do not allow any inbound ICMP traffic. To ensure that your instance can receive this message and the packet does not get dropped, you must add a Custom ICMP Rule with the Destination Unreachable protocol to the inbound security group rules for your instance. For more information, see the Adding Rules to a Security Group and API and Command Overview sections in the Amazon EC2 Security Groups topic.

Important

Modifying your instance's security group to allow path MTU discovery does not guarantee that jumbo frames will not be dropped by some routers. An Internet gateway in your VPC will forward packets up to 1500 bytes only. 1500 MTU packets are recommended for Internet traffic.

Check the Path MTU Between Two Hosts

You can check the path MTU between two hosts using the mturoute.exe command, which you can download and install from http://www.elifulkerson.com/projects/mturoute.php.

To check path MTU with mturoute.exe

  1. Download mturoute.exe from http://www.elifulkerson.com/projects/mturoute.php.

  2. Open a command prompt window and change to the directory where you downloaded mturoute.exe.

  3. Use the following command to check the path MTU between your Amazon EC2 instance and another host. You can use a DNS name or an IP address as the destination; this example checks the path MTU between an EC2 instance and www.elifulkerson.com.

    Copy
    PS C:\Users\Administrator\Downloads> .\mturoute.exe www.elifulkerson.com * ICMP Fragmentation is not permitted. * * Speed optimization is enabled. * * Maximum payload is 10000 bytes. * + ICMP payload of 1472 bytes succeeded. - ICMP payload of 1473 bytes is too big. Path MTU: 1500 bytes.

    In this example, the path MTU is 1500.

Check and Set the MTU on your Amazon EC2 Instance

Some AMIs are configured to use jumbo frames on instance that support them, and others are configured to use standard frame sizes. You may want to use jumbo frames for network traffic within your VPC or you may want to use standard frames for Internet traffic. Whatever your use case, we recommend verifying that your instance will behave the way you expect it to. You can use the procedures in this section to check your network interface's MTU setting and modify it if needed.

To check the MTU setting on a Windows instance

  • If your instance uses a Windows operating system, you can review the MTU value with the netsh command. Run the following command to determine the current MTU value:

    Copy
    PS C:\Users\Administrator> netsh interface ipv4 show subinterface MTU MediaSenseState Bytes In Bytes Out Interface ------ --------------- --------- --------- ------------- 9001 1 317337 692805 Ethernet
    In the resulting output, look for the entry titled "Ethernet," "Ethernet 2," or "Local Area Connection."

    In the above example, the 9001 in the MTU column indicates that this instance uses jumbo frames.

To set the MTU value on a Windows instance

  1. If your instance uses a Windows operating system, you can set the MTU value with the netsh command. Run the following command to set the desired MTU value.

    Note

    These steps vary based on the network drivers your Windows instance uses; make sure to execute the correct command for your driver version. For more information, see Paravirtual Drivers.

    • For Windows instances that use AWS PV drivers or the Intel network driver for enhanced networking (for example, Windows Server 2012 R2), execute the following command to set the MTU to 1500.

      Copy
      PS C:\Users\Administrator> netsh interface ipv4 set subinterface "Ethernet" mtu=1500 store=persistent Ok.

      To set the MTU to 9001, execute the following commands.

      Copy
      PS C:\Users\Administrator> netsh interface ipv4 set subinterface "Ethernet" mtu=9001 store=persistent Ok.

      To finish setting the MTU to 9001, execute the following command. This command is not necessary if setting the MTU to 1500.

      Copy
      PS C:\Users\Administrator> - Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "*JumboPacket" -RegistryValue 9014

      Note

      If you receive an Element not found error, replace Ethernet with the Interface column output from the To check the MTU setting on a Windows instance procedure that matches your interface.

    • For Windows instances that use Citrix PV drivers, first ensure that your PV drivers are up to date by following the procedures in Upgrading PV Drivers on Your Windows AMI. Then, execute the following command to set the MTU to 1500. Citrix PV drivers interpret MTU to mean max frame size, so you must subtract 18 from your mtu setting to set the correct value. For example, to set 1500 MTU, use 1482 in the command below, and to set 9001 MTU, use 8983 instead.

      Copy
      PS C:\Users\Administrator> netsh interface ipv4 set subinterface "Local Area Connection" mtu=1482 store=persistent Ok.

      Note

      If you receive an Element not found error, replace Local Area Connection with the Interface column output from the To check the MTU setting on a Windows instance procedure that matches your interface.

  2. (Optional) Reboot your instance and verify that the MTU setting is correct.

Troubleshooting

If you experience connectivity issues between your EC2 instance and an Amazon Redshift cluster when using jumbo frames, see Queries Appear to Hang in the Amazon Redshift Cluster Management Guide