Вариант 1: настройте этот ваш vpn и telecom с опциями persist и maxfail 0, не вижу никаких проблем. При отвале несущего, другой отвалится сам, при появлении линка - подключится.
iface telecom inet ppp
provider telecom
pre-up /sbin/ifconfig eth0 up
iface vpn inet ppp
provider vpn
Вариант 2: Привяжите несущий интерфейс к определеному устройству, скажем ppp0 (unit 0), в скрипте
/etc/ppp/ip-up.d/vpn можно написать следующее
#!/bin/sh
if [ $1 = ppp0 ]; then
pppd call vpn
fi
exit0
/etc/ppp/ip-down.d/vpn примерно так
#!/bin/sh
if [ $1 = ppp0 ]; then
kill -15 $(ps ax |grep 'pppd call vpn' |awk '{print $1}')
fi
exit 0
Вариант 3, который по идее должен был быть первым, указать полные пути в /etc/network/interfaces
post-up /usr/bin/pon vpn
Вот Вам три варианта решения.