2

I have a local network on 192.168.1.0 with netmask 255.255.255.0. When I connect to a VPN though OpenVPN (as a client), it pushes a route for 192.168.1.0 that clobbers the existing one, making my local network inaccessible. I don't to access anything on 192.168.1.0 on the remote machine; I'd like to just ignore it, while accepting the other routes that are pushed. My client is Ubuntu 10.10.

How can I skip the one offending route?

3 Answers 3

3

Use the

--route-up --route-noexec

option in openvpn and completely ignore the routes being pushed to you, instead adding static routes to the specific hosts you want to access through the tunnel.

openvpn --route-noexec --route-up /tmp/myscript --config ./client.ovpn

where /tmp/myscript is

route add -host 192.168.1.69 gw ${route_net_gateway}

Something similar to that, I haven't actually tested this but it should work. You probably want to remove the routes when you disconnected as well.

1

In addition to @hellomynameisjoel's answer, note that you can access the pushed routes in the route-up script via environmental variables. So you can add necessary routes only.

Alternatively, you can add a route using the default gateway in the OpenVPN config file:

route 192.168.1.0 netmask 255.255.255.0 net_gateway

After this, adding an identical pushed route will fail.

P.S. Tested on ArchLinux/OpenVPN 2.3.5.

0

Is your local network very big? It might be simplest just to renumber your network to a non-conflicting range.

Otherwise, you could wrap your openvpn startup command in a script that fixes the route after OpenVPN is started up.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .