URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91638
[ Назад ]

Исходное сообщение
"Не могу зафиксировать номер туннеля PPP"

Отправлено yurybx , 25-Май-11 10:28 
Проблема была ещё на FreeBSD 7.1. Обновился к FreeBSD 8.0 - проблема осталась.

uname -a
FreeBSD ServerName 8.0-RELEASE-p4 FreeBSD 8.0-RELEASE-p4 #0: Mon Jul 12 20:22:27 UTC 2010     root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  i386

Суть проблемы. Имеется туннель с Укртелекомом. Время от времени туннель зависает: не проходят пинги, хотя интерфейс tun0 вроде как числится "UP" и ай-пи адрес не теряет. Написал скрипт, который по CRON-у запускается ежеминутно и проверяет несколькими пингами, жив ли туннель. Если не жив, то перезапускает демон PPP:
/etc/rc.d/ppp restart
(это ещё делалось на FreeBSD 7.1)
Скрипт работает до определённого специфического момента, в результате которого интерфейс tun0 висит, и поднимается новый туннель - tun1! Но поскольку правила Packet Filter привязаны к tun0, то интернет у пользователей не работает. В данном случае помогает либо повторный (несколько раз) перезапуск демона PPP либо перезапуск сервера. (но проблема в том, что скрипт "думает", что туннель работает, т. к. пинги с сервера в интернет - идут).
Пробовал делать так:
/etc/rc.d/ppp stop
sleep 5
/etc/rc.d/ppp start

так:
/killall ppp
sleep 5
/etc/rc.d/ppp start

так:
p=`cat '/var/run/tun0.pid'`
/bin/kill -9 ${p}
/sbin/ifconfig tun0 destroy
sleep 2
/etc/rc.d/ppp start

добавлял в /etc/rc.conf:
ppp_unit="0"

Ничего не помогло: приходит момент, и tun0 висит как вкопанный, а tun1 услужливо показывает, что он работает.
Как вдолбить демону PPP, что tun0 нужно прибить, а потом поднять его заново?


Содержание

Сообщения в этом обсуждении
"Не могу зафиксировать номер туннеля PPP"
Отправлено Aquarius , 25-Май-11 15:52 
>[оверквотинг удален]
> /bin/kill -9 ${p}
> /sbin/ifconfig tun0 destroy
> sleep 2
> /etc/rc.d/ppp start
> добавлял в /etc/rc.conf:
> ppp_unit="0"
> Ничего не помогло: приходит момент, и tun0 висит как вкопанный, а tun1
> услужливо показывает, что он работает.
> Как вдолбить демону PPP, что tun0 нужно прибить, а потом поднять его
> заново?

можно попробовать "убивать" (команда destroy) интерфейс до перезапуска ppp
можно попробовать переименовывать интерфейс


"Не могу зафиксировать номер туннеля PPP"
Отправлено LSTemp , 26-Май-11 18:22 
>[оверквотинг удален]
> /bin/kill -9 ${p}
> /sbin/ifconfig tun0 destroy
> sleep 2
> /etc/rc.d/ppp start
> добавлял в /etc/rc.conf:
> ppp_unit="0"
> Ничего не помогло: приходит момент, и tun0 висит как вкопанный, а tun1
> услужливо показывает, что он работает.
> Как вдолбить демону PPP, что tun0 нужно прибить, а потом поднять его
> заново?

а ppp-то чем реализован? в poptop имеются опции для периодического пинга. в mpd(?) для фрии это тоже должно быть. это просто часть протокола (LCP)..

внешний-то скрипт зачем вообще?


"Не могу зафиксировать номер туннеля PPP"
Отправлено yurybx , 30-Май-11 11:12 
ppp реализован стандартным демоном "ppp".
Уменьшил частоту проверок с перезапуском до 2 раз в минуту (до этого было 4). Вроде как пока не виснет. Видимо в результате каких-то отклонений в таймере цикла возникали коллизии: скрипт делал перезапуск демона, а в это время начинал работу следующий экземпляр скрипта.

"Не могу зафиксировать номер туннеля PPP"
Отправлено desenix , 31-Май-11 15:03 
в линухе отслеживаю через скрипт
/etc/ppp/ip-up.local
когда поднимается, туда в параметрах и имя ppp кидается и IP и имя соединения/IP