Собственно есть бубунта сервер 8.10. Есть безлимитный впн. Необходимо чтобы squid работал через впн.
ip rule add fwmark 1 table vpn
ip route show table main | grep -Ev ^default \
| while read ROUTE ; do
ip route add table vpn $ROUTE
done
ip route add default dev ppp0 table vpn
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 0 > echo 0 > /proc/sys/net/ipv4/conf/ppp0/rp_filter
echo 0 > echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter
iptables -A OUTPUT -t mangle -j CONNMARK --restore-mark
iptables -A OUTPUT -t mangle -p icmp -j MARK --set-mark 1
iptables -A OUTPUT -t mangle -m owner --uid-owner proxy -j MARK --set-mark 1
iptables -A OUTPUT -t mangle -j CONNMARK --save-mark
В table vpn у нас прописаны томские сети и дефолтом стоит впн. В table main - томские сети и дефолтом eth1. Трафик маркируется, все работает замечательно. Tracert с сервера идет через впн, squid работает через впн (имеется ввиду внешка). Но стоит удалить из table main дефолтный маршрут - все, затык. Пускаешь трасерт с сервера во внешку - говорит что сеть недоступна. При этом томск ходит нормально. Ну и сквидом тоже самое (томск работает, а внешка нет). Почему так? Стоит прописать дефолт в main - и все поехало...