This allows for testing over a single network path in a load balanced
network where flows are hashed on the ips and ports (relatively common), the
default behavior is to use the destination port as the sequence number when
doing UDP probes, so you see (more or less) an average of all the paths.
If the remote port is set, we need to use the checksum field to store
sequence and adjust the paylod so the checksum is valid; therefore we need
to have the source address, as it's part of the checksum calculation. We
also need to increase the minimum packet size so we have at least 2 bytes of
payload.
In particular:
- generally improve the look of the man page and help message
- add missing command line options to the man page
- reorder command line options to be more consistent
- use the same order for command line options everywhere (man page, code, help message)
- add missing switches in getopt_long call (-M, -F)
- fix incorrect switch in getopt_long call (-Z)
Note that a few options were never documented (they are now marked as
"MISSING" in the man page).
This emulates the -m option for ping provided in iputils. When coupled
with iptables, this option provides a means of using source routing to
force probes through a consistent nexthop on multihomed systems.
service names read from this file are allocated in a linked list
multiple service names are only accepted with --csv flag
without --csv flag, the first service name is used
Instead of sending ICMP ECHO or UDP packets, this mode opens a TCP
connection to the port of choice (80 by default) and sets IP_TTL
or IPV6_UNICAST_HOPS to control the TTL of the outgoing SYN packet.
Instead of using ICMP ECHO sequence or UDP destination port, the
source port number is used to track how many hops away a router is.
For getting the final hop, sockets are left open until a timeout
is reached (10 seconds default) and a write is attempted as soon
as the socket becomes available for writing. Anything other than
a succesful write or a "Connection refused" error is ignored.
When building from a git tree, the version number built into the
binary will be appended with +git-XXXXXXXX.
The base version number is stored in-tree in configure.in and is that
of the last tagged release. Presumably the git version is later than
the last tag, so we use '+git' rather than '-git' to produce the
correct the lexical sort order -- though of course the sort order
between any two git revisions can only be determined from the git tree
rather than from a lexical sort.
This new option displays both the hostname and the IP address of a
host in the path. This is particularly important when the hostname
determined by a reverse lookup has no corresponding forward record.
This is similar to the -b (both) option in tracepath, but -b was
already taken in mtr for --bitpattern.
Using this option also implies -w / --report-wide as this option isn't
terribly useful without it in report mode.
In general we endeavor to only show the IP address once per line, but
in the split view we consistently add a separate field for IP address
to the output.
Signed-off-by: Travis Cross <tc@traviscross.com>
- Removed old Changelog file appended at the end as oldest changes.
2011-03-28 Mark Kamichoff <prox@prolixium.com>
- Enable decoding of ICMP extensions for MPLS for curses and report
interfaces. Use the -e flag or press 'e' to enable it.
source: ftp://ftp.bitwizard.nl/mtr/mtr-0.82.tar.gz
- Feelgood patch to move sprintf to snprintf. People might think that
sprintf might cause a buffer overflow. Now it's clean. cut-paste
patches: you can now copy an intermediate host to the clipboard.
source: ftp://ftp.bitwizard.nl/mtr/mtr-0.75.tar.gz
- Martin Pels' patch to allow UDP probes.
- KES reported a build problem. Turns out I need to install gtk-1.2
on my development sytem, otherwise my release script causes the
build to break.
- changed some docs to advertise the new mailing list. added
documentation for the Mac OS X compilation problem. added
-Wno-pointer-sign to the compiler options.
- Nico Lichtmaier's cleanup-gtk patch. (now mtr uses a more modern
dialect of gtk).
source: ftp://ftp.bitwizard.nl/mtr/mtr-0.74.tar.gz
- Some securty patches. Although MTR drops privileges as soon as
possible after opening the sockets, it still had some sprintf
calls, which have now been converted into snprintf.
source: ftp://ftp.bitwizard.nl/mtr/mtr-0.73.tar.gz
- Antinio submitted a cumulative patch containing some nice
improvements. He also submitted an automake patch that causes mtr
to no longer compile on my system. I refuse to have mtr "in the
dark" that I can't test-compile the dist.
source: ftp://ftp.bitwizard.nl/mtr/mtr-0.70.tar.gz
- included some old patches.
- included patch from Antonio Querubin for better IPV6 support
restructured some more whitespace.
- added mtr.h where "global" things should go. Not finished moving
things around, but now that the infrastructure is there, it should
be easy.
source: ftp://ftp.bitwizard.nl/mtr/mtr-0.68.tar.gz
- Through the Debian bugtracking system a bug report and fix was sent
my way, that deals with stupid optmization trying to save some 768
bytes of memory, sacrificing "it works" on a different
architecture... (default char signedness)
source: ftp://ftp.bitwizard.nl/mtr/mtr-0.66.tar.gz
- Apparently someone changed gethostbyname into gethostbyname2 in
mtr.c in an attempt to add IPV6 support. For systems without ipv6
support, the old gethostbyname should be used! Linux has the call
even if you don't enable IPV6. Thanks Gary (rsub)
source: ftp://ftp.bitwizard.nl/mtr/mtr-0.62.tar.gz
- Attempt to get/print the local IP address. Now shows as 0.0.0.0 :-(
Hints and tips appreciated! -- REW
- Lots of blank space reformatting.
- Moved the interface address setting to net.c (where it belongs).
source: ftp://ftp.bitwizard.nl/mtr/mtr-0.61.tar.gz
- Josh Martin suggested to add some bounds checking to the dynamic
field code. This caused me to delve in, and rewrite some
things. Now 50 lines of code less, but cleaner code. :-)
source: ftp://ftp.bitwizard.nl/mtr/mtr-0.59.tar.gz
- Cleanup patch. I'm going to do some maintenance on MTR, but I want
to be able to say: Can you see which version fixed/broke things for
you, so you're going to see a bunch of new releases soon.
source: ftp://ftp.bitwizard.nl/mtr/mtr-0.55.tar.gz