How can I figure out the largest MTU usable on my network?


<< Back to Knowledge Search

Solution

Overview

There are a few things on your network that require extra encapsulation (headers) and therefore require devices to set their MTU to something lower than 1500. Setting the value to something very small will most likely "fix" the issue, but in turn, that will lead to performance loss. Here is how you can figure out the largest MTU possible on your network.

 

Here is what you will need

1. The IP address of a device on your network that will require your packets to be encapsulated. 

2. Make sure that no firewall is blocking PING packets larger than 64 bytes. A standard PING packet is 64 bytes in size so firewalls will allow that but for our test, we will need to use a larger PING packet

 

 

First step is to ping that device with a full 1500 byte packet. This will most likely result in a packet loss. If it doesn't, either your PING didn't need to go through all the encapsulating devices, or that your network does in fact support 1500 byte packets

For the example below, I will be figuring out the largest MTU possible between my PC and a device at 10.2.16.1

 

C:\>ping 10.2.16.1 -n 1 -l 1500 -f

 

Pinging 10.2.16.1 with 1500 bytes of data:

Packet needs to be fragmented but DF set.

Ping statistics for 10.2.16.1:
    Packets: Sent = 1, Received = 0, Lost = 1 (100% loss)
 
 
100% packet loss means the PING packet never made it so 1500 is too high and we need to try something lower. 
 
 
This next command will test with 1200 bytes
 
C:\>ping 10.2.16.1 -n 1 -l 1200 -f

Pinging 10.2.16.1 with 1200 bytes of data:

Reply from 10.2.16.1: bytes=1200 time=1ms TTL=255

Ping statistics for 10.2.16.1:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss)
Approximate round trip times in milli-seconds:
    Minimum = 1ms, Maximum = 1ms, Average = 1ms
 
 
No packet loss, this means an MTU of 1200 would work but it might be too low to be efficient.
 
 
This command will test with 1300 bytes
 
C:\>ping 10.2.16.1 -n 1 -l 1300 -f

Pinging 10.2.16.1 with 1300 bytes of data:

Packet needs to be fragmented but DF set.

Ping statistics for 10.2.16.1:
    Packets: Sent = 1, Received = 0, Lost = 1 (100% loss)
 
The packet was lost, this means 1300 is too high. We now know that our largest possible MTU is between 1200 and 1300.
 
 
 
The next step (for this specific example) would be to test with 1210, 1220, 1230, 1240 and so on until the ping reports 100% packet loss. 
For this example, 1270 returned 0% packet loss and 1280 returned 100% packet loss. 
With that information, we can determine that the largest packet is between 1270 and 1279 bytes in size.
 
To get an even more precise number, we could test 1271, 1272 etc... until we see a packet loss.
 
In the end, 1272 showed 0% packet loss, and 1273 showed 100% packet loss.
 
 
That means an ICMP packet with 1272 bytes of payload is the biggest packet that can be forwarded without fragmentation.
1272 + 20 (IP overhead) + 8 (ICMP overhead) = 1300
 
 This means my MTU should be set to 1300

 

Cause
Resolution
Workaround
Additional Information
Bug Number
InQuira Doc IdFAQ662
Attachment

Article Feedback

Hide Properties
First Published      10/01/2014
Last Modified      10/01/2014
Last Published      10/01/2014
Article Audience
Topic      Networking
Article Number      000009827
Summary     
Was this helpful?
Comments:
 
Previous MonthNext Month
SunMonTueWedThuFriSat