PPTP VPN and Local LAN Routing

Typically when you VPN into a Network, all traffic including internet traffic gets routed to that VPN Network. This is of course unnecessary and mostly undesirable for reasons such as

  • The connection becomes slow with the longer route.
    • If you are routing through a Home (ISP) Network, the upload speeds in the Home Network are usually tiny and all your internet downloads are peaked at your Home internet upload speeds.
    • If the two networks are geographically in different locations you may doing a round trip for each access.
  • It changes your browsing privacy which may or may not be desirable.
    • You appear to be using internet from the VPN'd in network
    • You browsing privacy is now encrypted on the 1st network (if connection is encrypted) but visible on the 2nd VPN'd in network

To allow regular traffic to go through the default ISP connection and only those that need to access the resource behind the VPN, go through the VPN Network, the following routing adjustments are required as one way to make it happen.

Setup

The setup is as follows

  • ASUS (Home) Router RT-AC66U, which has built in PPTP VPN Server.
  • Windows 7 Desktop

This should work with a different router as well as the changes are mostly on the Windows side.

Configuration

Router

On the ASUS router, setup a default configuration as PPTP VPN Server.

Windows

On the VPN setup on Windows is where you will need to change the default slightly. The steps for setting up VPN itself are the standard steps as below:

  • Control Panel → Set up a connection or network
  • Connect to a workplace
  • Set-up New Connection
  • Use my Internet connection (VPN)
  • Under “Connect to a Workplace Dialogue Box”
    • Enter the Internet Address - public IP address of the connection
    • Destination Name (e.g. Home VPN)
    • Enter User name and Password
    • Hit connect

You will connect now, but at this time you would have all traffic routing via the “Home VPN”.

Network Configuration

To start routing traffic as we had desired above the following changes are required. Once the basic network is setup, make the below changes to the New Network (called “Home VPN”) below:

Click on:
“Home VPN” → Properties → Networking → TCP/IPv4 → Properties → Advanced → “Uncheck” Use default gateway on remote network

Reconnect to the “Home VPN” Network for the changes to take effect.

Change ROUTE

Since we Unchecked, “Use default gateway”, there is no gateway at all to access the Remote Network we have VPN'd into. If you Check the “Use default gateway”, this would have resulted in a gateway setting that causes all traffic to use this gateway. We need to now ADD a new route, just to access the resources behind the VPN. Issue the following command (as administrator) in the Windows Command Window to effect this: (Actually don't just run the command below yet! There are some parameters that will be different on your Windows client).

route ADD 192.168.1.0 MASK 255.255.255.0 192.168.10.2 IF 59

The few parameters would be different based on your individual settings

  • 192.168.1.0 is the Remote Network address (starting address) - This is the Local LAN address of the Remote Network
  • The 2nd is the Network mask and indicates that any access to 192.168.1.0/24 goes through this route. Most Home users and routers have a slash 24 subnet.
  • 192.168.10.2 is the PPP Adapter IP address. You get that address by issuing a ipconfig in your Windows client and noting the Adapter IP.
  • 59, is the “Interface Number” you can get from the “Interface List”, by doing a route PRINT command for the specific PPP Interface.

See the “To Filter for both IPconfig & Interface output” Section below on how to get these numbers.

ipconfig output

To find out your PPP Adapter IP Address:

PPP adapter Home VPN:

   Connection-specific DNS Suffix  . :
   IPv4 Address. . . . . . . . . . . : 192.168.10.2
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . :
Interface list output

To find out the VPN Adapter Interface Number:

C:\Users\someuser>route PRINT
===========================================================================
Interface List
 59...........................Home VPN
 ...
 ...
To Filter for both IPconfig & Interface output

Use the below commands to display just the required items that go into the route command. This assumes your VPN connection is called “Home VPN”.

route PRINT | findstr "Home VPN"
netsh interface ip show addresses "Home VPN" | findstr "IP"
Full ROUTE

