Beschreibung: Prüfungskandidaten sollten die Grundlagen des PPP-Protokols verstehen und in der Lage sein, PPP für ausgehende Verbindungen zu konfigurieren und zu verwenden. Dieses Lernziel beinhaltet die Beschreibung der Sequenz des Verbindungsaufbaus (bei gegebenem Login-Beispiel) und das Einrichten von automatisch bei Verbindungsaufbau auszuführenden Kommandos. Ebenfalls enthalten ist die Initialisierung und die Beendung einer PPP-Verbindung mittels Modem, ISDN oder ADSL und die Einstellung der automatischen Neuverbindung bei Verbindungsabbruch.
Die wichtigsten Dateien, Bezeichnungen und Anwendungen:
Normalerweise werden IP-Verbindungen über Netzwerkkarten hergestellt. Die Protokolle von TCP/IP sind für den Umgang mit Netzwerken geschrieben, sie arbeiten z.B. mit den MAC-Adressen (ARP) und mit der Aufteilung eines Datenstroms in Pakete, wie es bei Netzen üblich ist.
Um zwei Computer statt über Netzwerkkarten über serielle Schnittstellen zu vernetzen, existieren mehrere Protokolle wie SLIP (Serial Line IP) und PPP (Point to Point Protocol). SLIP ist veraltet und wird nur noch sehr selten eingesetzt. Heute wird meist PPP benutzt.
Die wirkliche Aufgabenstellung von PPP ist es nicht, zwei alleinstehene Computer über eine serielle Leitung zu vernetzen. Heute sind Netzwerkkabel und -karten so billig, daß es sich nicht lohnen würde eine solche Art der Vernetzung zu realisieren. Zumal damit nur zwei Rechner vernetzt werden können, das System also nicht ohne weiteres erweiterbar ist. Die wirkliche Aufgabe von PPP ist es, Rechner über serielle Leitungen mit anderen Rechnern zu verbinden, die an ein tatsächliches Netz angeschlossen sind, so daß auch der einzelne Rechner Zugriff auf das echte Netz hat. In der Regel ist das echte Netz das Internet und die serielle Leitung ist eine Modem/ISDN/ADSL Verbindung zum Provider:
Das PPP Protokoll ist ein spezielles Protokoll zur Realisierung einer IP-Verbindung über ein Medium, das nur zwei Kommunikationspartner verbindet. Also etwa serielle oder parallele Verbindungen. Spezielle Versionen von PPP sind für ISDN (syncPPP) oder für DSL (PPPoE) verfügbar, das klassische PPP ist typischerweise für Modemverbindungen gedacht.
Linux kann natürlich beide Rollen übernehmen, die der Workstation, die über PPP an einen Gateway angeschlossen wird (PPP-Client) oder die des Gateways, der eine PPP-Verbindung an ein echtes Netz knüpft (PPP-Server). Für die LPI102 Prüfung ist nur die Konfiguration eines PPP-Clients gefragt, diese Konfiguration wird im weiteren Verlauf dieses Abschnitts beschrieben.
Das heißt, zunächst einmal muß das Modem soweit gebracht werden, daß es eine Verbindung zu der bestimmten Nummer aufbaut. Das heißt das Modem muß initialisiert werden (ATZ) und die Initialisierung mit einem OK beantworten, anschließend muß die Nummer gewählt werden (ATD Nummer) und auf die Antwort CONNECT gewartet werden. Wenn diese Antwort empfangen wurde ist der erste Teil der Aufgabe erledigt. Damit haben wir eine bestehende serielle Verbindung zu dem anderen Rechner (Gateway). Auf dem Gateway hat das Modem abgenommen und ein normaler Login-Vorgang über getty wird jetzt gestartet. Das heißt, der Gateway schickt uns jetzt eine Meldung, die wahrscheinlich den Rechnernamen und das Wort login: beinhaltet. Diese Meldung wird von uns mit unserem Usernamen beantwortet. Daraufhin schickt der Gateway die Frage nach dem Passwort, die wir mit unserem Passwort beantworten. Wenn alles geklappt hat, ist der Login-Vorgang damit abgeschlossen.
Jetzt muß der eigentliche PPP-Daemon gestartet werden. Das muß auf beiden Seiten der Verbindung geschehen. Der Gateway hat den PPP-Daemon (pppd) als Startshell für den Usernamen eingetragen, er startet den Daemon also automatisch. Wir müssen den Daemon jetzt von Hand starten mit
pppd Schnittstelle Geschwindigkeit defaultrouteDie Schnittstelle ist dabei unsere serielle Schnittstelle, auf der das Modem hängt, die Geschwindigkeit ist meist 38400 (für moderne schnelle Modems) und die Option defaultroute sorgt dafür, daß die Verbindung zum Gateway als Default Route eingetragen wird. Der PPP-Daemon initialisiert jetzt die neu entstandene symbolische Netzschnittstelle ppp0 mit dem Programm ifconfig (mit einer dynamischen IP-Adresse, die er von der Gegenstelle bekommt) und legt die default route auf dieses Interface.
Jetzt besteht eine IP-Verbindung zu dem Garteway und unser Rechner hat Zugriff auf das hinter dem Gateway liegende Netz. PPP ist also jetzt aktiv.
Dieser Vorgang kann natürlich automatisiert werden und muß niemals von Hand ausgeführt werden. Diese Darstellung dient nur dazu, den Vorgang zu verstehen, der im nächsten Abschnitt beschrieben wird.
'' ATZ OK ATD12345 CONNECT '' ogin: hans ssword: 12sd45gfDas bedeutet, wir warten auf nichts und senden ein ATZ. Dadurch wird das Modem initialisiert. Das Modem antwortet mit einem OK. Sobald wir das OK empfangen haben, senden wir den Modembefehl ATD12345, der das Modem veranlasst, die Nummer 12345 anzuwählen. Sobald das gegenüberliegende Modem des Gateways abgenommen hat und die beiden Modems ihren Handshake beendet haben, antwortet unser Modem mit dem Wort CONNECT. Wenn wir das empfangen haben, schicken wir ein Return ('').
Jetzt wird der Gateway eine Loginaufforderung schicken. Wir wissen nicht, was genau er schickt, aber wir wissen, daß die Aufforderung mit den Buchstaben ogin: aufhört. Der Gateway könnte beispielsweise folgendes schicken:
Welcome to XYZ-Gateway Login:Es ist egal, was der Gateway sendet, sobald wir die Buchstaben ogin: empfangen, schicken wir wiederum den Usernamen hans. Der Gateway antwortet mit einer Aufforderung, ein Passwort einzugeben. Wir wissen nicht, ob er das groß oder klein schreibt, aber die letzten Buchstaben, die er schickt werden sicherlich ssword: sein. Sobald wir die empfangen haben, schicken wir das Passwort.
Mit diesem Befehl ist der Anmeldedialog abgeschlossen und die PPP-Verbindung wird aufgebaut.
Um den PPP-Daemon mit diesem Script zu starten, wird der Befehl
pppd "chat -f Scriptdatei" /dev/tty2 38400eingegeben. Scriptdatei bezeichnet die Datei, die das oben besprochene Chat-Script enthält. Dadurch wird eine PPP-Verbindung automatisch aufgebaut. Der PPP-Daemon pppd wird aufgerufen und er erhält als ersten Parameter den Aufruf von Chat, mit der Scriptdatei. Die Angabe /dev/tty2 38400 bezieht sich auf die serielle Schnittstelle, an der das Modem hängt und die dort verwendete Geschwindigkeit.
Die zu verwendenden Optionen werden wir - statt sie auf der Kommandozeile einzugeben - in einer anderen Datei (/etc/ppp/options) angeben, dazu genaueres später.
Wenn der PPP-Daemon erfolgreich einen Verbindungsaufbau erledigt hat, so ruft er ein Shellscript mit Namen /etc/ppp/ip-up auf. Diesem Shellscript gibt er die folgenden Parameter mit:
ip-up Interfacename Gerätedate Geschwindigkeit Local_IP Remote_IPDieses Script kann jetzt dazu verwendet werden, weitere Befehle auszuführen, die nach dem Verbindungsaufbau gewünscht werden, etwa Firewallregeln oder andere Kommandos. Beim Abbau einer Verbindung wird entsprechend das Script /etc/ppp/ip-down abgearbeitet, das wieder entsprechende Befehle beinhalten kann.
Wen wvdial startet, läd es zunächst seine Konfiguration aus der Datei /etc/wvdial.conf. Diese Datei enthält sowohl die Grundeinstellungen für die Schnittstelle, das Modem und die Geschwindigkeit, als auch Informationen über die anzuwählenden Provider (Telefonnummer, Username, Passwort).
Nachdem diese Datei gelesen wurde, initialisiert wvdial das Modem, wählt die entsprechende Nummer, authentifiziert den Login und startet den PPP-Daemon.
Die Konfigurationsdatei kann für verschiedene Provider Einträge besitzen. Sie ist aufgebaut wie eine Windows-INI Datei, also mit Sektionen, die durch Überschriften in eckigen Klammern begrenzt werden. Neben der Sektion [Dialer Defaults], die die Grundeinstellungen und einen voreingestellten Providereintrag enthält, kann es beliebig viele andere Einträge in der Form [Dialer Providername].
Wird wvdial ohne Parameter aufgerufen, so wählt es die Verbindung aus der Sektion [Dialer Defaults], wird es aber mit einem Parameter aufgerufen, der einen Provider beschreibt, so wird der entsprechende Einträge aus der Datei /etc/wvdial.conf benutzt. Der Aufruf
wvdial foobenutzt also den Eintrag [Dialer foo] aus der Konfigurationsdatei.
Ein Beispiel für eine solche Datei könnte folgendermaßen aussehen:
[Dialer Defaults] Modem = /dev/modem Baud = 57600 Init1 = ATZ Dial Command = ATDT Idle Seconds = 180 Phone = 012345678 Username = foo Password = bar [Dialer provider1] Phone = 0987654321 Username = hans Password = asdf1234 [Dialer provider2] Phone = 0918273645 Login Prompt = Weristda: Username = hmueller Password = 1082.oirIm Abschnitt [Dialer Defaults] werden die entsprechenden Grundeinstellungen gemacht, die für alle anderen Abschnitte auch benutzt werden, wenn dort nichts anderes vereinbart ist. Jeder andere Abschnitt enthält dann noch die notwendigen Informationen über den anzurufenden Provider.
Wie beim Aufbau der Verbindung mit Chat, so wird auch hier beim Aufbau der PPP-Verbindung das Script /etc/ppp/ip-up abgearbeitet und beim Verbindungsabbau entsprechend /etc/ppp/ip-down.
Im Verzeichnis /etc/ppp/peers muß - bei Verwendung modernerer PPP-Daemonen - die Datei wvdial liegen, die ein paar Optionen für den PPP-Daemon enthält, die er benötigt, wenn er über wvdial gestartet wurde. In der Regel enthält diese Datei nur die Zeilen
noauth name wvdial replacedefaultrouteFalls andere Startprogramme verwendet werden, können sie auch in diesem Verzeichnis jeweils eine Datei besitzen, die die nötigen Optionen für sie setzen.
Diese Datei kennt viele verschiedenen Einträge, die wichtigsten sind hier kurz erklärt:
kill -INT `cat /var/run/ppp0.pid`ausgeführt werden. Natürlich kann dieser Befehl auch in einem Script verwendet werden.