~ # ip route show 10.8.0.5 dev tun0 proto kernel scope link src 10.8.0.6 <--- the ip assigned to my WRT 10.8.0.1 via 10.8.0.5 dev tun0 <--- the ip of my vpn server 192.168.5.0/24 dev br0 proto kernel scope link src 192.168.5.1 <--- my lan network 200.76.225.0/24 via 10.8.0.5 dev tun0 <--- pushed network i sent to debug 192.168.254.0/24 dev vlan1 proto kernel scope link src 192.168.254.1 <--- WAN network of my router 169.254.0.0/16 dev br0 proto kernel scope link src 169.254.255.1 127.0.0.0/8 dev lo scope link default via 192.168.254.254 dev vlan1 This is what ive tried so far with no success ip rule add lookup main prio 32766 ip rule add lookup default prio 32767 ip rule add from 10.8.0.6 table 100 prio 100 ip rule add fwmark 0x100 table 100 prio 101 ip route flush table 100 for TABLE in 100 do ip route | grep link | while read ROUTE do ip route add table $TABLE to $ROUTE done done ip route add table 100 default via 10.8.0.5 iptables -t mangle -A PREROUTING -i tun0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x100 iptables -t mangle -A POSTROUTING -o tun0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x100 iptables -A POSTROUTING -t nat -m mark --mark 0x100 -j SNAT --to-source 10.8.0.6 iptables -t mangle -A PREROUTING -i br0 -m multiport -p tcp --dport 222,22 -j MARK --set-mark 0x100