Reference Manual

HOW TO resolve MTU problems.

The Maximum Transfer Unit (MTU) is the maximum size of a packet sent to a Network Adapter by a Windows TCP/IP protocol stack. The MTU is normally determined automatically and need not be explicitly configured by the user. However, NAT32 assumes that packets have a maximum data field length of 1500 bytes, so if Windows ever defaults to a larger MTU, a special registry variable must be set to limit the MTU to a value <= 1500 bytes.

Below is a list of default MTU sizes for different media:

  16 Mbit/Sec Token Ring        17914 bytes
   4 Mbits/Sec Token Ring        4464 bytes
   FDDI                          4352 bytes
   Ethernet                      1500 bytes
   IEEE 802.3/802.2              1492 bytes
   X.25                           576 bytes

Also note that PPPoE implementations fail when an MTU of 1500 bytes is used. In such cases, the MTU of all machines behind NAT32 must be set to a smaller value.

Setting the Windows MTU

  1. Open the following key with regedit.exe: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

  2. \adapter name\Parameters\Tcpip
  3. The "adapter name" will be very similar to the descriptive name of your adapter, so you should find it quite easily.
  4. Add a DWORD value called MTU and set it to 1492 (or whatever value you require).
Reboot Windows to bring the changes into effect.

NAT32 Path MTU Discovery

Later builds of NAT32 support the ICMP Path MTU Discovery Protocol. All Windows machines send IP packets to a gateway with the "Don't Fragment" bit set in the IP Header. When NAT32 receives a packet for the Internet which is longer than the MTU for the Internet interface, it discards that packet and sends an ICMP packet indicating the MTU size back to the original source of the discarded packet. Windows responds to this ICMP packet by restricting all future transmissions to the indicated MTU size.
Users therefore no longer need to modify registry settings manually.

The setm command can be used to set the NAT32 MTU for any given interface.

SEE ALSO

pppoe, setm