Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Ответ с того же интерфейса
# iptables -t mangle -A INPUT -i ppp0 -j CONNMARK --set-mark 0x1
ip rule add dev ppp0 table isp1
ip rule add from s.s.s.s table isp1
# ip rule list
0: from all lookup local
200: from v.v.v.v lookup vpn
201: from s.s.s.s lookup isp1
202: from s.s.s.s lookup isp2
32766: from all lookup main
32767: from all lookup default
# ip rule list
0: from all lookup local
100: from all fwmark 0x4/0x4 lookup vpn
101: from all fwmark 0x1/0x1 lookup velton
102: from all fwmark 0x2/0x2 lookup ukrtel
200: from v.v.v.v lookup vpn
201: from s.s.s.s lookup isp1
202: from s.s.s.s lookup isp2
32766: from all lookup main
32767: from all lookup default
# ip rule list
0: from all lookup local
200: from v.v.v.v lookup vpn
201: from s.s.s.s lookup isp1
202: from s.s.s.s lookup isp2
300: from all fwmark 0x4/0x4 lookup vpn
301: from all fwmark 0x1/0x1 lookup velton
302: from all fwmark 0x2/0x2 lookup ukrtel
32766: from all lookup main
32767: from all lookup default
# cat /etc/ppp/ip-up.d/90-local.sh
#!/bin/sh
chpst -l /etc/ppp/.lock /etc/ppp/ip-up.local.safe "$@"
# cat /etc/ppp/ip-down.d/90-local.sh
#!/bin/sh
chpst -l /etc/ppp/.lock /etc/ppp/ip-down.local.safe "$@"
# cat /etc/ppp/ip-up.local.safe
#!/bin/sh
[ "$1" == "ppp0" ] && table="isp1" || table="isp2"
ip route add default via $5 dev $1 table $table
...здесь должна быть установка одиночного/множественного default route...
ip route flush cache
# cat /etc/ppp/ip-down.local.safe
#!/bin/sh
# workaround race condition: pppd will delete default route in parallel
# with executing ip-down script
for i in $(seq 1 10); do
ip route list | grep -q ^default && break
sleep 0.3
[[ $i == 10 ]] && echo "Failed to wait until default route will be deleted"
done
...здесь должна быть установка одиночного default route если другой канал работает...
ip route flush cache
Настройка роутинга для домашнего multihomed сервера