Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: #33

Closed
Johnr24 opened this issue Mar 20, 2020 · 20 comments
Closed

Feature Request: #33

Johnr24 opened this issue Mar 20, 2020 · 20 comments

Comments

@Johnr24
Copy link

Johnr24 commented Mar 20, 2020

Hello I was wondering if you could add a "classic" Bonding mode as you discussed on lowendtalk,
let me know as I would love to test

@ale-rinaldi
Copy link
Member

Hello,
yeah, it's totally possible to implement this feature and I'll go on with that in the next few days (I live in Bergamo, Italy, so I definitely have time for that at the moment).
My main concern is that it won't be really useful, since engarde is not focused on speed by design and I'm not sure you'll gain any benefit from this kind of bonding; however, I'm planning to work on something to improve this aspect, too.
I'll let you know as soon as I have news :)

@Marctraider
Copy link

Be safe man!

@serniko97
Copy link

Hi, I'm also from north Italy 🇮🇹

I just saw this software and I have to say it is very good.
I would like to test the classic bonding too since there is nothing that does that in a convenient way and sometimes I really need that.

@Marctraider
Copy link

Marctraider commented Mar 30, 2020

Would be nice to have classic bonding in addition to redundant mode. (Since that now looks 100.0% stable, been running for months without interruption) we must be sure it does not interfere with current mechanism.

Maybe with a switch in the web interface (And API command) to seamlessly change mode without interruption.

I could implement in my script detection of high bandwidth so it automatically switches back and forth based on bandwidth utilization.

I think this will have to be fixed first though: #22

@ale-rinaldi
Copy link
Member

ale-rinaldi commented Mar 30, 2020

You're right @Marctraider , issue #22 is what I'm trying to work on in those days. I'm approaching with different Golang network libraries to see which fits better, but I don't exclude rebuilding some small parts that handle network traffic in pure C/C++.

However, given the fact that this feature seems to be useful for some pepole, I could work on this before. Just don't expect, for now, to have more than about 250Mbps of throughput, which is what I see being the current limit on an average server (it could be enough in many use cases, by the way).

As always, I'll create separate builds with that new feature and I'll ask you to join me stressing them, so that @Johnr24 and @serniko97 can test out the new feature, and maybe @Marctraider can help me ensuring the redundant mode has no regressions, before merging it all to the official builds :)

@Johnr24
Copy link
Author

Johnr24 commented Mar 31, 2020

Great 250mbps would be amazing
Look forward to seeing your builds
Stay Safe Everyone

@serniko97
Copy link

I have just a question, does it work on top of an existing VPN or there might be conflicts?

@ale-rinaldi
Copy link
Member

Do you mean WireGuard over Engarde over another VPN? I wouldn't recommend this, but as long as the other VPN can pass UDP traffic I see no issues in that.

If you mean using Engarde on an already existing WireGuard VPN, yes it's totally possible, you just need to change the endpoint on the peer with engarde-client (the one with multiple connections) replacing it with 127.0.0.1:your-engarde-port. Please note this does not yet work on the official Windows WireGuard client, so you'll need Tunsafe for that.

@Johnr24
Copy link
Author

Johnr24 commented Apr 23, 2020

Hello,
yeah, it's totally possible to implement this feature and I'll go on with that in the next few days (I live in Bergamo, Italy, so I definitely have time for that at the moment).
My main concern is that it won't be really useful, since engarde is not focused on speed by design and I'm not sure you'll gain any benefit from this kind of bonding; however, I'm planning to work on something to improve this aspect, too.
I'll let you know as soon as I have news :)

Hey!
Hope you are staying safe!
I was just wondering if you'd managed to make any progress on this!
Stay Safe
Best
J

@ale-rinaldi
Copy link
Member

Hello,
yes, luckily we're safe, thanks :)

I'm taking some more time on this: I'm trying to refactor the code as much as I can to clean things up a little and implement the function without the risk to break something else.

I hope to have something working on, let's say, next week :)

Thanks!

@Marctraider
Copy link

Marctraider commented Apr 28, 2020

Mhh was thinking for build stability testing it could be handy if someone would run two simple linux VM's and simulate a Multiple WAN <-> VPS connection.

In that case if stability remains good you'd only have to worry about making the code more efficient :)

Not sure if i personally have the capacity to run more VM's though, but if i do ill look into it.

My real life setup with engarde now works 24/7 stable but i can no longer jeopardize that.

@serniko97
Copy link

Wouldn't a host and a VM be enough for testing?
I could probably do the tests but in a couple of weeks I will start studying and won't have as much time.

@Marctraider
Copy link

Yea I suppose so, i also forgot there were windows binaries.

@ale-rinaldi
Copy link
Member

Hello,
luckily, DigitalOcean gave me $ 50 in credit for engarde developement, and I can easily spin up virtual machines to test it. i use my own laptop for Windows testing, but most of the code is shared so it doesn't make a big difference.

I'll let you know as soon as I have news :)

@ale-rinaldi
Copy link
Member

Small update just to say I didn't forget about this, but some other works unfortunately took more priority than they should. Still working on this by the way, news soon I hope :)

@jphein
Copy link

jphein commented Jun 21, 2020

I would love to test a classic bonding setup using WireGuard. I currently have only seen OpenVPN implementations. Let us know! =]

Thanks for the great work!

@ale-rinaldi
Copy link
Member

Hello,
just to say I'm still alive but I'm not having free time to work on this as I'd like. But I didn't forget and I'm really going to implement this :)

@Marctraider
Copy link

No rush man, its done when its done :-)

@jphein
Copy link

jphein commented Jul 27, 2020

Glad you're alive!!!! Yay =]

@Johnr24
Copy link
Author

Johnr24 commented Jan 31, 2021

Just to say the popular OpenMPTCPRouter Project already has this functionality

@Johnr24 Johnr24 closed this as completed Jan 31, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants