If you are looking for MPTCP in Linux >= v5.6:
https://mptcp.dev
For Linux <= 5.4, you can stay on this website.
Disable one interface for MPTCP (or put it in backup-mode)
Install our iproute-extension either by:
- installing our .deb/.rpm packages
- or by compiling and installing yourself from the git-repository
- or add Arınç ÜNAL's OpenWRT feed.
This allows to disable an interface for MPTCP by doing:
ip link set dev eth0 multipath off
That way, MPTCP will not try to use this interface. Except for the initial subflow, if the route in the default routing table is pointing to this interface.
Additionally, you can specify an interface as being the backup-interface (as defined in the mptcp-draft):
ip link set dev eth0 multipath backup
See man 8 ip-link
or ip link help
after installing our iproute-extension.
Note that it is also possible not to use the modified version of IPRoute2 and append the flag 0x80000
(Multipath Off) and 0x100000
(backup) in /sys/class/net/<INTERFACE>/flags
MPTCP-enabled wireshark packages
Andrei Maruseac <andrei.maruseac@gmail.com> pushed a patch into Wireshark, that allows Wireshark to correctly detect the MPTCP-options in the packets. Click here to see the patch.
So, since wireshark version 1.7.1, MPTCP support is included. Feel free to compile and install it yourself by taking the sources from http://www.wireshark.org/.
Since Ubuntu 12.10, it includes the latest wireshark together with MPTCP support.
Brandon Heller <brandonh@stanford.edu> created amd64 debian-packages to install on a Linux distribution.
If you have already Wireshark installed on your system, you have to remove it with:
apt-get remove wireshark wireshark-common libwireshark-data
Then, download from here wireshark_1.7.1_amd64.deb and wireshark-common_1.7.1_amd64.deb.
dpkg -i wireshark-common_1.7.1_amd64.deb
dpkg -i wireshark_1.7.1_amd64.deb
MPTCP-support in tcpdump
Gregory Detal <gregory.detal@uclouvain.be> implemented MPTCP-support in tcpdump. Have a look here to see the source.
The code has been merged in upstream's tcpdump and is provided by your distribution's packaging.
MPTCP-support in net-tools
Ever wondered, how many MPTCP-connections you are using? Simply compile and install our customized net-tools source from the github.
Now, you just have to do:
netstat -m
for a list of the active MPTCP connections.
Using our apt-repositories will also automatically install our net-tools package.
MPTCP-support in Apache
Markus Jungbluth <kim.markus.jungbluth@htwsaar.de> implemented an Apache-module that sets an environment variable depening on whether the connection is using MPTCP, or not.
You can get it from https://github.com/markusju/mod_mptcp. One use-case is for example when you want to display on your website whether or not a client is using MPTCP (see http://mptcp.femasrv.de for an example).
MPTCP analysis tools
Benjamin Hesmans has developed MPTCP Trace for analyzing MPTCP packet traces. Check out the tool at https://bitbucket.org/bhesmans/mptcptrace
git clone https://github.com/multipath-tcp/mptcptrace.git
cd mptcptrace
./autogen.sh
./configure
make
make install
Joseph Ishac <jishac@nasa.gov> and his team have developed a set of tools for analyzing MPTCP packet-traces. Check out their tool at https://github.com/nasa/multipath-tcp-tools/.
Find middleboxes not supporting MPTCP
A web service like http://amiusingmptcp.de (supporting MPTCPv0) or curl multipath-tcp.org
can quickly tell you if you are using MPTCP or not. If not, it can be due to a configuration issue on the client side or a middlebox dropping MPTCP options.
Tracebox is very useful to identify which middlebox does that: http://www.tracebox.org/
sudo tracebox -p 'IP/tcp{dst=443}/MPCAPABLE' multipath-tcp.org
Sometimes, only some ports are blocked (80, 443, etc.).
Feel free to report issues to the owner (ISP, etc.): most of the time, it is a mistake or due to some default configurations.