Saturday, April 14, 2012

VPN routes on billion modems

THE STORY

I have just spent 12 hours configuring my new Billion 7404vnox modem/router. The basic setup was easy. It got hard when I wanted to set up some advanced VPN configuration. In particular I wanted to:

- set up a remote PPTP dial out connection (i.e. the billion is the vpn client)
- route only SOME traffic over the VPN tunnel - based on ip address I wanted some traffic to go over VPN and the rest to go through the normal ipwan interface.

I laughed, I cried, I gave up and I gave up again... actually I didn't laugh. Nope - no laughter at all.  I'm posting this so that if you are a poor sucker attempting this same task this will help you.

THE PROBLEM

Setingt up the VPN dialout connection is easy.

The problem begins when you don't tick the "Active as default route" checkbox.
With this checkbox checked ALL your traffic goes over the VPN. With it unchecked NONE of your traffic goes over the VPN.

After playing with static routes for about five hours I realized problem number one: the user manual does not tell you how to do this - stop reading it, it's not there! WTF? Why build a router that can handle 16 VPN tunnels and then not tell you how to route traffic to them?

Next, hours of trying every darn page in the darn web admin console to realize problem number two: there is no way to set this up in the web admin console! OMFG!

Problem three: very little help on the web. The whirlpool forums had a few requests from years ago, poor fellows asking how to do this but no answer from anyone... despite the fact that Billion has customer reps working those forums. Nice.

THE SOLUTION

(Disclaimer: don't try this if you are a noob - if you fry your router it's your fault not mine)

A post by MonkeyBoy on the (password protected) billion forums provides the key:

You have to use the CLI to achieve this. Ok, let's get the CLI manual, oh guess what, Billion don't make one for the 7404vnox!

Based on MonekyBoy's advice here's what I did to get it working (I'm running on Linux mint but it should all work on any other OS):

- Open a terminal / command prompt.
telnet 192.168.1.254

- enter your username and password at the prompts
- Now you want to find the name of your vpn interface:
ip list interface

- Mine was "@ip_pppdevice7"
- Now add your route (assumes you understand netmasks):

ip add route foobar 74.125.0.0. 255.255.0.0 interface @ip_pppdevice7

where:

foobar = the arbitrary name you give to the route
74.125.0.0 255.255.0.0 = the subnet to route
@ip_pppdevice7 = interface to route to

- Keep adding routes for different subnets as desired. I have added about 24 so far.

- Once you are done you can check with:
ip list route

- And save config with:
system config save

Hope this helps someone.