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
Load-balancing destination address #10
Comments
I'm curios what is the use-case for this feature? (Shouldn't the load-balancing be handled at the other end? I.e. somewhere between the Wireguard router and the actual remote server? One could easily achieve this in a number of ways.) |
If you have web servers on the peers:
The objective is to set up a load balancer (LB) on a third system to round-robbin requests from the 2, and expose that to the internet. If you use something like HAProxy or Nginx Plus, you'd need to have WireGuard installed on the LB so that the LB software is able to connect to those peers by IP. However you can also run 1
Of course, you could also run multiple forwards of onetun (#2) and let an LB software do the round-robbin, but that adds an extra step in the chain:
|
Although technically I see nothing wrong with the proposed use-case, I don't find it practical enough to be worth complicating Why I'm saynig it's not "practical enough"? When speaking of load-balancing there are two major concerns: distributing load or high availability. So let's address them individually:
Therefore I think the second approach would make more sense: let |
For what it's worth, I don't envision You make a good point that letting the LB software handle the round-robin and health checks would help |
I've decided not to implement this since it should be covered by #2 and putting a capable LB software in front. I'll reopen if I change my mind. |
Add support for passing multiple destination addresses for one source address. Should round-robbin the destination address to use for each incoming connection on the source address.
As suggested by @DanielBodnar
The text was updated successfully, but these errors were encountered: