Главная | Контакты



Главная > Операционные системы > UNIX > BSD > FreeBSD

Мониторинг PPPoE

Второй раз за два дня начал замечать на одном из серверов, подключенных к провайдеру услуг сети Интернет посредством PPPoE, неприятную ситуацию: само соединение "присутствует", то есть висит оно в ifconfig, при этом как и положено на интерфейсе tun имеется динамически выданный IP адрес, однако связи нет. Раньше уже было такое когда-то и я решил вновь вернуться к старой "затычке" этой баги, ибо каждый раз ковыряться с сервером руцями неинтересно (а если сервер доступен только по сети?):

Итак, суть в следущем. Каждые N минут, естественно, по крону, на ближайший узел, обычно DNS провайдера, отправляем 2-3 пакета ping. Если ответ получен, ничего не делаем. Но если ответа мы не получили, рубим ppp демона и снова его стартуем. Плюс еще и письмо об этом строчим админу.

</p>

Пишем скрипт:

#!/bin/sh
PINGREPLY="64 bytes from XXX.XXX.XXX.XXX"
# Думаю, понятно, что XXX.XXX.XXX.XXX
# - это IP адрес пингуемого узла.
RESULT=`ping -c 3 XXX.XXX.XXX.XXX | grep "$PINGREPLY"`
if [ "$RESULT" = "" ];
then
{
`/bin/echo $(date +%Y-%m-%d/%H:%M:%S) > /var/tmp/ppp_trouble`
`/bin/echo "PPPoE connection trouble!" >> /var/tmp/ppp_trouble`
`/usr/bin/killall -9 ppp >> /var/tmp/ppp_trouble`
`/bin/echo "PPP Daemon killed!" >> /var/tmp/ppp_trouble`
`/bin/sleep 5`
`/usr/sbin/ppp -ddial providername >> /var/tmp/ppp_trouble`
`/usr/bin/mail -s "PPPoE trouble" root < /var/tmp/ppp_trouble`
`/bin/rm /var/tmp/ppp_trouble`
}
else
{
# При необходимости, при положительном результате
# проверки соединения, можно сюда что-то еще втулить.
}
fi
exit

Как видите, все очень просто. Но выручает! Ох как выручает! А если пригодится кому-то еще кроме меня, можете высказать благодарность. Скрипт был написан когда-то на скорую руку, когда он очень был актуален: Надеюсь, нынче не настанут снова те самые времена, когда соединение переподнималось по сто раз на день.

Дальше этот скрипт просто остается запихнуть в crontab и на свое усмотрение выставить интервал проверки связи. Можно от 3 до 5 минут. Трафика много не сожрет, не переживайте.

Кто-то может возразит "зачем изобретать велосипед, когда есть Link Quality Request?". Отвечу. Не знаю, может у меня (или на оборудовании провайдера) "клинический" случай, но опции

enable lqr
set lqrperiod 5

добавленные когда-то в ppp.conf меня не выручают. Хотя, насколько я понял из мануалов, должны:


Главная > Операционные системы > UNIX > BSD > FreeBSD