PPP: Einrichtung der automatischen Anwahl mit diald

Supportdatenbank (jnroed_diald)
Bezieht sich auf

SuSE Linux: Versionen ab 6.0

Anliegen:

Die Verbindung zu Ihrem Provider soll mittels Modem automatisch aufgebaut werden.
In diesem Artikel wird dabei auf die häufigste Problemstellung eingegangen: die Authentifizierung erfolgt mittels PAP, die IP-Adressen werden vom Provider dynamisch zugeteilt.

Vorgehen:

Erstellung eines CHAT-Scripts für Ihren Provider:

Der Loginvorgang ist mit einem normalen Terminallogin vergleichbar, nur daß dieser sonst manuelle Vorgang durch das chat-Script abläuft.  Meist ist es vollkommen ausreichend, im folgenden Standardscript neben der anzuwählenden Telefonnummer den eigenen login-Namen sowie das Passwort zu ersetzen. Die zu ersetzenden Textstellen sind dabei durch spitze Klammern markiert.
Speichern Sie hierfür den angepassten Absatz unter der Datei /etc/ppp/peers/providername.chat ab:

--------------------snip------------------------------------
TIMEOUT 10
ABORT "NO CARRIER"
ABORT BUSY
ABORT "NO DIALTONE"
ABORT ERROR
"" +++ATZ
OK ATDT<nummer>
CONNECT ""
ogin:--ogin: \q<login>
word: <passwd>
--------------------snap-------------------------------------

Sie können nun zunächst mit dem Punkt "Anpassung der PPP-Konfiguration" fortfahren. Sollten bei der folgenden Überprüfung des Chat-Scripts Fehler gemeldet werden, so kehren Sie bitte an diese Stelle zurück.

Dann gehe man folgendermaßen an die Sache ran:

Man lese die Informationen des Service-Providers sorgfältig und/oder frage nach, ob vielleicht schon ein entsprechendes Script existiert. Man lege sich Bleistift und Papier bereit! Mit einem Terminalprogramm (z.B. minicom) wird jetzt die Verbindung manuell durchgeführt, man loggt sich also direkt ein und notiere dabei peinlichst genau, was in welcher Reihenfolge gesendet wird und welche Eingaben man dabei selbst machen muß. Dies wird bis zu der Stelle gemacht, bis die Gegenstelle in den PPP-Modus wechselt, was an einer entsprechenden Meldung zu erkennen sein sollte, etwa: ppp-protocol started Passiert dies nicht automatisch, so ist meist zusätzlich die Eingabe von

ppp

oder

ppp def

erforderlich. Die dann bestehende Verbindung wird dann einfach gekillt, d.h. aufgelegt (minicom: Ctrl-A H) Terminalprogramm beenden (minicom Ctrl-A X) Mit dem Protokoll kann nun das chat-Script entsprechend angepasst werden.

Ein paar weitere Erklärungen zu chat.

In der ersten Sequenz

        TIMEOUT 10
        ABORT "NO CARRIER"
        ABORT BUSY
        ABORT "NO DIALTONE"
        ABORT ERROR

wird chat initialisiert. Der TIMEOUT muß in einigen Fällen höher gesetzt werden, z.B. auf 60.

Mit den ABORT Kommandos wird angegeben, bei welchen Returnmeldungen vom Modem das Script beendet werden soll.

Bei den folgenden Zeilen wird immer nach folgender Logik vorgegangen: der erste Parameter (bis zum ersten Blank) gibt an, auf was
gewartet werden soll, wird dieser String vom Modem gesendet, wird zum Modem der Rest der Zeile gesendet.

        "" +++ATZ

Hier wird auf keinen String gewartet, sondern sofort das Modem initialisiert. Das hängt davon ab, welches Modem Sie haben und
welches Profile gespeichert ist. Normalerweise wird mit ATZ Profile 0 (wie auch direkt nach dem Einschalten) geladen. Hier müssen Sie
eventuell was anderes eintragen. Vergleichen Sie dies ggf. mit Ihrer DOS/Windows Software.

Jetzt wird gewählt und die Login-Sequenz durchgeführt, z.B:

        OK ATDT
        CONNECT ""
        ogin:--ogin:
        word:

bei der Sie natürlich nummer, login und passwd ersetzen.

Beachten Sie, daß in diesem hier z.B: nur nach word gesucht wird, denn es könnte ja Passwort, password oder auch Spaßwort gesendet
werden.

Die Zeile

        ogin:--ogin:

sollte flexibel genug sein, denn hier wird, falls der erste String (ogin) nicht gefunden wird, ein Return gesendet und nachfolgend noch einmal auf ogin gewartet.

Gelingt durch das Script die Anmeldung, aber wird ppp nicht automatisch gestartet, so ist meist zusätzlich die Eingabe von

ppp
oder
ppp def
erforderlich. Notieren Sie sich in einem solchen Fall z.B. das Systemprompt
modem-gate2>
an welchem Sie das Kommando eingeben müssen und fügen Sie entsprechend die folgende Zeile an Ihr Script an:
odem "ppp def"
Weitere Infos und Beispiele hierzu finden Sie mit

        man chat

Dort finden Sie auch den motivierenden Hinweis: In actual practice, simple scripts are rare.

Wichtig: Das gesamte chat-Script darf keine Leerzeile, keine Blanks am Zeilenanfang und keine Kommentare enthalten.
 

Anpassung der PPP-Konfiguration für den diald

