SuSE GmbH

SuSE Support-Datenbank

Titel: wvdial und dial-on-demand

----------

Übersicht o Stichwortsuche o History o Versionen o Kategorien o Alle Artikel
English

----------

wvdial und dial-on-demand

Bezieht sich auf

SuSE Linux: Version 6.3

Anliegen:

Die Verbindung ins Internet soll automatisch aufgebaut werden, wenn z.B. mit Netscape eine externe URL angesprochen wird. Jene sollte dann auch nach einer voreingestellten Zeit, in der kein Datentransfer stattfindet (Ideletime), wieder abgebaut werden.

Vorgehen:

Ein Skript zur Steuerung

Die Meldugen des Skripts und von wvdial finden Sie in der Datei /var/log/messages. Sie können diese z.B. mit dem Befehl tail -nxx /var/log/messages ansehen. xx ist dabei die Anzahl von Zeilen, die Sie sehen möchten.

Erweiterungen in der Konfigurationsdatei von wvdial

/etc/wvdail.conf kann um die folgenden Variablen erweitert werden:

Wichtig: In der Datei /etc/wvdail.conf dürfen bei der Verwendung von /sbin/init.d/wvdial.dod keine Kommentare (beginnend mit ;) enthalten sein.


#! /bin/bash
#
# Copyright (c) 1999 SuSE GmbH Nuernberg, Germany. All rights reserved.
#
#
# parameters
# start section section section 
# restart section section section 
# start or restart the daemon with parameters found in /etc/wvdial.conf
# section is the name of a section in the /etc/wvdial.conf file
# (see man wvdial)
# stop
# stop the pppd
# hangup # hang up the telephone line 

# additional Parameters in /etc/wvdial.conf could be # Idle: sets the idle-time for waiting before hang up (deafult 180s) # Remote IP: remote IP-address (default 192.168.99.99) # Local IP: local IP-address (default 192.168.99.1) # Defaultroute: no: pppd will not set the default route to the remote ip # (default yes)

function log() { # logs the messages to system log HEAD=$0[$$] echo $MESSAGE logger -t $HEAD "$MESSAGE" }

function setpppdparam() { # time to sleep for pppd to come up WAITFORPPPD=2 CONFFILE="/etc/wvdial.conf" TMPFILE="/tmp/wvdial.dod.tmp" # extract subsection cat /etc/wvdial.conf | sed -n "/Dialer.*$SECTION/{:x;p;n;/Dialer/q;bx}" > $TMPFILE VALUE=`cat $TMPFILE | grep "Modem" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Modem=$VALUE; fi VALUE=`cat $TMPFILE | grep "Baud" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Baud=$VALUE; fi VALUE=`cat $TMPFILE | grep "Username" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Username=$VALUE; fi VALUE=`cat $TMPFILE | grep "Remote IP" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Remote_IP=$VALUE; fi VALUE=`cat $TMPFILE | grep "Local IP" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Local_IP=$VALUE; fi VALUE=`cat $TMPFILE | grep "Idle" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Idle=$VALUE; fi VALUE=`cat $TMPFILE | grep "Defaultroute" | cut -f2 -d"="` if [ X$VALUE = XNo -o X$VALUE = XNO -o X$VALUE = Xno ]; \ then DEFAULTROUTE="nodefaultroute"; fi rm -f $TMPFILE }

function killpppd() { if [ -e $PIDFILE ]; then MESSAGE="killing pppd process " PID=`cat $PIDFILE` MESSAGE=$MESSAGE"PID=$PID" log kill -15 $PID 2>/dev/null #kill -9 $PID 2>/dev/null rm $PIDFILE fi }

function startpppd() { # set defaults, no defaults for # Username, Modem, Baud Local_IP="192.168.99.1" Remote_IP="192.168.99.99" Idle=180 DEFAULTROUTE="defaultroute"

# get params from section "Dialer Default" SECTION=Defaults setpppdparam

# parse given section ([Dailer xxx]) parameters while [ ! -z $1 ]; do SECTION=$1 setpppdparam shift done

# start pppd in demand mode PPPPDPARAMS="$Local_IP:$Remote_IP $Modem $Baud modem crtscts $DEFAULTROUTE -detach user $Username ipcp-accept-local ipcp-accept-remote call wvdial demand idle $Idle" MESSAGE="starting pppd $PPPPDPARAMS connect \"/usr/bin/wvdial --chat $WVPARAMS\"... " pppd $PPPPDPARAMS connect "/usr/bin/wvdial --chat $WVPARAMS" &>/dev/null & PPPDPID=$! echo $PPPDPID > $PIDFILE MESSAGE=$MESSAGE"PID=$PPPDPID" log # setting dynamic - parameter for ppp - device

# waiting pppd to come up sleep $WAITFORPPPD ls /var/run/ppp?.pid | while read PIDFILE ; do if [ X$PPPDPID = X`cat $PIDFILE` ]; then DEVICE=`echo $PIDFILE | cut -c 10-13` MESSAGE="setting $DEVICE dynamic " ifconfig $DEVICE dynamic ifconfig $DEVICE | grep "DYNAMIC" -q RES=$? if [ $RES -gt 0 ]; then MESSAGE=$MESSAGE"failed" exit 1 fi MESSAGE=$MESSAGE"done" log fi done exit 0 }

# main LINKNAME=dod PIDFILE=/var/run/pppd.$LINKNAME.pid ACTION=$1 shift WVPARAMS=$@

case "$ACTION" in start) # make sure to start even when uncleanly stopped killpppd netstat --inet -p startpppd $@ netstat --inet -p ;; stop) # handle stop killpppd exit 0 ;; reload|restart) killpppd startpppd $@ ;; hangup) if [ -e $PIDFILE ]; then MESSAGE="hangup pppd connection " PID=`cat $PIDFILE` MESSAGE=$MESSAGE"PID=$PID" log kill -SIGHUP $PID #2>/dev/null exit 0 fi MESSAGE="no pppd connection" log exit 1 ;; # status) # ;; *) echo "Usage: /sbin/init.d/wvdial.dod {start [section [section [..]]]|hangup|stop|restart}" exit 1 ;; esac

----------

Siehe auch:

----------

Stichwörter: MODEM, INTERNET, PPPD, WVDIAL, PROVIDER, DIALONDEMAND, DIAL-ON-DEMAND

----------

Kategorien: Netzwerk

----------

Übersicht o Stichwortsuche o History o Versionen o Kategorien o Alle Artikel
English

----------

SDB-hoe_wv_dod_start, Copyright SuSE GmbH, Nuremberg, Germany - Version: 27. Oct 1999
SuSE GmbH - Zuletzt generiert: 30. Dec 1999 14:28:33 by olh with sdb_gen 1.00.0