Mpath-tools is a set of programs for linux 2.6+ that aim to facilitate load balancing and failover over multiple and heterogeneous ISP connections.

It is distributed under the terms of the GNU Lesser General Public License.

Read below for a small introduction or jump to :

mpathd

mpathd Mpathd is a daemon and the core of mpath-tools, it runs in the background, monitoring the state of each connection.
It dynamically update routing tables according to the state of the gateways and a set of rules set by the administrator.

The state of each connection is determined by sending through ICMP probes to one or more addresses.

Mpathd acts upon rules it reads from its configuration files and commands received through control connections.

mpath

mpath This is the command line control tool, it connects to a local or remote mpathd and uses the mpath-tools client library to send commands and receive responses from the daemon.

Mpath can work either with command line arguments or in interactive mode.

mping

mping This is a replacement for the classic ping command that takes advantage of multipath to send multiple simultaneous ping probes using different gateways.

It is mostly compatible with the usual command line arguments and can be used in place of the system ping command for most operations.

Mping is a useful tool for diagnosing network issues in a multipath environement, and can also be used to compare packet loss, latency, jitter and overall routing efficiency between different providers.


mpwww

mpwww This is a realtime web/ajax network monitor, it uses the mpath-tools client library to gather data and statistics from the mpathd daemon, and displays them using HTML5 canvas and AJAX. It has been successfuly tested with Firefox 3.6, Chrome 4.0, IE 8, and should work with any recent browser.

The round trip time, packet loss and optionally inbound and outbound traffic can be graphed for every gateway.

You may want to check out the live demo that is running on this server.


Support

Please e-mail the author if you have any questions, bug reports or code submissions.