Um den fehlerfreien Betrieb der diald mit ppp zu gewährleisten, dürfen einige Optionen weder in der Datei /etc/ppp/options aufgenommen, noch indirekt über die Kommandozeile an pppd übergeben werden.
Insbesondere sollten alle modemspezifischen Optionen wie: lock, crtscts, xonxoff, -crtscts, modem, aber auch solche, die das routing betreffen wie: proxyarp, defaultroute, local, netmask aus der ppp-Konfiguration auskommentiert werden. Weitergehende Informationen erhalten Sie unter man diald, Abschnitt pppd-options. Falls Sie bereits eine Einwahlkonfiguration erstellt haben oder eine solche erzeugen möchten, so beachten Sie bitte den Artikel PPP: Einrichtung eines Einwahlservers für Modems.

Konfiguration der manuellen Anwahl des Providers

Erstellen Sie für Ihren Provider eine Konfigurationsdatei im Verzeichnis /etc/ppp/peers mit den notwendigen PPP-Optionen.
In den meisten Fällen erhalten Sie keine Authentifizierung von Ihrem Provider selbst, weshalb die standardmäßige Option auth an dieser Stelle überschrieben werden muß. Entsprechend dem letzten Abschnitt müssen Sie die modemspezifischen Optionen nun in diese Datei aufnehmen.

------------------snip ---------------------------------------------
#
# /etc/ppp/peers/providername
# Aufruf mittels: pppd call providername
#

connect '/usr/bin/chat -v -f /etc/ppp/peers/providername.chat'

# überschreibe Optionen aus /etc/ppp/options
noauth

# dynamische Zuweisung der IP-Adressen durch Ihren Provider
0.0.0.0:0.0.0.0

# Aufnehmen aller Optionen, die wegen diald nicht direkt in options
# gesetzt werden sollten

defaultroute
mtu 1500
/dev/modem
modem
57600
crtscts
lock
------------------snap---------------------------------------------

Überprüfung des CHAT-Scripts und der PPP-Konfiguration

Zum Testen des Scripts führen Sie nun bitte eine manuelle Anwahl durch
pppd call providername
Die Fehlermeldungen, die z.B. vom chat-Script erzeugt werden, sind nicht auf dem Bildschirm lesbar, sondern werden in /var/log/messages protokolliert. Sinnvoll ist, auf einer zweiten Konsole ein
tail -f /var/log/messages /var/log/warn
laufen zu lassen, dann sieht man immer sofort, wenn es wichtige Meldungen zu beachten gibt.
Überprüfen Sie die Konfiguration der PPP-Schnittstelle mittels
ifconfig ppp0
Der Ausgabe können Sie die zugewiesenen IP-Adressen entnehmen

ppp0      Link encap:Point-to-Point Protocol
          inet addr:10.10.133.226  P-t-P:192.44.86.22  Mask:255.255.255.0
          UP POINTOPOINT RUNNING ARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
 

Automatische Anwahl mit diald

Erstellen Sie sich eine Konfigurationsdatei providername.diald.
Es wird dabei vom Regelfall (PPP mit PAP bei dynamischer IP-Zuweisung) ausgegangen.
Die Parameter local und remote müssen unbedingt reguläre IP-Adressen sein, auch wenn diese bei gesetzter Option dynamic nach dem Aufbau der Verbindung durch die vom Provider zugeteilten Adressen ersetzt werden.

------------------snip ---------------------------------
#
# /etc/ppp/providername.diald
# Aufruf mittels: diald -f dateiname
#

connect '/usr/sbin/chat -v -f /etc/ppp/peers/providername.chat'
device /dev/modem
modem
speed 115200
crtscts
mode ppp
two-way
pppd-options noauth

# lock-option darf in /etc/ppp/options nicht vorkommen !!!
lock

# Ausgangsbasis für die IP-Adressen, durch option dynamic
# werden diese nach dem Verbindungsaufbau gesetzt
local  192.168.1.1
remote 192.168.1.2
dynamic
defaultroute

# die folgende Option führt zu höherer Performance, sollte jedoch
# bei Schwierigkeiten abgeschaltet werden
reroute

disconnect-timeout 120
redial-timeout 30
dial-fail-limit 5
fifo /var/run/diald.ctl
--------------------snap---------------------------------------------

Starten Sie die automatische Anwahl zum Testen Ihrer Konfigurationsdatei:

diald -f /etc/ppp/providername.diald
und geben Sie zur Kontrolle den folgenden Befehl ein:
ifconfig sl0
Die Ausgabe sollte etwa so aussehen:

sl0       Link encap:Serial Line IP
          inet addr:192.168.1.1  P-t-P:192.168.1.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10

Um den Aufbau der Verbindung zu erzwingen starten Sie bitte:

ping www.suse.de

worauf das Modem mit der Anwahl Ihres Providers startet. Ist dies nicht der Fall, so kontrollieren Sie bitte die Optionen lock und device in den Konfigurationsdateien providername.diald und /etc/ppp/options.

Bitte überprüfen Sie auch den korrekten Abbau der Verbindung, der bei obigen Parametern nach 120 Sekunden erfolgen sollte.

Das Utility dctrl ermöglicht unter X-Windows die Kontrolle des diald. Für die obige Konfiguration wird es durch die folgende Eingabe aufgerufen:

dctrl -fifo /var/run/diald.ctl

Siehe auch:
o PPP-Verbindung wird bereits beim Booten aufgebaut

Stichwörter: PPPD, MODEM, PAP, PROVIDER, INTERNET, DIALD

Kategorien: PPP

SDB-jnroed_diald, Copyright SuSE Linux AG, Nürnberg, Germany - Version: 04. Jun 1999
SuSE Linux AG - Zuletzt generiert: 04. Jun 1999 von jnroed (sdb_gen 1.40.0)