Below is the (Typical) Route Table after adding the new route. The gateway shown below is 10.10.101.1 which will be different based on what your local network gateway is.

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      10.10.101.1    10.10.101.157     20
      10.10.101.0    255.255.255.0         On-link     10.10.101.157    276
    10.10.101.157  255.255.255.255         On-link     10.10.101.157    276
    10.10.101.255  255.255.255.255         On-link     10.10.101.157    276
  aaa.bbb.ccc.ddd  255.255.255.255      10.10.101.1    10.10.101.157     21
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      192.168.1.0    255.255.255.0         On-link      192.168.10.2     11
    192.168.1.255  255.255.255.255         On-link      192.168.10.2    266
     192.168.10.0    255.255.255.0      192.168.1.1     192.168.10.2     11
     192.168.10.2  255.255.255.255         On-link      192.168.10.2    266
     192.168.56.0    255.255.255.0         On-link      192.168.56.1    276
     192.168.56.1  255.255.255.255         On-link      192.168.56.1    276
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    276
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link      192.168.56.1    276
        224.0.0.0        240.0.0.0         On-link     10.10.101.157    276
        224.0.0.0        240.0.0.0         On-link      192.168.10.2    266
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link      192.168.56.1    276
  255.255.255.255  255.255.255.255         On-link     10.10.101.157    276
  255.255.255.255  255.255.255.255         On-link      192.168.10.2    266
===========================================================================
Persistent Routes:
  None

The specific line that was included in the route after adding the new route is:

      192.168.1.0    255.255.255.0         On-link      192.168.10.2     11

Route validation

Validate route by doing a Trace Route (tracert) to an IP address in the Remote Network and to an Internet address. In the specific IP/Route added above, a ping to google for example goes through the original route

tracert google.com
Tracing route to google.com [74.125.227.169]
over a maximum of 30 hops:

  1     1 ms     1 ms     3 ms  10.10.101.3
  ...

And a trace route to an address in the remote network does not go through the 10 dot route but instead directly as below:

tracert 192.168.1.100

Tracing route to ubuntu01 [192.168.1.100]
over a maximum of 30 hops:

  1    98 ms   102 ms   100 ms  router.asus.com [192.168.1.1]
  2   104 ms   108 ms   105 ms  ubuntu01 [192.168.1.100]

Trace complete.

Notice that it even got hold of the server name ubuntu01 from the remote network DNS. This can be router specific.

Reconnection

If the VPN connection is re-established, the new route will have to be re-added.

What else?

I was hoping changing the Metric for the VPN connection would work, and there is an option to define Metric when defining the VPN connection. However, for whatever reason, the metric was not being honored. Comments on that are appreciated as it would avoid the need to add a route manually. Also, any other ways to automate the route addition would be great.

Batch script

Below is a batch script to perform the above function. Note the hard-coding of the 192.168.1.0 address space, the 192.168.10.2 VPN connection address and the name of the VPN (Home VPN). The two rem statements can soft code this, but I have not tested this against all possibilities, hence the hard-coding. Run this script as administrator.

FOR /F "tokens=*" %%a in ('"route PRINT | findstr "Home VPN""') do SET HVPN=%%a
SET INTNUM=%HVPN:~0,2%
rem for /f "tokens=1,2,3,4 delims=/ " %a in ('"route PRINT | findstr "192.168.1.0""') do set net1=%a&set mask1=%b&set ip1=%d
rem route ADD %net1% MASK %mask1% %ip1% IF %INTNUM%
route ADD 192.168.1.0 MASK 255.255.255.0 192.168.10.2 IF %INTNUM%
pause

VPN into a network with same IP range

When you have to VPN into another network that has the same IP as the current LAN, then you will need to do some route deletes to route all traffic via the VPN. Assume both networks are on 192.168.1.1/24 network. In that case a typical route print may give the following output after connecting to the VPN. In this scenarios we don't “Uncheck” Use default gateway on remote network. We allow the default setting to take the route via VPN since we need all connections to only go through the VPN and none of the connections to go through the local network.

Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.138   4250
          0.0.0.0          0.0.0.0         On-link      192.168.10.3     26
      aa.bb.cc.dd  255.255.255.255      192.168.1.1    192.168.1.138   4251
etc.

To delete just the 1st line (of route) so that all traffic goes via the VPN (aa.bb.cc.dd address via 192.168.10.3) do the following

route delete 0.0.0.0 mask 0.0.0.0  192.168.1.1

The new route will now show that all traffice goes through 192.168.10.3 which is the VPN network gateway.

Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0         On-link      192.168.10.3     26
      aa.bb.cc.dd  255.255.255.255      192.168.1.1    192.168.1.138   4251
etc.

QR Code
QR Code tech:pptp_vpn_routing (generated for current page)