What is MTU, why do we need to have same MTU values on both sides of link and how to troubleshoot issues with MTU.

MTU in networks is Maximum Transmission Unit. And basically, it indicates the maximum size of packet what could be processed by network device without fragmentation. The default MTU is 1500, therefore, all packets what is bigger than 1500 bytes, should be fragmented to successfully transferred by network devices.

Misconfiguration of MTU on different sides of link could lead to some “strange” network issues, as default behavior for switch is to drop packet if it is bigger, than MTU, configured for interface.
Refer to attached picture. It has two switches, configured with default values of 1500 on all interfaces.
All traffic goes successfully in both directions. Packets smaller than 1500 bytes (like ping) go freely and packets bigger than 1500 bytes (like ftp traffic) will be fragmented, but still passing.

Now let’s imagine we have misconfigured MTU at switch1 on port facing switch2. Let’s say it is configured with another default value of 9000 bytes.
In this case ping still go fine in both directions, but when we try to do file transfer (with ftp), it will fail in one direction, while successfully pass in another: We still be able to download anything from “server” to “client”, but unable to upload anything to “server”, as switch1 will try to transmit bigger chunks of data (9000 bytes), and switch2 will drop all of this packets, as they are bigger, than configured MTU on interface, facing switch1.

How to diagnose issue: with standard tools – ping and tracert. Both tools have ability to be configured to send bigger packets (like 2000 bytes).

When using PPPoE or GRE, you also should pay attention to MTU size and make sure it is configured correctly.