wvdial로 인터넷 접속하기

고객지원 지식기반 (hoe_wv_dod_start)
적용 범위

SuSE Linux: 버전 6.3


Object:

넷스케이프 등에서 외부 RUL 문서를 요구할 때 인터넷 연결이 자동적으로 되도록 하고 싶 습니다. 그리고 특정 시간 동안 활동이 없으면 자동적으로 연결이 해제되게 하고 싶습니다.

Procedure:

A script to initiate

  • 스크립트를 부팅시 자동적으로 시작하도록 하려면 다음 링크들을 생성해 주어야 합니다. 이렇게 하면 [Dialer Defaults] 섹션에 언급된 인터넷 제공자가 콜 됩니다.

    Extra options for configuring in the configuration file of wvdial

    /etc/wvdial.conf는 다음 옵션으로 확장될 수 있습니다.

    Important: /etc/wvdial.conf에서 세미 콜론(;)으로 시작되는 라인들은 /sbin/init.d/wvdial.dod 스크립트 실행시 사용되지 않을 수 있습니다. _


    #! /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


    키워드: MODEM, INTERNET, PPPD, WVDIAL, PROVIDER, DIALONDEMAND, DIAL-ON-DEMAND

    카테고리:

    SDB-hoe_wv_dod_start, Copyright SuSE Linux AG, Nrnberg, Germany - 버전: 22. Feb 2001
    SuSE Linux AG - 최근에 만들어진 : 22. Feb 2001 에 의해 shoelcker (sdb_gen 1.40.0)