ADSL авто-востоновление
Гость 4 января, 2006 - 02:47
Здрасти :)
Установил драйвера на D-Link adsl - 200
вот по этой инструкции http://gentoo.ru/node/807
все вроде работает....
Вопрос как сделать чтобы когда разрывает соединение(падат интерфейс tap0)
оно автоматически востанавливалось.
Если кто знает подскажите. желательно по подробней.
»
- Для комментирования войдите или зарегистрируйтесь

Делал помнится
Делал помнится диалап, давно правда..Есть такая штука как крон. Надо написать небольшой скриптик. Скриптик должен:
1) проверить соединение (ifconfig ...| grep или как нить еще)
2) ежели соединения нет - окончательно все уронить (ну там модули ежели надо перегрузить, связь якобы разорвать и тп) и запустить по новой. Как это делать с вашим модемом прописано в том же мануале что вы привели.
Скрипт прописываем в крон, таким макаром чтоб запускался кажные ..сколько надо.. минут. Все.
Re: Делал помнится
Хотелось бы обойтись без крона, это возможно ?
При настройке
При настройке rp-pppoe он что-то спрашивает про подключение on demand. Возможно это подойдет.
>>Хотелось бы
>>Хотелось бы обойтись без крона, это возможно ?
Возможно. Ежели скрипт постоянно сидит в памяти и по таймауту проверяет живучесть. Крон это делает лучше всех, и сам скрипт будет проще и понятней, кроме того он полезени в принципе при выполнении рутинных задач, типа проверки почты, анализа и рассылок логов и т.д. Почему бы дополнительно не заставить его проверять падучую шелезяку?
У меня aus linx a 2006.
У меня aus linx a 2006. В итоге набрасал скрипт, который поместил в /etc/init.d
Кроме стандарныъ start stop restart status сделал там check.
А потом при помощи крона раз в сутки запускаю restart (у меня провайдер раз в сутки соединение сбрасывает) и раз в 10 минут check, который востанавливает соединение, если оно разорвалось.
ЗЫ Скрипт немного кривой, т.е. что-то в нем работает не так, но случается это очень редко, поэтому отдебажить сложно. Могу его сюда скинуть.
Re: У меня aus linx a 2006.
ok, выложите скрипт попробую.
Скрипт писался
Скрипт писался для связки драйвер cxacru и rp-pppoe
Сам скрипт /etc/init.d/cxacru
#!/sbin/runscript # Copyright 2005 Guseiniv Alexey (aka KiberGus) # Distributed under the terms of the GNU General Public License v2 opts="${opts} flash check" depend() { provide net } checkdrv(){ if lsmod | cut -d' ' -f1 | grep -q -E "^cxacru|cxacrudbg$"; then return 0 else return 1 fi } checklink(){ if adsl-status | cat | grep -q -m 1 -E "Link is up"; then return 0 else return 1 fi } start() { # Get settings . /etc/cxacru for ((rec=0; rec < TRY_RECONECT ; rec++)) do ebegin "Staring cxacru" if checkdrv; then einfo "Driver already loaded." else /usr/sbin/cxstart.sh service fi if checkdrv; then if ! checklink; then for ((auth=1; auth < TRY_AUTH; auth++)) do if checklink; then break fi ewarn "Link is still down. Trying to bring it up." adsl-start done fi fi if checkdrv and checklink; then einfo "Driver is loaded and link is up!" eend 0 return fi # Unloading driver. stop done if checkdrv; then stop eerror "I was unable to bring link up." eend 1 else eerror "I was unable to launch driver." eend 1 fi } stop() { ebegin "Stopping cxacru" /usr/sbin/cxstop.sh service eend $? } restart() { stop start } # Just reauthorize flash() { adsl-stop start } # Sometimes modem can loose conection. This function will check this aspect and if line is down it will restart # driver check() { ebegin "Checking" if checkdrv or checklink; then ewarn "Conection was lost! Restarting." start else einfo "Driver is loaded and link is up!" fi } status() { if lsmod | cut -d' ' -f1 | grep -q -E "^cxacru|cxacrudbg$"; then if adsl-status | cat | grep -q -m 1 -E "Link is up"; then einfo $"Driver is loaded and link is up." RETVAL=0 fi if adsl-status | cat | grep -q -m 1 -E "Link is down"; then ewarn $"Driver is loaded but link is down." RETVAL=1 fi else eerror $"Driver not loaded." RETVAL=1 fi eend $RETVAL }И пару переменных я добавил в /etc/cxacru
Это фойл конфигурации драйвера моего модема.
Если у вас LAN модем, то надо заменить команды
/usr/sbin/cxstart.sh
/usr/sbin/cxstop.sh
на аналогичные, которые отвечают за установление связи с оборудованием провайдера (это когда лампочка adsl загорается). Ну или убрать их вообще, если модем делает это самостоятельно.
ЗЫ Возможно имеет смысл завести дополнительные переменные, где хранить, какие команды выполнять, чтобы скрипт работал для всех модемов.