LINUX.ORG.RU
ФорумAdmin

pppd, mandrake 7.2, dial-on-demand


0

0

привет многоуважаемый ALL! подскажи пожалуйста как решить таку заморочку. имеется модем и pppd, запускаемый "стандартным" скриптом типа #ifup ppp0 в конфиге указано запускать pppd с параметром demand и idle 300. тут вроде все впорядке. проблема вот в чем. после соединения связь может оборваться либо по истечении времени неактивности соединения (параметр idle) с отсылкой соответствующего сообщения в syslog, или например из-за того что модем обрывает связь вследствие помех в линии. хочется чтобы во втором случае модем немелено перезванивал заново, а в первом естественно нет. как это сделать? не читать же постоянно /var/log/messages.

anonymous

у меня Slackware и с pppd я поступаю так
следующий скрипт запускается по cron'у через каждые 15 мин.

#!/bin/bash

echo "Check ppp link state" | logger
if [ ! `/sbin/pidof pppd` = "" ]; then
echo "pppd already loaded, so do nothing";
else
echo "Try to start \"ppp-go -d\" ";
/usr/sbin/ppp-go -d
fi

inkyspot
()

спасибо. но тут заморочка с demand: в этом случае, после обрыва связи (пофиг -- по таймауту или еще по какой причине) pppd не выгружается, и интерфейс не опускает, а продолжает висеть, ожидая пакета на своем интерфейсе, чтоб при поступлении оного начать устанавливать соединение с провайдером. единственное что в "неактивном состоянии" pppd не привязан к модему (/dev/ttyS0)
вот:
/* запускаю pppd */
# ifup ppp0
/* запустился pppd, но пока модем не звонит */
# ps -A | grep pppd
25421 ? 00:00:00 pppd
/* кидаем пакеты в интерфейс и рисуем точки покуда модем не дозвонится до провайдера */
# while [ `ping -c 1 www.myprovider.ru | wc -l` -eq 4 ] ; do echo -n . ; done
/* модем соединился с провайдером */
# ps -A | grep pppd
25421 ttyS0 00:00:00 pppd
/* связь оборвалась */
# ps -A | grep pppd
25421 ? 00:00:00 pppd

anonymous
()

Ну неправильно ты его запускаешь.
где ж тут demand?
На счет mandrake не скажу, а у меня есть скриптик
/usr/sbin/ppp-go | ppp-on

дык, если его запускать с ключем -d, то выполняется следующая секция этого скрипта

if [ "$1" = "-d" ]; then
killall -INT pppd 2>/dev/null
rm -f /var/lock/LCK* /var/run/ppp*.pid
(/usr/sbin/pppd file "/etc/ppp/options.demand" &) || exit 1
echo "Demand Dialing Started."
exit 0
fi

а вот и содержимое options.demand
bash-2.04# cat options.demand
# General configuration options for PPPD:
lock
defaultroute
noipdefault
modem
/dev/ttyS1
115200
crtscts
# Uncomment the line below for more verbose error reporting:
#debug
# If you have a default route already, pppd may require the other side
# to authenticate itself, which most ISPs will not do. To work around this,
# uncomment the line below. Note that this may have negative side effects
# on system security if you allow PPP dialins. See the docs in /usr/doc/ppp*
# for more information.
#noauth
passive
asyncmap 0
name "my_very_secret_name"
ipcp-accept-local
ipcp-accept-remote
0.0.0.0:10.10.10.10
demand
^^^^^^^ обрати внимание на это параметр
connect "/usr/sbin/chat -v -f /etc/ppp/pppscript"

ну pppscript приводить не буду он одинаковый почти у всех, за исключением телефонного номера


inkyspot
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.