Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

First and foremost I am not a strong networking person but we do not have a network tech here in the office so I got charged with getting this setup and running. Here is the network topology:

Internet --> Cisco Router --> Internal Network (

On this internal network is a box that is running pfSense and has dual NICs (LAN and WAN) and it's sole purpose in life is to be an OpenVPN box; no other traffic moves through it. Now I have configured the ACL in the Cisco Router properly and am able to connect to the pfSense box with an OpenVPN client without a problem but that is as far as a client gets. The client can not see any of the boxes on the internal network.

Our internal network, as stated, is a network and the address pool that I am using for the VPN is (although, for some reason, the VPN Server is setting the mask to I setup a 1:1 NAT so that requests from go to but things still aren't functioning. It seems to me like I need to do additional things to the Cisco to make this work but I am unsure as to what those things are.

Does anyone have any thoughts?

share|improve this question
up vote 0 down vote accepted

An explanation on how OpenVPN connections work can be found here. Because of the fact that your OpenVPN server hands out addresses in the subnet, and your internal LAN is on, there is no default routing that will allow connected clients to "see" IP addresses on the other side of the tunnel.

In order for this to work, you need to "push" routes to the client. In your particular case this means your server configuration has to include a statement like this:

push route

Now, having said this: this will only work if your clients are NOT themselves on the same subnet. If they are on the same subnet, then they will effectively lose that entire subnet, as now (with the new route) all traffic to any addresses in that subnet goes through the tunnel. It is for that reason (and for the fact that most people choose as a private LAN) that I personally have stopped using this particular subnet. I would recommend that you consider changing your office LAN to 192.168.x.0/24 where x is any number between 2 and 253.

You should also consider whether you want VPN clients to forward all their traffic for public IP addresses through the VPN or only traffic for the office LAN. Read the OpenVPN documentation for more details on this.

share|improve this answer
pushing out the route to the 10 network was exactly the trick I needed to get the clients to talk to the internal network. Thanks! – abszero Aug 18 '10 at 11:15

OpenVPN does some odd stuff with routing (as compared to other VPN solutions) - the connection the clients get is on a /30 network for each individual client for easier compatability with windows, so thats why youre seeing the 252 netmask. you can change this behavior if all your clients use linux.

does that cisco router know about these routes, and whats the default route for all the boxes on the internal network? i had a similar issue where our core router was getting all the traffic and then dropping it because a) it was non-routable addresses and b) it didnt know what the proper route was.

what i suspect you need to do is create a static route for this whole subnet in your cisco router with the gateway as the 192.168.1.X address of the openvpn server.

ensure packet forwarding (ie routing) is enabled in the openvpn box, and you should be good.

TL;DR: Routing requires definition in both directions (either static or dynamic), and it sounds like you need to add a route to your cisco box telling it where to find

share|improve this answer
Upon reading your post I added a static route to the Cisco router of but am still getting time outs when I attempt to ping anything on the 10 network. On the pfSense box I have a 1:1 NAT rule defined for to but I have no static routes defined. – abszero Aug 17 '10 at 12:22
you probably want to cut out the NAT rule - adding the static routes will make NATting unnecessary. – Devnull Aug 17 '10 at 12:37
Hmm. Won't NAT be necessary for accessing computers on the business network? For example, one of the servers that a VPN client will need to access is if there is no NAT, and the client tries to go to this IP it will try and resolve on their local network and not the business network. Right? – abszero Aug 17 '10 at 13:15
thats the point of the routing - youre giving the gateways on each network knowledge of the routes necessary to get from one network to the other. wolfgang (below) is also correct that you need to push the local net routing out to the clients – Devnull Aug 17 '10 at 14:47

You probably already have a route to the network as the "local network" in the OpenVPN GUI config. You're probably missing a route on the Cisco to point the OpenVPN tunnel network back to the LAN IP on pfSense.

share|improve this answer
I have 1:1 NAT setup on the tunnel for to and then I added a static route of to the cisco router and still no dice. – abszero Aug 17 '10 at 12:17

A more simple setup would be to just enable layer 2 tunneling. No need for further setup, your clients will just appear to be in the same physical network and will get their IP from the DHCP server in the office. You will find it in the open-vpn web-interface: "Configuration -> VPN Mode"

Hope this helps.

share|improve this answer
See this on using TAP:… – Devnull Aug 16 '10 at 19:07
pfSense does not offer this configuration, at lease in the manner you describe it. – abszero Aug 17 '10 at 12:17

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.