I've been working with my OpenVPN server for a while, and I have a rather interesting problem. I need to redirect all client traffic through the tunnel except for a couple IP's that need to be resolvable locally. The way I'm doing this is pushing these routes from the server:

What I've gathered

I'm assuming that 0.0.0.0 is a kind of code for "everything," so I'm not sure how I could get this to work, but the general idea is that I need a specific IP range (172.16.*) to be resolvable on the LOCAL NETWORK (of the client) meaning it does not go through the VPN tunnel and the client can connect to 172.16.* locally.

Is this possible? Routes can be executed through the command line, server "push" or client config options. Any way to get this to work while still routing other traffic through would do, really.

Additional Info

I have the server running on Debian 64-bit and the client running on Windows 7 (although Vista needs to work as well).

Technically 0.0.0.0 only means "everything" when added with a 0.0.0.0 netmask, or "/0". In your case, two more-specific routes (0.0.0.0/1 and 128.0.0.0/1) are added instead; the end result is the same (all addresses matched), but the added routes take priority over a "default" 0.0.0.0/0 route. You are still correct, though.
–
grawityAug 31 '11 at 22:43