docker-openmptcprouter-vps icon indicating copy to clipboard operation
docker-openmptcprouter-vps copied to clipboard

Multiple Error Docker VPS Version

Open MrTheSkream opened this issue 6 years ago • 9 comments

Hello,

I currently have several errors on the docker version of OpenMPTCPRouter-VPS. Here are the log captures as well as configuration files.

Error :

  • Glorytun TCP : https://i.imgur.com/ffzR8MC.png
  • Glorytun UDP : https://i.imgur.com/s3oKNnd.png
  • Shadowsocks : https://i.imgur.com/OVZljBP.png
  • OpenVPN : https://i.imgur.com/xAD3elJ.png

Files Config :

  • .env --> https://i.imgur.com/FGBgKzq.png
  • shadowsocks : https://i.imgur.com/50tClUP.png
  • openvpn : https://i.imgur.com/Qp1mzHd.png

Specifications

  • OpenMPTCProuter version: openmptcprouter v0.44.5 r7416-50789acf4e
  • OpenMPTCProuter VPS version: docker-openmptcprouter-vps
  • OpenMPTCProuter platform: RPI3 / Dedicated Server With Dedian 9 Stretch

MrTheSkream avatar Dec 19 '18 10:12 MrTheSkream

The docker version is in an alpha state. You must have a MPTCP enabled kernel.

Ysurac avatar Dec 19 '18 10:12 Ysurac

You must have a MPTCP enabled kernel.

Perhaps using "diuid" (https://github.com/weber-software/diuid) you can run it in a host without a MPTCP enabled kernel.

The concept is simple: a Docker container running inside a UML (with a custom kernel) packaged inside a Docker image.

So, if you modificate the kernel compiled for "diuid" then you can "enable" MPTCP inside the docker image.

About the performance, it will be impacted. But, if it works, then it can be a solution for running it inside standard docker hosts. Futhermore, the networking connection between the inner and outher dockers needs to be improved (at time it uses an SSH reverse forward). We can study how to improve it if this way will be used with the Docker-OMR-VPS.

Regards.

lars18th avatar Feb 13 '19 09:02 lars18th

Hi @Ysurac ,

And another option (perhaps with more performance) is the "Runq" project: https://github.com/gotoz/runq

It uses KVM/Qemu to run docker images, so it can be fast if the host has a kernel with KVM module support. Futhermore it can use a custom kernel (read about /var/lib/runq/qemu in https://github.com/gotoz/runq#developing-runq) and works inside a VM (nested VM).

However, in fact this isn't a real docker image. So it runs as a regular process in the host.

I hope it helps.

lars18th avatar Feb 13 '19 10:02 lars18th

what do I get from running it on a docker? I can make it work for more than 1 client?

mstrolo avatar Apr 30 '22 19:04 mstrolo

what do I get from running it on a docker? I can make it work for more than 1 client?

I was hoping to run it as a container vs my current virtual machine in esxi because updating a virtual machine is painful. As a container the configuration can be mapped allowing the container to be redeployed with the latest code without the configuration needing to be manually exported and imported each time. Mind you, that's not what makes virtual machine updating painful. That's painful because to update requires installing a new virtual machine from OVA to replace the prior one (this is what docker excels at doing rapidly) and then importing your exported config. The imported config however tends to also write mac-address information to the interface configuration, so a new VM gets new mac addresses and as soon as you import your config you've nuked the network setup with no good way to resolve it. So you have to unpack the backup tar.gz, edit the network information in the backup to remove the mac address option, and re-pack it.

SpectroHA avatar Aug 30 '22 20:08 SpectroHA

Hi @seijirou302 ,

I agree with you! The current implementation of the OMR is painful if you aren't using the same configuration of the develper: 1 hardware router for your entire LAN and a VPS. From my point of view a "containerized" version of both (router and VPS) will be more confortable, user-friendly and easy to update. I hope @Ysurac will want to follow in this direction in the future.

Any way, thank you @Ysurac for this useful project! 😉

lars18th avatar Sep 04 '22 07:09 lars18th

Container can be used only if host kernel support MPTCP. If host kernel is patched (or already have MPTCP support enabled for kernel >= 5.15, only BBR2 will be missing), should not be difficult to dockerize.

Ysurac avatar Sep 04 '22 09:09 Ysurac

Container can be used only if host kernel support MPTCP. If host kernel is patched (or already have MPTCP support enabled for kernel >= 5.15, only BBR2 will be missing), should not be difficult to dockerize.

I understand the requirment of the patched kernel. However, using a Virtual Machine for the host, then the Docker module could work directly. So, are you interested on support this environment?

lars18th avatar Sep 04 '22 09:09 lars18th

I am grateful for this project and for Ysurac's work. I very much appreciate that a VM for OMR is supported at all even if updating it is fidgety.

SpectroHA avatar Sep 04 '22 12:09 SpectroHA