                             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 <hostname>
or
./findmtu <IPv6 address>

(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 <lorenzo@colitti.com>. Most of
the Linux code was lifted from Alexey Kuznetsov's tracepath6. Thanks
to Mark Santcroos <marks@ripe.net> for helping with the raw sockets.


License

FindMTU is distributed under the GPL. See the file COPYING for details.
