Im Katalog suchen

Linux - Wegweiser für Netzwerker

Online-Version

Copyright © 2001 by O'Reilly Verlag GmbH & Co.KG

Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser für Netzwerker oder wollen Sie es bestellen, dann klicken Sie bitte hier.


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel



Erweiterte PPP-Konfigurationen

Zwar ist die Konfiguration von PPP zur Einwahl in Netzwerke wie das Internet die wohl häufigste Anwendung, jedoch gibt es auch Benutzer, die weiterreichende Anforderungen haben. In diesem Abschnitt behandeln wir einige dieser erweiterten Konfigurationen, die mit PPP unter Linux möglich sind.

PPP-Server

Bei der Ausführung von pppd als Server steht man eigentlich nur vor der Aufgabe, ein serielles tty-Gerät so zu konfigurieren, daß es pppd mit angemessenen Optionen startet, sobald eine eingehende Datenabfrage vorliegt. Eine Möglichkeit, dies zu erreichen, besteht in der Einrichtung eines speziellen Accounts, z.B. ppp, dem ein Skript oder ein Programm als Login-Shell zugeordnet wird, das pppd mit diesen Optionen aufruft. Wenn Sie die Unterstützung von PAP oder CHAP beabsichtigen, können Sie alternativ das Programm mgetty verwenden, um Ihr Modem zu unterstützen und dessen “/AutoPPP/”- ­Feature zu nutzen.

Um einen Server aufzubauen, der die Login-Methode verwendet, fügen Sie etwa folgende Zeile in Ihre /etc/passwd-Datei ein:1

ppp:x:500:200:Public PPP Account:/tmp:/etc/ppp/ppplogin
Unterstützt Ihr System Shadow-Paßwörter, müssen Sie auch einen Eintrag in die /etc/shadow-Datei hinzufügen:
ppp:!:10913:0:99999:7:::

Natürlich hängen die verwendete UID und GID sowohl vom Benutzer ab, der Eigentümer einer Verbindung sein soll und davon, wie Sie ihn angelegt haben. Außerdem müssen Sie mit dem Befehl passwd noch das entsprechende Paßwort für diesen Account zuweisen.

Das ppplogin-Skript könnte etwa wie folgt aussehen:

#!/bin/sh # ppplogin - Skript zum Start von pppd beim Login mesg n stty -echo exec pppd -detach silent modem crtscts

Der Befehl mesg verhindert, daß andere Benutzer an den tty schreiben können (beispielsweise mit write). Der Befehl stty schaltet das Echo aus. Das ist notwendig, weil sonst alle von der Gegenseite übertragenen Daten nochmal zurückgeschickt würden. Die wichtigste der oben angegebenen pppd-Optionen ist –detach, weil sie verhindert, daß sich pppd vom kontrollierenden tty abtrennt. Wenn Sie diese Option nicht angeben, würde es in den Hintergrund treten und das Shell-Skript beenden. Das würde wiederum dazu führen, daß die serielle Leitung abgebaut würde und somit die Verbindung beendet wäre. Mit der silent-Option weisen Sie pppd an zu warten, bis ein Paket vom anrufenden System empfangen wurde, bevor Sie mit dem Senden beginnen. Auf diese Weise werden Übertragungs-Timeouts verhindert, die auftreten können, wenn das anrufende System seinen PPP-Client nur langsam hochfährt. Mit der modem-Option übernimmt pppd die Kontrolle der Modem-Steuerungsleitungen auf dem seriellen Port. Diese Option sollten Sie immer aktivieren, wenn Sie pppd mit einem Modem betreiben. Die Option crtscts schaltet den Hardware-Handshake ein.

Außer diesen Optionen sollten Sie auch irgendeine Form der Authentifizierung aktivieren. Dazu können Sie die Option auch in der pppd-Kommandozeile oder in der globalen Optionsdatei setzen. Die Manpage beschreibt auch spezifischere Optionen, mit denen Sie bestimmte Authentifizierungs-Protokolle ein- und ausschalten können.

Wenn Sie mgetty benutzen wollen, brauchen Sie es lediglich so zu konfigurieren, daß es das an Ihr Modem angeschlossene serielle Device benutzt (Details finden Sie im Abschnitt Konfiguration des mgetty-Dämons). Dann müssen Sie nur noch pppd mit angemessenen Optionen in der Datei options auf PAP- oder CHAP-Authentifizierung einstellen und schließlich noch einen Abschnitt in Ihre /etc/mgetty/login.config-Datei eintragen, der etwa folgendermaßen aussieht:

# Konfiguration von mgetty zur automatischen Erkennung eingehender PPP-Anrufe # und Ausführung des pppd-Dämons zur Bearbeitung der Verbindung. # /AutoPPP/ -     ppp   /usr/sbin/pppd auth -chap +pap login

