I am trying to setup route table on my OS X machine so regular internet traffic doesn't go through VPN but only specific destinations will be targeted via VPN.
When I connect to VPN it creates new 'default' route for interface 'jnc0' destination which redirects all the traffic to VPN.
netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.1.1.1 UGSc 36 65 jnc0
default 192.168.0.1 UGScI 20 0 en1
Is it possible to set priority so all traffic goes via default 192.168.0.1 en1
instead of default 10.1.1.1 jnc0
?
I have script for Ubuntu which creates routing table but I am not sure how to adjust it for OS X.
Here is the script:
SET_PRIORITY=$(sudo ip rule | grep -c $ROUTE_TABLE_NAME)
if [ $SET_PRIORITY -eq 0 ]; then
sudo ip rule add from all lookup $ROUTE_TABLE_NAME prio 1000
fi
sudo ip route flush table $ROUTE_TABLE_NAME
sudo ip route add default via $ROUTER_IP dev $LOCAL_IFACE metric 0 table $ROUTE_TABLE_NAME
sudo ip route add default via $VPN_IP dev $VPN_IFACE metric 1 table $ROUTE_TABLE_NAME
sudo ip route add 172.0.0.1/16 via $VPN_IP dev $VPN_IFACE table $ROUTE_TABLE_NAME
When I try to execute:
sudo ip rule add from all lookup $ROUTE_TABLE_NAME prio 1000
I get sudo: ip: command not found
.
Also when I try to execute:
sudo rule add from all lookup $ROUTE_TABLE_NAME prio 1000
it doesn't work either with error sudo: rule: command not found
.
Here is the code:
sudo ip route flush table $ROUTE_TABLE_NAME
sudo: ip: command not found
sudo route add default via $ROUTER_IP dev $LOCAL_IFACE metric 0 table $ROUTE_TABLE_NAME
route: bad address: via
sudo route add 172.0.0.1/16 via $VPN_IP dev $VPN_IFACE table $ROUTE_TABLE_NAME
route: bad address: via
I would appreciate any help and guidance.