Статьи и заметки

Перезапуск зависшего ppp соединения.
Данная проблема встала передо мной после того, как у меня дома появился DSL интернет с подключением по протоколу PPPoE. Причём проявлялась она независимо от того, где поднимался PPPoE интерфейс - на модеме или на компьютере. Закономерности зависания я так и не выяснил, единственное, что удалось установить - соединение зависало после перезапуска оборудования на стороне провайдера. Все могло работать неделями, а могло зависать по несколько раз в сутки. Так как автоматизировать перезапуск PPPoE соединения на DSL модеме не получилось, я остановился на варианте, когда модем работал в режиме моста (bridge), а PPPoE соединение я настроил на компьютере с операционной системой FreeBSD.

Настройка PPPoE соединения.

В файл /etc/rc.conf добавлены следующие строки:
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES" # if you want to enable nat for your local network, other
ppp_profile="provname"


/etc/ppp/ppp.conf
default:
set log Phase Chat tun command

provname:
set device PPPoE:xl0
set authname login
set authkey password
set dial
set login
add default HISADDR


Для перезапуска зависшего соединения я написал следующий скрипт:
/usr/local/etc/scripts/restart_ppp.sh
#!/bin/sh
host='www.ru' # Имя хоста, который будет пинговаться для проверки соединения
if /sbin/ping -c 5 -o $host # Пингуем хост пятью пакетами
then
echo 'ok' # Если получен ответ, говорим ОК
else # иначе
/usr/bin/logger Host $host not accessible, ppp will be restarted # Делаем запись в системный журнал
/usr/bin/killall -KILL ppp # убиваем ppp соединение
/bin/sleep 5 # выдерживаем паузу 5 секунд
/usr/sbin/ppp -ddial -nat provname # Запускаем ppp соединение
fi


Этот скрипт я запускаю с помощью крона каждые две минуты. Сначала в этом же скрипте я отсылал SMS на свой мобильный телефон после перезагрузки соединения, но после нескольких сообщений среди ночи я эту функцию убрал.

http://www.volna-soft.ru
13.04.2007 г.



© 2007-2012 ООО "Волна-софт".
Логотип ООО "Волна-софт"


Rambler's Top100 hosted by firstVDS