Das erste Feld enthält eine “magische” Option zur Erkennung, ob ein eingehender Anruf vom Typ PPP ist. Bei diesem String müssen Sie genau auf die Schreibweise achten — Groß- und Kleinschreibung sind hier wichtig. Die dritte Spalte enthält den Benutzernamen, der immer in den who-Listings erscheint, wenn sich jemand eingeloggt hat. Der Rest der Zeile enthält den Programmaufruf. In unserem Beispiel haben wir sichergestellt, daß PAP-Authentifizierung erforderlich ist, CHAP abgeschaltet ist und daß die /etc/passwd-Datei des Systems zur Benutzer-Authentifizierung hinzugezogen werden soll. Das ist vielleicht in etwa das, was Sie möchten. Denken Sie daran, Sie können die Optionen entweder in der options-Datei oder auf der Kommandozeile angeben.

Hier folgt eine kleine Checkliste, die Sie der Reihe nach abhaken sollten, wenn Sie Ihre Maschine für PPP-Einwahl fit machen wollen. Stellen Sie sicher, daß jeder Schritt korrekt funktioniert, bevor Sie mit dem nächsten Schritt fortfahren:

  1. Konfigurieren Sie Ihr Modem auf automatische Antwort. Bei Hayes-kompatiblen Modems erreichen Sie das mit einem Befehl wie ATS0=3. Wenn Sie den mgetty-Dämon benutzen wollen, ist dieser Schritt nicht notwendig.

  2. Konfigurieren Sie das serielle Device mit einem getty-artigen Befehl für die Beantwortung eingehender Anrufe. Eine geläufige getty-Variante ist mgetty.

  3. Überlegen Sie sich die Authentifizierungsmethoden. Werden sich Ihre Anrufer mittels PAP, CHAP oder System-Logins ausweisen?

  4. Konfigurieren Sie pppd als Server, wie in diesem Abschnitt beschrieben.

  5. Denken Sie über Routing nach. Müssen Sie vielleicht Ihren Anrufern eine Netzwerkroute bereitstellen? Routing kann mit dem ip-up-Skript durchgeführt werden.

Einwahl nach Bedarf

Wann immer IP-Datenverkehr über die Verbindung stattfindet, bewirkt eine Einwahl nach Bedarf (demand dialing), daß das an Ihr Telefon angeschlossene Modem automatisch eine Einwahl durchführt und eine Verbindung zum entfernten Host aufbaut. Ein solches Einwahlverfahren ist besonders nützlich für Anwendungen, bei denen Sie keine dauerhafte Telefonverbindung zu Ihrem Internet-Provider wünschen. Wenn Sie zum Beispiel für zeitbegrenzte Ortsgespräche Geld bezahlen müssen, wäre es unter Umständen günstiger, wenn Sie nur dann eine Verbindung zu Ihrem Internet-Provider aufbauen, wenn sie gerade benötigt wird, und die meiste Zeit keine Verbindung besteht.

Traditionelle Linux-Lösungen verwendeten dafür den Befehl diald. Er funktioniert zwar gut, war jedoch schwierig zu konfigurieren. Die Versionen 2.3.0 und folgende des PPP-Dämons haben bereits eingebaute Unterstützung für Einwahl nach Bedarf und sind sehr leicht zu konfigurieren. Dafür brauchen Sie allerdings einen modernen Kernel. Alle Kernel ab Version 2.0 sind dafür bestens geeignet.

Um pppd für Einwahl nach Bedarf zu konfigurieren, brauchen Sie lediglich einige Optionen in Ihrer options-Datei oder in der pppd-Befehlszeile anzugeben. Die folgende Tabelle enthält eine Zusammenfassung der Optionen für Einwahl nach Bedarf:
Option Erläuterung
demand

Diese Option gibt an, daß die PPP-Verbindung mit Einwahl nach Bedarf aufgebaut werden soll. Das PPP-Netzwerk-Device ist bereits erzeugt, der connect-Befehl wird jedoch nicht eher ausgeführt, bis ein Datagramm durch den lokalen Host verschickt wird. Diese Option ist unbedingt erforderlich, damit Einwahl nach Bedarf funktioniert.

active-filter Ausdruck

Mit dieser Option geben Sie an, welche Datenpakete als aktiver Datenverkehr aufgefaßt werden sollen. Jeder Datenverkehr, der die angegebene Regel erfüllt, startet den Leerlauf-Zeitgeber (demand idle timer) neu und stellt damit sicher, daß pppd wieder eine Wartepause einlegt, bevor es die Verbindung kappt. Die Filtersyntax wurde dem Befehl tcpdump entnommen. Der standardmäßig vorgegebene Filter paßt zu allen Datagrammen.

holdoff n

