Ни фига там не восстанавливается, модуль l2tpd в прошивке кривой. Или другие модули (настройки по умолчанию) ни в [звезду] ни в красную армию.
Вот в полноценном Линуксе действительно соединение восстанавливается.
А здесь у меня, например, сделано так:

В /usr/local/bin засунут скрипт connector:
Code:
#!/bin/sh

case $1 in
  connect)
    echo "Connect!" >> /tmp/syslog.log
    service="wan_connect"
    ;;
  disconnect)
    echo "Disconnect!" >> /tmp/syslog.log
    service="wan_disconnect"
    ;;
  *)
    echo "Usage: $(basename $0) connect|disconnect"
    exit 1
    ;;
esac

let unit=1*$(nvram get wan_unit)
if [ $unit -lt 0 ]; then
    unit=0
fi
nvram set rc_service="$service,$unit"
kill -SIGUSR1 1
sleep 2s
В /usr/local/etc/cron.5mins (должен быть настроен crond или cron соответствующим образом) засунут скрипт ping-beeline:
Code:
#!/bin/sh

# parameter to verify whether e2fsck is running or not
PARAM1=`/bin/pidof e2fsck`

if [ -z "$PARAM1" ]; then
# stopping pwrled process if any
    killall pwrled
# starting WL500gP-v.1 power LED blinking: 50 ms on and 400 ms off
    /usr/local/bin/pwrled -b -n 1 -e 5 -d 40 -c 0
fi

# pinging Beeline server
#ping -c 1 -w 5 -W 4 www.internet.beeline.ru > /dev/null
ping -c 1 -w 5 -W 4 217.118.84.134 > /dev/null

# if ping was successfull
if [ $? = 0 ] ;
  then
#
    if [ -z "$PARAM1" ]; then
# stopping power LED blinking
        killall pwrled
# starting power LED blinking: 400 ms on and 50 ms off
        /usr/local/bin/pwrled -b -n 1 -e 40 -d 5 -c 0
    fi
#
# pinging one of www sites: ya.ru for example
#    ping -c 1 -w 5 -W 4 www.ya.ru > /dev/null
    ping -c 1 -w 5 -W 4 213.180.204.8 > /dev/null

# if ping was successfull
    if [ $? = 0 ] ;
      then
#
        if [ -z "$PARAM1" ]; then
# stopping power LED blinking and exit from this programme
            killall pwrled
#
            exit
#
        fi
#
    fi
fi
#
# pinging ADSL modem connected to vlan2
ping -c 1 -w 5 -W 4 192.168.1.1 > /dev/null

# if ping wasn't successfull
if [ $? != 0 ] ;
  then

# force disconnecting wan port, pause 3s and force connecting wan port
     /usr/local/bin/connector disconnect
     sleep 3s
     /usr/local/bin/connector connect
#
fi
Зелёным цветом выделено то, что относится непосредственно к анализу наличия соединения по wan и к эмуляции нажатия кнопок Connect/Disconnect.
Остальное - анализ подключения через vlan2 и индикация. Как видно из скрипта, он "заточен" под Билайн. Нужные Вам адреса подставите сами, комментарии там даны.

(Не забываем делать скрипты исполняемыми, а также save/commit/enable).