This repo contains vagrant configurations to help you test Multipath TCP with a
kernel >= 5.6.
There are multiple ways to do some experimentations with MPTCP. Kernel
developers usually prefers building the kernel, using only one light VM, and do
some experiments using network namespaces (ip netns
). If you are interested by
that, please consider using
mptcp-upstream-virtme-docker
instead.
The setup enables you to test MPTCP from virtual machines without requiring MPTCP
support from the host. It will automatically setup 2 Fedora hosts, both connected
to each other with 3 links. These links are connected to the interfaces eth1
,
eth2
and eth3
of the devices.
You need a recent vagrant installed and virtualbox. Get it at http://www.vagrantup.com/downloads.html and https://www.virtualbox.org/wiki/Downloads
Get it and use it:
git clone https://github.com/multipath-tcp/mptcp-vagrant.git
cd mptcp-vagrant
# only the first time:
git submodule update --init --recursive
vagrant up
./scripts/init-mptcp.sh
This will:
- download a vagrant box
- start the virtual machine
You can then connect to the client/server using
vagrant ssh (client | server)
You stop the vm by issuing
vagrant halt
You can use pmrep
to check the traffic generated on the different interface.
This can be typically useful if you want to see if data is well sent in parallel
on multiple interfaces (example: if you are running mptcpize run iperf3
).
# Check traffic for 10 seconds, every second
pmrep network.interface.in.bytes -t 1 -s 10
Here is an example of output generated by pmrep while an iperf3 was running:
n.i.i.bytes n.i.i.bytes n.i.i.bytes n.i.i.bytes n.i.i.bytes
lo eth0 eth1 eth2 eth3
byte/s byte/s byte/s byte/s byte/s
N/A N/A N/A N/A N/A
0.000 2973.340 0.000 0.000 0.000
0.000 751.777 35785.253 29314.985 25192.125
0.000 0.000 65085.137 48311.050 49763.924
0.000 0.000 75632.805 44275.642 54212.010
0.000 0.000 71197.406 53428.050 51910.276
0.000 0.000 75361.548 48189.643 44524.735
0.000 0.000 63875.409 44105.733 55144.152
0.000 0.000 64017.342 46963.665 46195.048
0.000 0.000 66311.320 54552.121 43777.357
0.000 0.000 58849.307 52688.773 52658.751
0.000 0.000 69949.390 40244.443 45697.149
0.000 0.000 76594.098 50984.709 39281.333
0.000 0.000 60517.017 42658.258 57715.525
0.000 0.000 58039.906 52795.697 48618.310
0.000 60.015 75516.635 44548.993 47093.621
0.000 0.000 74750.513 49240.132 36631.828
0.000 452.748 32816.216 20149.289 26109.135
0.000 0.000 0.000 0.000 0.000
0.000 0.000 0.000 0.000 0.000