Load Balance OpenVPN Client



  • Hello,

    Here's my setup:

    House 1

    1 PFSense with 2 WAN's
    Each WAN as OpenVPN Server Enabled on Port 443 (wan1.house1.com:443, wan2.house1.com:443)

    House 2

    1 PFSense with 1 WAN
    Connected to Both OpenVPN (wan1.house1.com:443, wan2.house1.com:443)

    I want to Load Balance the traffic from the OpenVPN Clients configured on House 2. My issue is that each OpenVPN Client pull's the same routes from House 1.
    I wish you could help me.
    Thanks!



  • Rather than have your OpenVPN clients pull routes from the server, use policy-based routing on the client firewall.  Set up two interfaces corresponding to each OpenVPN tunnel.  In interface assignments you should see 'ovpncX' where 'X' is an integer; one for each client tunnel. That should also provide two new gateways.  Combine those gateways into a gateway group, and create rules in your firewall that route traffic destined for the other end of the tunnel via this gateway group.

    This is similar to how some of us use multiple tunnels with a provider like PIA to improve throughput.



  • I disabled pulling routes on OpenVPN and created a Firewall Rule to pass the traffic to the destination network through the gateway group (the two openvpn interfaces) however it does not seem to work, I get no answer.
    If I try to create a static route the created Gateway Group does not appear, I don't know what I'm doing wrong.
    I did a Ping (Failed) and checked the States Table and my request was on WAN interface, I belive it's because is my default route?



  • I was testing on the PFSense Console that's why it was not working. I tested on a computer connected to the LAN of the PFSense and the traffic is being routed however the Load Balacing is not working as expected, most of the traffic is leaving from the first OpenVPN Client.

    EDIT: I tested with a download accelerator downloading a file on a web server hosted on the "House 1" and it uses all the bandwith from both WAN's.
    I guess my problem is solved then.
    If someone knows some ways to improve or tweak feel free to post.