Всем привет!
Осмелюсь написать в этой ветке.
Debian Linux;
Ситуация такая, есть локальная сеть 192.168.56.0/24 со шлюзом в инет 192.168.56.1; Так же есть VPN-тунель к машине 62.xxx.173.162; После подключения к VPN машинке присваивается внешний IP, соответсвенно таблица маршрутизации выглядит так: receiver:/home/receiver# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 62.xxx.173.162 192.168.56.1 255.255.255.255 UGH 0 0 0 eth0 192.168.222.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 192.168.20.0 0.0.0.0 255.255.255.0 U 0 0 0 tap0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0 Таким образом инет у нас есть на обоих интерфейсах и на eth0 и на ppp0. Задача весь трафик по умолчанию пускать через eth0, через ppp0 должно что-то идти только если именно на ppp0 пришёл запрос, например пришёл пинг на внешний IP, машинка должна ответить через ppp0. Подумав решил организовать такую схему: iptables -t mangle -A INPUT -i ppp0 -j CONNMARK --set-mark 0x200 iptables -t mangle -A OUTPUT -m connmark --mark 0x200 -j MARK --set-mark 0x200 ip rule add pref 10000 fwmark 0x200 table 777 ip route add table 777 via External_IP Но чего-то эффекта немного =) Помогите разобраться, пожалуйста. Может кроме этого всего нужно какие-либо параметры ядра выставить (/proc/sys)? Сейчас в единичку выставлена только ip_forward, т.к. организован NAT с eth1 в eth0