StrongVPN's instructions (and their provided ovpn file) requires the user to add "redirect-gateway def1" to their configuration. After I added that, my ovpnc3 table was properly displaying a default route.
Without:
Code:
107.1.1.1 dev eth0 proto kernel scope link
107.1.1.0/27 dev eth0 proto kernel scope link src 107.1.1.6
10.8.0.0/24 dev tun21 proto kernel scope link src 10.8.0.1
192.168.10.0/24 dev br0 proto kernel scope link src 192.168.10.1
100.64.16.0/21 dev tun13 proto kernel scope link src 100.64.16.23
127.0.0.0/8 dev lo scope link
After I added it to the custom config section:
Code:
107.1.1.1 dev eth0 proto kernel scope link
192.200.152.4 via 107.1.1.1 dev eth0
107.1.1.0/27 dev eth0 proto kernel scope link src 107.1.1.6
10.8.0.0/24 dev tun21 proto kernel scope link src 10.8.0.1
192.168.10.0/24 dev br0 proto kernel scope link src 192.168.10.1
100.64.16.0/21 dev tun13 proto kernel scope link src 100.64.16.23
127.0.0.0/8 dev lo scope link
0.0.0.0/1 via 100.64.16.1 dev tun13
128.0.0.0/1 via 100.64.16.1 dev tun13
default via 100.64.16.1 dev tun13
So to resolve your issue, you probably just need to insert "redirect-gateway def1" in your custom config. PIA pushes that at config-time, while StrongVPN expects the user to specify it in their client config.
As for the firmware, I see two potential issues that I'll need to investigate:
1) how redirect-gateway def1 is handled when an ovpn file is imported. Currently, it's not being added to the custom config section, which is what breaks it for StrongVPN users who import the ovpn file. I need to review how I import that parameter.
2) vpnrouting.sh might need to be more robust in handling cases where there is no provided remote gateway. I'll need to review that code.
@Martineau , since you often debug stuff related to ip routing, here's a handy tip to troubleshoot that kind of problem: replace /usr/sbin/ip by a wrapper script which will send to syslog the arguments, before passing them to a (real) copy of /usr/sbin/ip. That way, you can see actually which ip commands are sent by OpenVPN (in addition to the scripts). Basically:
Code:
cp /usr/sbin/ip /tmp/ip
nano /tmp/fakeip (see below for content)
mount -o bind /tmp/fakeip /usr/sbin/ip
/tmp/fakeip looks like this:
Code:
#!/bin/sh
logger -t "ip-debug" "$*"
/tmp/ip $*
Then you get a detailed list of all "ip" commands being run by the router inside your syslog.
The same trick can easily be applied as well to "tc" or "iptables". Old leftover from my WDLXTV days