On 2018-09-11, Andrew Lemin <a_le...@hotmail.com> wrote:
> Hi list,
>
> I use an OpenVPN based internet access service (like NordVPN, AirVPN etc).
>
> The issue with these public VPN services, is the VPN servers are always 
> congested. The most I’ll get is maybe 10Mbits through one server.
>
> Local connection is a few hundred mbps..
>
> So I had the idea of running multiple openvpn tunnels to different servers, 
> and load balancing outbound traffic across the tunnels.
>
> Sounds simple enough..
>
> However every vpn tunnel uses the same subnet and nexthop gw. This of course 
> won’t work with normal routing.

rtable/rdomain with openvpn might be a bit complex, I think it may need
persist-tun and create the tun device in advance with the wanted rdomain.
(you need the VPN to be in one, but the UDP/TCP connection in another).

Assuming you are using tun (and so point-to-point connections) rather
than tap, try one or other of these:

- PF route-to and 'probability', IIRC it works to just use a junk
address as long as the interface is correct ("route-to 10.10.10.10@tun0",
"route-to 10.10.10.10@tun1").

- ECMP (net.inet.ip.multipath=1) and multiple route entries with
the same priority. Use -ifp to set the interface ("route add
default -priority 8 -ifp $interface $dest").

The "destination address" isn't really very relevant for routing
on point-to-point interfaces (though current versions of OpenBSD
do require that it matches the destination address on the interface,
otherwise they won't allow the route to be added).


Reply via email to