7. Sep 1996 From: Emil Stephan Subject: Konfiguration f"ur Eunet-Zugang Hallo, ich habe einen Zugang zu Eunet mit dynamischer Addresszuweisung hier. Die Protokolle sind hdlc trans ppp. Die Konfiguration lehnt sich noch an die an, die ich f"ur den Zugang via Modem hatte. Ein Skript namens isdnjob startet ein Skript namens popEUi, das wartet bis eine Datei namens /tmp/$interface.ok erscheint (von /etc/ppp/ip-up erstellt, /etc/ppp/ip-down löscht die Datei wieder), und startet dann Programme wie runq (senden gequeuter mail), pop3 (holen mail), nntpxfer (holen news) und nntpsend (posten von eigenen news-- Artikeln). Das Skript popEUi sieht folgenderma\3en aus: ---------------------------------------------------------- #!/bin/sh # script to build PPP connection to $0 # host=`basename $0` hangup=n while test $# -gt 0 do case "$1" in "-h" ) hangup=y shift ;; * ) echo "usage: $0 [-h]" exit 1 ;; esac done exec > /tmp/$host.log 2>&1 myhost=`hostname` set '' `grep ^$host /etc/slipoutmap` shift portnr=$2 IPNAME=$3 MTU=$4 DEFROUT=$5 LOGIN=$6 slword=$7 shift 7 pw=$* inter=`basename $portnr` if test "$hangup" = "y" then isdnctrl hangup $inter exit $? fi if test "$DEFROUT" = "y" then defroute=defaultroute else defroute="" fi if test "$IPNAME" = "\?" then ipdef=noipdefault else ipdef="" fi pid=`ps -ax | fgrep "ipppd user $LOGIN" | fgrep -v fgrep | awk '{print $1}'` if test -z "$pid" then echo ipppd user $LOGIN $defroute mtu $MTU mru $MTU $ipdef $portnr ipppd user $LOGIN :$host $defroute mtu $MTU mru $MTU $ipdef $portnr ret=$? if test $ret -ne 0 then exit $ret fi sleep 1 fi isdnctrl dial $inter ret=$? if test $ret -ne 0 then exit $ret fi while test ! -f /tmp/$inter.ok do sleep 1 done ----------------------------------------------------------------- Ein Eintrag in der Datei /etc/slipoutmap sieht so aus: # format: remhostname device locname mtu defrout login sliperkennung passwd popEUi /dev/ippp0 ? 1524 y IS10877 MTU ????? Das Passwort darin ist mit ISDN ohne Bedeutung, wurde bei ppp "uber Modem gebraucht, es steht jetzt in /etc/ppp/pap-secrets: IS10877 popEUi Das Skript /sbin/init.d/i4l (von mir erweitert um die Aufrufe f"ur die pnp-Konfiguration von Karsten Keil und die while-loops "uber I4L_REMOTE_OUT_LIST und I4L_REMOTE_IN_LIST, sowie die Parameter f"ur isdnlog) sieht folgenderma\3en aus: ----------------------------------------------------- #!/bin/sh # Copyright (c) 1996 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved. # # Authors (in alphabetic order ;-) : # Thomas Fehr # Klaus Franken # Hubert Mantel # Burchard Steinbild # # Version: 19.05.96 (kfr) # # /sbin/init.d/i4l # . /etc/rc.config test "$I4L_START" = yes || exit 0 case "$1" in start) ## turn on isdn echo "Starting isdn4linux" # load modules /sbin/modprobe isdn.o /sbin/isapnp /etc/isapnp.conf /sbin/modprobe teles.o teles_id=${I4L_TELES_ID} \ io=${I4L_TELES_MEMBASE},${I4L_TELES_IRQ},${I4L_TELES_PORT},${I4L_PROTOCOL} /sbin/lsmod | grep teles > /dev/null if test $? -eq 1; then echo "" echo "Initialization of Teles S0/16.x failed!" echo "Check that the values in '/etc/rc.config' are correct:" echo "I4L_TELES_MEMBASE: ${I4L_TELES_MEMBASE}" echo "I4L_TELES_IRQ: ${I4L_TELES_IRQ}" echo "I4L_TELES_PORT: ${I4L_TELES_PORT}" echo "I4L_PROTOCOL: ${I4L_PROTOCOL}" echo "" exit 1 echo "never here" fi # configure interface /sbin/isdnctrl addif ${I4L_DEV} /sbin/isdnctrl eaz ${I4L_DEV} ${I4L_LOCALMSN} for i in ${I4L_REMOTE_OUT_LIST} do /sbin/isdnctrl addphone ${I4L_DEV} out ${i} done if [ ! -z "${I4L_REMOTE_OUT1}" ]; then /sbin/isdnctrl addphone ${I4L_DEV} out ${I4L_REMOTE_OUT1} fi if [ ! -z "${I4L_REMOTE_OUT2}" ]; then /sbin/isdnctrl addphone ${I4L_DEV} out ${I4L_REMOTE_OUT2} fi for i in ${I4L_REMOTE_IN_LIST} do /sbin/isdnctrl addphone ${I4L_DEV} in ${i} done if [ ! -z "${I4L_REMOTE_IN1}" ]; then /sbin/isdnctrl addphone ${I4L_DEV} in ${I4L_REMOTE_IN1} fi if [ ! -z "${I4L_REMOTE_IN2}" ]; then /sbin/isdnctrl addphone ${I4L_DEV} in ${I4L_REMOTE_IN2} fi /sbin/isdnctrl l2_prot ${I4L_DEV} hdlc /sbin/isdnctrl secure ${I4L_DEV} on /sbin/isdnctrl encap ${I4L_DEV} syncppp /sbin/isdnctrl huptimeout ${I4L_DEV} ${I4L_IDLETIME} # enable debugging /sbin/isdnctrl verbose ${I4L_VERBOSITY} /sbin/telesctrl ${I4L_TELES_ID} 1 ${I4L_DEBUG} /sbin/isdnlog -v -t 2 -m2039 /dev/isdnctrl0 >> /var/log/isdncalls 2>&1 & ;; stop) ## turn off isdn echo "Shutting down isdn4linux..." if [ -e /var/run/isdnlog.pid ] ; then /bin/kill `/bin/cat /var/run/isdnlog.pid` fi /sbin/isdnctrl delif ${I4L_DEV} for i in /var/run/mg-pid.ttyI* do kill `cat $i` done /sbin/rmmod teles.o /sbin/rmmod isdn.o ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac ---------------------------------------------------------- Der ISDN-Teil in /etc/rc.config hat folgenden Inhalt: --------------------------------------------------------- # # /etc/rc.config # # Copyright (c) 1996 S.u.S.E. GmbH Fuerth, Germany. All rights reserved. # # Author: Florian La Roche , 1996 # Werner Fink , 1996 # Burchard Steinbild , 1996 # # Configuration database for shell scripts in /sbin/init.d, /sbin/SuSEconfig # and /root/bin/cron.daily # #............ rausgel"oscht # # i4l (Teles) Configuration - 17.05.96 # Author: Klaus Franken # # # start i4l? ("yes" or "no") # I4L_START=yes # # which device to use (it is save to leave it untouched) # I4L_DEV=ippp0 # # driver-id for device (it is save to leave it untouched) # I4L_TELES_ID=Tel0 # # idletime before hangup (in seconds) # I4L_IDLETIME=120 # # remote station phone number list for dialout # I4L_REMOTE_OUT_LIST= # # remote station phone number 1 dialout # I4L_REMOTE_OUT1=0228983822 # # remote station phone number 2 dialout # I4L_REMOTE_OUT2= # # remote station phone number list for dialin # I4L_REMOTE_IN_LIST= # # remote station phone number 1 dialin # I4L_REMOTE_IN1=228983822 # # remote station phone number 2 dialin # I4L_REMOTE_IN2= # # my phone number # I4L_LOCALMSN=868269 # # Verbosity of the isdn Module # I4L_VERBOSITY=3 # # Debug Level, 4 (some..) to 31 (all messages) # I4L_DEBUG=63 # # Membase of Teles card ('0xd2000' for Teles S0/16, '0' for Teles S0/16.3) # I4L_TELES_MEMBASE=0 # # IRQ of Teles Card (12 or 15) # I4L_TELES_IRQ=10 # # Portaddress of Teles card (0xd80) # I4L_TELES_PORT=0x100 # # D-channel protocol 1=1TR6, 2=EDSS1(Euro-ISDN) # I4L_PROTOCOL=2 LANGUAGE=german ----------------------------------------------------- Anmerkung: Den Timeout habe ich auf 120 Sekunden erh"oht, weil sonst das NEWNEWS-Kommando an den News-Server vom nntpxfer den Timeout triggert. Der News-Server ist dann damit besch"aftigt, eine Liste von News-- Artikeln zu erstellen. Wenn dann keine "Ubertragungen von anderen Programmen laufen, kann es passieren. Weitere Anmerkungen: Den ipppd aus der Suse-Distribution mu\3te ich durch die neue Version aus den isdn4k-utils-2.0 ersetzen. Der erste meldete folgendes beim Setzen der Default-Route: pppd[201]: default route ioctl(SIOCADDRT): Network is unreachable Er hatte vers"aumt, vorher die Route zum Gateway zu setzen und dieses Netzwerk kann er dann nicht erreichen. Ich hab den neuen ipppd in /usr/sbin installiert. Der alte war aber immer noch in /sbin. Das f"uhrte nat"urlich dazu, da\3 ich nicht verstand, warum nach dem Booten etwas nicht funktionierte, was vorher ging. Nach wie vor gibt es im syslog folgende Meldung: pppd[201]: ioctl(SIOCSIFMTU): Invalid argument Was hei\3t das? Apropos: Bei Zugang zu eunet via PersonalEunet gehen alle Aktivit"aten vom Benutzer aus, nie von Eunet. Dadurch erspart sich eunet die Abrechnung von aufgelaufenen Telekom-Kosten gegen"uber dem Benutzer. Hoffe, es hilft anderen, Bye Emil.