Diese Option gibt die minimale Zeitspanne in Sekunden an, die verstreichen soll, bevor eine beendete Verbindung wiedereröffnet wird. Falls die Verbindung abbricht, während pppd meint, sie wäre immer noch aktiv, wird sie erneut aufgebaut, sobald die Wartezeit abgelaufen ist. Diese Wartezeit wirkt sich aber nicht auf Verbindungen aus, die nach einer Leerlaufzeit (idle timeout) neu aufgebaut werden.

idle n

Ist diese Option konfiguriert, unterbricht pppd eine Verbindung, sobald diese Wartezeit verstrichen ist. Die Wartezeit wird in Sekunden angegeben. Jedes neue aktive Datenpaket setzt den Zeitgeber zurück.

Eine einfache Konfiguration für Einwahl nach Bedarf könnte daher etwa so aussehen:

demand holdoff 60 idle 180
Diese Konfiguration aktiviert Einwahl nach Bedarf, wartet 60 Sekunden, bevor eine unterbrochene Verbindung wiederaufgebaut wird, und beendet die Verbindung, wenn 180 Sekunden ohne irgendwelche aktiven Datentransfers über diese Verbindung verstrichen sind.

Ständige Einwahl

Ständige Einwahl ist das, was Anwender benutzen, wenn sie eine permanente Netzwerkanbindung haben wollen. Zwischen Einwahl nach Bedarf und dauerhafter Einwahl besteht ein feiner Unterschied. Bei dauerhafter Einwahl wird die Verbindung automatisch aufgebaut, sobald der PPP-Dämon gestartet ist. Der dauerhafte Aspekt an der Verbindung kommt immer dann zur Geltung, wenn eine Telefonverbindung unterbrochen wird. Ständige Einwahl stellt sicher, daß die Verbindung immer verfügbar ist, indem eine unterbrochene Verbindung automatisch wieder aufgebaut wird.

Vielleicht gehören Sie zu den Glücklichen, die nicht für ihre Telefonanrufe zahlen müssen, da sie kostenlose Ortsgespräche sind oder von Ihrem Arbeitgeber bezahlt werden. In einer solchen Situation ist dauerhafte Einwahl extrem nützlich. Wenn Sie Ihre Telefonanrufe allerdings selbst bezahlen müssen, sollten Sie vorsichtiger sein. Bezahlen Sie Ihre Telefonanrufe auf Zeitbasis, ist dauerhafte Einwahl ziemlich sicher nicht das, was Sie wollen, es sei denn, Sie benutzen Ihre Verbindung nahezu rund um die Uhr. Wenn Sie für jeden Anruf einzeln bezahlen müssen, die Anrufe aber nicht auf Zeitbasis abgerechnet werden, müssen Sie Situationen vermeiden, die das Modem zu endlosen Wahlwiederholungen anregen. Der pppd-Dämon bietet eine Option, die Ihnen dabei hilft, die Auswirkungen dieses Problems zu reduzieren.

Um dauerhafte Einwahl zu erreichen, müssen Sie die Option persist in einer Ihrer pppd-Optionsdateien angeben. Diese Option reicht völlig aus, um pppd dazu zu bringen, jedesmal den in der Option connect angegebenen Befehl auszuführen, um eine unterbrochene Verbindung wieder aufzubauen. Wenn Sie darüber besorgt sind, daß Ihr Modem die Wahlwiederholungen zu schnell durchführen könnte (bedingt durch einen Fehler im Modem oder beim Server am anderen Ende der Verbindung), steht Ihnen die Option holdoff zur Verfügung. Mit ihr können Sie die Mindestzeit angeben, die vor jeder neuen Verbindungsaufnahme verstreichen soll. Diese Option befreit Sie zwar nicht davon, für vergebliche Telefonanrufe bezahlen zu müssen, die durch irgendeinen Fehler zustandekommen, aber sie hilft Ihnen zumindest, die Auswirkungen des Fehlers zu reduzieren.

Eine typische Konfiguration mit Optionen für dauerhafte Einwahl sieht etwa folgendermaßen aus:

persist holdoff 600
Die holdoff-Zeit wird in Sekunden angegeben. In unserem Beispiel wartet pppd ganze fünf Minuten, bevor eine unterbrochene Verbindung neu aufgebaut wird.

Es ist möglich, dauerhafte Einwahl mit Einwahl nach Bedarf zu kombinieren. Mit idle wird die Verbindung nach einer gewissen Zeit der Untätigkeit unterbrochen. Wir glauben zwar nicht, daß viele Benutzer dies interessant finden, aber dieses Szenario wird kurz in der Manpage von pppd beschrieben.




1.

Die Hilfsmittel useradd oder adduser vereinfachen diese Aufgabe (sofern sie verfügbar sind).


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel


Weitere Informationen zum Linux - Wegweiser für Netzwerker

Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center


O'Reilly Home|O'Reilly-Partnerbuchhandlungen|Bestellinformationen
Kontakt|Über O'Reilly|Datenschutz

© 2001, O'Reilly Verlag