Besser verbunden

ISDN: Mit Linux ins Internet

Die ISDN Tools für Linux sind zwar vorhanden, aber leider nicht immer so gut gepflegt, wie man sich das wünschen würden: Einige Dinge gehen nur mit speziellen Karten, andere nur mit der richtigen Handarbeit in der richtigen Datei. Darum gilt: Hintergrundwissen ist Macht! Der Beitrag zeigt, wie man die ISDN-Verbindung herstellt - und wie das ISDN-Troubleshooting unter Linux funktioniert. Von Jürgen Bernau und Thomas Wölfer.

Tools zur ISDN-Konfiguration unter Linux gibt es mittlerweile viele - seien es distributionseigene Skripte wie Yast bei Suse oder Stand-alone-Werkzeuge wie kcmkisdn bei Go!Linux. Die Benutzung ist meist recht komfortabel, ein paar Masken ausgefüllt und schon geht es los - oder eben nicht.

So schön diese Konfigurationshelfer auch sein mögen, solange alles läuft - zum Troubleshooting geben sie meist keine Anhaltspunkte. Um so besser, wenn man weiß, was nun eigentlich im Hintergrund passieren soll und wie man herausfindet, woran es liegt.

Dieser Artikel liefert neben dem Blick hinter die Kulissen auch eine Bauanleitung für ein einfaches Einwahlskript.

Vorbereitungen
Bevor man mit der Konfiguration beginnt, sollte man sichergehen, daß der 'Netzstecker steckt' - im übertragenen Sinne natürlich: Zum einen muß die ISDN-Unterstützung im Kernel aktiviert sein. Dabei wird der ISDN-Support grundsätzlich 'modular' geschaltet, da ein fest eingebauter Support Probleme mit einigen Karten verursachen kann. Wichtig sind außerdem die Unterstüzung für synchrones PPP , Euro-ISDN und natürlich der Treiber (Hisax-Support) für die jeweilige ISDN-Karte.

Zum anderen sollte das Paket 'i4l', das die nötigen Tools für ISDN-Verbindungen enthält, installiert sein. Die neuesten Versionen sowie eine Liste der Requirements sind unter http://rufus.w3.org/linux/RPM/i4l.html erhältlich.

Kochrezept
Das hier vorgestellte Skript besteht aus drei einzelnen Teilen: ein Skript zur Initialisierung, eines zum Wählen und eines zum Aufhängen - intuitiv benannt mit 'initisdn', 'dial' und 'hangup'. Die drei haben folgende Aufgaben:

  • 'dial' ruft das Initialisierungsskript 'initisdn' auf, wählt und fügt die Defaultroute hinzu.
  • 'initisdn' lädt den ISDN-Treiber, fügt die Netzwerk-Schnittstelle hinzu, legt die richtigen Einstellungen für den Wahl- und Verbindungsmodus fest und startet den ipppd-Dämon.
  • 'hangup' hängt auf und löscht die Defaultroute.


Die Skripte sollten aus Sicherheitsgründen nur vom Superuser ausgeführt werden. Es bietet sich an, sie dann auch gleich in ein Verzeichnis zu setzen, wo niemand anders sie sieht, also etwa in /root.

Bevor die drei Skripte hier durchgegangen werden - wobei initisdn die meiste Arbeit zu erledigen hat, noch einmal ein paar Tips zum Lesen derselben:

  • Zur Erinnerung: Jedes Shell-Skript beginnt mit der Zeile: #!/bin/sh
  • Alle folgenden Zeilen, die mit einem Hash-Mark # beginnen, sind Kommentarzeilen und werden nicht ausgeführt. (Zum besseren Verständnis sind die Skripte hier ein gutes Stück ausführlicher kommentiert als unbedingt nötig.)
  • Zeilen, die die Form
    echo 'Irgendein Text.'
    
    haben, geben den Inhalt der Anführungzeichen auf dem Bildschirm aus, in diesem Fall eben
    Irgendein Text.
    


Aber jetzt zu den Kandidaten:

Dial
Das Wählskript 'dial' sollte so aussehen:
  
#!/bin/sh
#---------------------------------------
# Initialisierungsskript wird aufgerufen:
#---------------------------------------
echo 'initisdn'
/root/initisdn
#
#----------------------------------------------------
# Hier kurz (1 Sekunde) gewartet, bevor es weitergeht:
#----------------------------------------------------
sleep 1
#
#-----------------------------------
# Wählen mit dem Kommando 'isdnctrl' 
#-----------------------------------
echo 'Wählen'
isdnctrl dial ippp0
#
#------------------------
# Nocheinmal kurz warten:
#------------------------
sleep 2
#
#---------------------------------
# Defaultroute setzen mit 'route'
#---------------------------------
echo 'Defaultroute hinzufügen'
/sbin/route add default ippp0
  


Hangup
Noch ein wenig einfacher gestrickt ist das Aufhängskript:
#!/bin/sh
#--------------------------
# Aufhängen über 'isdncrtl'
#--------------------------
echo 'Lege auf'
isdnctrl hangup ippp0
#----------------------
# Defaultroute löschen
#----------------------
echo deleting default route
/sbin/route del default

Artikel kommentieren