Is your internet connection fast enough ? Want
more ? While you can’t necessarily make one connection much faster, you can however
aggregate or bond multiple connections together. Guys, this is not a scam video like so many
“get faster internet connections” videos here on youtube – this is a working technical
solution. Aggregating or bonding multiple internet connections
into one faster connection nearly always follows the same scheme: you buy multiple connections
such as DOCSIS, DSL, Starlink or 4G (so it’s not for free) and you rent a virtual server
in the internet which you connect to with these various lines and they are then aggregated
over there back into a fast line. You may buy such a solution from various vendors
and they may cost up to thousands of dollars depending on the bandwidth. Or – like we do today – we use the free
software OpenMPTCPRouter to do the same on the cheap – stay tuned. (intro) Quick reminder guys – if you want to skip
stuff please use the chapter markers. Here on the time line and in the description
of the video. Whenever I talk about other videos then you
will see that little info icon up here or a text pop up and clicking that will link
you directly to that video. Thanks guys. In my last videos I showed you how to use
VPN bonding or Multipath TCP in order to glue multiple slower internet lines together into
a faster one. French Software developer Yannick Chabanois,
known as Ycarus or by its anagram Ysurac made a great project which is called OpenMPTCPRouter
that does exactly that. Today, we will install OpenMPTCPRouter – or
let’s call it OMR – in a test lab environment on Proxmox. But first – what is OMR? Well, the name suggests it all. OMR is open, that means it is open source
and free. Free like in freedom but also like in free
beer. It’s actually based on OpenWrt. Second, it’s using MPTCP, so Multipath TCP
in order to create multiple connections to the internet. Why is that a good thing ? Because MPTCP will
be included in the linux kernel in the future, so it will be free as well, wide spread and
here to stay. Third, it’s a router. Why would you bother ? Well, rather than installing
a proprietary software on your PC or on your mobile, it can run transparently in the basement
or in a closet on router hardware or on a raspberry pi or – like we do today – in
a virtual machine on Proxmox and provide faster internet not only to one device but to the
entire household. Now that sounds promising, doesn’t it? Free, here to stay, transparent – amazing. So what do you need to install and run this
? First let’s see what you need in real life, in the physical word and then let’s
see how I built this in a test lab on Proxmox. In real life, we would first need some hardware
to run it on. Yannick has made installer images available
for a wide variety of hardware already. Router boards like the banana pi R2 and R64
are here, images for the raspberry pi or the Linksys WRT3200ACM as well as generic images
for X86 hardware and even ready made virtual machines. Perfect. So we would need some supported hardware. Next, we would need a VPS – a virtual private
server or vserver or whatever you want to call it. Basically a server that you rent in the internet. And of course we need at least two connections
to the internet. Be it a 4G router or a DSL or DOCSIS router
or Starlink or anything else. In my Proxmox test environment I have mocked
this up the following way: I am simulating three internet lines with these three Linux
LXC containers. The OpenMPTCPRouter (OMR) image will run on
a virtual machine here. And the VPS will run on another Virtual machine
here. Either before or after my perimeter router
which is actually OpenWrt from one of my previous videos. All this is running on a little Intel i5 mini
PC that is running Proxmox. There is also a video available on that. Check that little info icon on the top right
of the screen or the description of the video. And guys – I will give you a detailed description
on how to build this lab environment in the next episode. I might also do further episodes on how to
install OMR on different hardware. Let me know in the comments if you are interested. Great, so now let’s first download one of
these images. As I will run it in a virtual machine I take
that VMDK image here which I then import into my virtual machine on Proxmox using the qm
importdisk command. In Virtualbox or VMWare you could use this
image directly as a disk. Just keep in mind that when you run OpenWrt
or OpenMPTCPRouter in a virtual machine then the first network interface you give it needs
to be the router’s LAN adapter. All the following adapters will be the various
WAN adapters which we will then aggregate later. Guys, I will not go too much into detail on
how to define these network adapters etc. If you want to run this in Virtualbox then
watch this video here or if you want to run it in the same environment like I do then
please get a Proxmox Installation ready until the next episode. Again, here’s a video. Cool, our OpenMPTCPRouter (OMR) boots and
is ready for use. Before we start using and configuring it,
we need to get the other endpoint ready and this is the VPS. In my environment this is just another Virtual
Machine. It can’t be a container because it will
need its own kernel. So really a VM. Let’s check on Yannick’s GitHub. First I want to point out that Yannick is
really working hard on this. See ? There were more than a thousand contributions
on his Github the last 12 months. If you compare this to my Github then you
can see that I have barely made a hundred. So I am a lazy bug compared to Yannick. But enough with the sucking up. Let’s check his openmptcprouter-vps repository
and there is actually an installation script for Debian 10 or Ubuntu 20 which we may use
and which installs everything for us. The main things that the script does are:
First it checks for a supported linux version, then it installs the required software package
repositories. It then installs an MPTCP enabled Kernel,
activates all needed modules, builds all required software components such as Shadowsocks and
vray2 and optional VPNs such as Glorytun and OpenVPN, and displays a summary at the end
that contains all the necessary access keys. Cool, so let’s log into that virtual VPS
and run the script. Takes a couple of seconds or minutes even. While this installation goes on, we will quickly
have a short break to allow youtube to show some ads. If you see some ads during the next couple
of seconds please lean back and relax and maybe use the time to quickly click on that
“like” button if you like the episode so far and maybe subscribe to my channel. I’ll be back. (ad break) Guys, thanks for your patience and most of
all thanks for supporting this channel. Ads are an important part of what keeps this
channel alive. So many many thanks for your support. Back to our installation. The installation is finished and then as expected
prints the necessary keys. You may want to copy paste this into a text
file on a USB stick because we need it in the next step where we actually connect the
Router and the VPS. So let’s go back to the OMR. In the virtual environment you need to define
a machine here that can show a web browser in order to do that. I have already done that so let me launch
that machine and open a Firefox browser. I browse to 192.168.100.1 which is OMR’s
default IP. Under System-OpenMPTCPRouter there is a settings
wizzard that asks for the VPS Server IP, the username and the Server Key. That’s the key which we got from the output
during the VPS installation. The default username here is openmptcprouter. In the physical world, this would be the IP
address of the VPS. In my Proxmox environment it’s of course
a private IP address. Further down we can set the parameters for
the network interfaces. I leave the LAN interface as is and just add
the three additional interfaces here which in my case are eth1, eth2 and eth3. That’s actually it. Once we click on Save and Apply then we can
go to the Status tab here and OMR nicely show us the network layout. Awesome. Let’s run some tests. Let me run iperf3 from the client to a machine
outside of the virtual World. At the same time we will monitor the three
shaper machines in order to see if it is really using all interfaces and – yes it is – and
the performance is good, all interfaces are used. Perfect. Cool, so as we could see it is actually quite
easy to set up OMR. Just need that VPS and run the installation
script there. Then need to provide the Access key and the
IP of the VPS to OMR and it connects automatically. Really really well done Yannick! Lot of hard work has gone into this since
I had a look at it a the last time a couple of months ago. Amazing! Just some remarks on the VPS installation
implications. OMR changes your ssh port from 22 to 65222. It installs shorewall firewall on the VPS,
locks down unused ports and also installs needed software components such as shadowsocks
and various VPN software. We can see these changes here – I installed
Webmin on the VPS to show them in a slightly more appealing way than just on the console. Here are the Shorewall rules it added. I have added another three here for iperf3
testing and Webmin – you would probably not want to do this if the VPS was in the
internet, but in the Proxmox lab it’s OK and helpful. We may also see the various zones which it
added to the firewall. Here we can see the changed port for ssh. Last but not least if we look into the startup
configuration, then we notice that a lot of services have been added to the machine. Shorewall, OpenVPN, Glorytun and its very
own omr-service which is in fact a watchdog script that checks every 10 seconds in order
to make sure that the tunnels are up and running. You might say that OMR is actually taking
control over the VPS. So if you already have a VPS which you use
for other stuff then you might want to first test this in the lab before you deploy. If – on the other hand – you are looking
for a VPS just for this purpose then you might want to consider some additional factors. Like for many other solutions, the main limiting
factor here is often the speed from your home to the VPS. Not all providers actually guarantee speed
figures. That means you might have a 100 Mbit connection
at home but only get 10 or 20 to the VPS. If you buy from the three big ones, namely
Microsoft Azure, Amazon AWS or Google Cloud then you can get these without any problems
but it will have a corresponding price tag. From what I have heard, OVH cloud seems to
be the preferred solution here because unlike many others they actually guarantee bandwidth
and also they are not expensive. There are entry level offerings around 5 Euros
per month but I am sure that if you look out for special offers you might even get it a
bit cheaper. Actually, Yannick has a page on his Wiki where
he lists the providers which have been tested. There is also a page in the Wiki that outlines
the changes to the VPS which I had just spoken about. Perfect – so what’s the use case for a
solution like OMR? Obviously, increasing the bandwidth (so increase
the throughput of your line) to the internet, is one use case. Another reason why you might want to use this
is latency optimization – so tell the system to always use the line with the best ping
time. The gamers will be happy to hear about this. A third important use case, especially if
you are working remotely from home, would be to increase the availability of the line,
so better uptime of your internet connection for example. A possible application of this use case would
be internet while you are traveling – you could load balance multiple 4G connections
from various providers and always have a decent internet connection. The VPS does not necessarily need to reside
in a provider’s data center, but it could also be a PC or Raspberry Pi or virtual machine
hosted by a friend or at your home. Amazing. That’s all I wanted to show you today. In the next episode I will explain the setup
of my Proxmox test lab – actually, I have written a little Web interface to the linux
quality of service interface, that means that we can turn those three lines here into bad
lines – very much like you would have on a mobile connection. So you could use this Proxmox lab to test
OMR or any other solution under real life conditions by adding latency and transmission
errors or by simply reducing the upload or download speed here. Until then, many many thanks for watching,
liking, leaving a comment and subscribing to my channel. Stay safe, stay healthy, bye for now!