OpenWrt Forum Archive

Topic: OpenVPN route all traffic and preserve Internet

The content of this topic has been archived on 3 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Hi,
I have searched the web about this topic, but did not find a working solution for my problem. I set up a openvpn server following the tutorial at http://wiki.openwrt.org/doc/howto/vpn.openvpn
I did everything exactely from the beginning including "Routing all traffic through the tunnel". Afterwards I can ping every device on my local network, but was not able to connect to the internet through the VPN tunnel. The intention to set up VPN was for me to have access to all my local devices at home and to have  a secure internet connection through my home router. The client configuration looks like:

##############################################
# Sample client-side OpenVPN 2.0 config file #
# for connecting to multi-client server.     #
#                                            #
# This configuration can be used by multiple #
# clients, however each client should have   #
# its own cert and key files.                #
#                                            #
# On Windows, you might want to rename this  #
# file so it has a .ovpn extension           #
##############################################

# Specify that we are a client and that we
# will be pulling certain config file directives
# from the server.
client

# Use the same setting as you are using on
# the server.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
;dev tap
dev tun

# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel
# if you have more than one.  On XP SP2,
# you may need to disable the firewall
# for the TAP adapter.
;dev-node MyTap

# Are we connecting to a TCP or
# UDP server?  Use the same setting as
# on the server.
;proto tcp
proto udp

# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote 81.217.167.177 1194
;remote my-server-2 1194

# Choose a random host from the remote
# list for load-balancing.  Otherwise
# try hosts in the order specified.
;remote-random

# Keep trying indefinitely to resolve the
# host name of the OpenVPN server.  Very useful
# on machines which are not permanently connected
# to the internet such as laptops.
resolv-retry infinite

# Most clients don't need to bind to
# a specific local port number.
nobind

# Downgrade privileges after initialization (non-Windows only)
;user nobody
;group nobody

# Try to preserve some state across restarts.
persist-key
persist-tun

# If you are connecting through an
# HTTP proxy to reach the actual OpenVPN
# server, put the proxy server/IP and
# port number here.  See the man page
# if your proxy server requires
# authentication.
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]

# Wireless networks often produce a lot
# of duplicate packets.  Set this flag
# to silence duplicate packet warnings.
;mute-replay-warnings

# SSL/TLS parms.
# See the server config file for more
# description.  It's best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.
ca ca.crt
cert client.crt
key client.key

# Verify server certificate by checking
# that the certicate has the nsCertType
# field set to "server".  This is an
# important precaution to protect against
# a potential attack discussed here:
#  http://openvpn.net/howto.html#mitm
#
# To use this feature, you will need to generate
# your server certificates with the nsCertType
# field set to "server".  The build-key-server
# script in the easy-rsa folder will do this.
;ns-cert-type server

# If a tls-auth key is used on the server
# then every client must also have the key.
;tls-auth ta.key 1

# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
;cipher x

# Enable compression on the VPN link.
# Don't enable this unless it is also
# enabled in the server config file.
;comp-lzo

# Set log file verbosity.
verb 3

# Silence repeating messages
;mute 20

Thanks in advance

Hi,

I've been playing a lot with OpenVPN lately. I tested many different configurations so I am sure I probably faced a similar issue along the way.
Hard to say what is wrong, but I recommend some commands that may help you to narrow it down:
Are you connecting to the VPN server from a different Network, or from your LAN?
-check if IP address is correct
-check routing table
-traceroute to check where traffic is stopping

Windows client?
ipconfig
route print
tracert -d 8.8.8.8

Linux?
ifconfig
route -n
tracepath -n 8.8.8.8

You might have to change some IPtables to allow traffic back and forth.
Hope this helps.

One way to do this is add routes back into your network(s) via an up script.
This would allow you to have all traffic sent to the internet at the same time give access to local services.

Do some searching on how to add routes via the up script when the vpn comes up.

Be careful in how you do this you don't want to break your ability to get into the router by doing this. I have not done this but this is the only thing I could think of that would make this work.
Most of my configurations are done in a split tunnel and then I add host that I want going through the vpn to the routes.

In my case I can access Internet using the IP, it not work with domain name. So I add the DNS (network > interfaces > wan > DNS) to use Google public DNS (8.8.4.4, 8.8.8.8).

The discussion might have continued from here.