FindMTU v0.9 Introduction FindMTU is a tool that performs IPv6 path MTU discovery. You can use it to debug network problems and to detect IPv6-in-IPv4 tunnels in the path to a destination. FindMTU only performs IPv6 path MTU discovery. It does not know about IPv4. Supported platforms FindMTU has been tested on Linux 2.2 and 2.4 and on FreeBSD 4.6. Under Linux, it uses Linux-specific interfaces to obtain socket error messages as a normal user. Under FreeBSD, it uses raw sockets and must be run as root. The raw sockets mode should run under other operating systems as well, but this has not been tested. NOTE: if you are planning to use FindMTU on FreeBSD, you must be aware that FreeBSD (some versions at least) stores path MTU information in cloned host routes that never expire, so you will see only get valid results the first time you run FindMTU on a particular host, and all subsequent invocations will return no information. To work around this, delete the cloned host route before running FindMTU: see the file README.freebsd for an example. Compilation To compile FindMTU, select the appropriate makefile (Makefile.linux under Linux, Makefile.rawsocket otherwise), rename or symlink it to Makefile, and type make. Usage To use FindMTU, just run: ./findmtu or ./findmtu (Note that if you are not using Linux, you must be root.) FindMTU outputs a single line. The first number is the path MTU to the destination; the brackets provide details on what packets it received. This includes both Packet Too Big errors (an IPv6 address followed by the MTU) and other ICMP errors (an IPv6 address followed by a brief description of the error; "reached" indicates the destination was reached and replied with a port unreachable error). Credits FindMTU was written by Lorenzo Colitti . Most of the Linux code was lifted from Alexey Kuznetsov's tracepath6. Thanks to Mark Santcroos for helping with the raw sockets. License FindMTU is distributed under the GPL. See the file COPYING for details.