doc/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
2012-09-14 17:47:48 +00:00

3403 lines
121 KiB
XML

<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!--
The FreeBSD Documentation Project
The FreeBSD German Documentation Project
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/ppp-and-slip/chapter.sgml,v 1.94 2012/02/16 20:12:54 bcr Exp $
basiert auf: 1.197
-->
<chapter id="ppp-and-slip">
<chapterinfo>
<authorgroup>
<author>
<firstname>Jim</firstname>
<surname>Mock</surname>
<contrib>Restrukturiert, neu organisiert und aktualisiert von </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Thomas</firstname>
<surname>Schwarzkopf</surname>
<contrib>Übersetzt von </contrib>
</author>
</authorgroup>
</chapterinfo>
<title>PPP und SLIP</title>
<sect1 id="ppp-and-slip-synopsis">
<title>Übersicht</title>
<indexterm id="ppp-ppp">
<primary>PPP</primary>
</indexterm>
<indexterm id="ppp-slip">
<primary>SLIP</primary>
</indexterm>
<para>Unter FreeBSD stehen verschiedene Möglichkeiten zur
Verfügung, um Computer miteinander zu verbinden. Der Aufbau
einer Netzwerk- oder Internetverbindung mit Hilfe eines Einwahlmodems
&ndash; für den eigenen oder für andere Rechner &ndash;
erfordert den Einsatz von PPP oder SLIP.</para>
<para>Nachdem Sie dieses Kapitel gelesen haben, werden Sie wissen:</para>
<itemizedlist>
<listitem>
<para>Wie Sie User-PPP einrichten.</para>
</listitem>
<listitem>
<para>Wie Sie Kernel-PPP einrichten (nur für
&os;&nbsp;7.X relevant).</para>
</listitem>
<listitem>
<para>Was zu tun ist, um <acronym>PPPoE</acronym> (PPP over
Ethernet) einzurichten.</para>
</listitem>
<listitem>
<para>Wie Sie <acronym>PPPoA</acronym> (PPP over
ATM) einrichten.</para>
</listitem>
<listitem>
<para>Wie Sie einen SLIP-Client und -Server einrichten und
konfigurieren ((nur für &os;&nbsp;7.X relevant)</para>
</listitem>
</itemizedlist>
<indexterm id="ppp-ppp-user">
<primary>PPP</primary>
<secondary>User-PPP</secondary>
</indexterm>
<indexterm id="ppp-ppp-kernel">
<primary>PPP</primary>
<secondary>Kernel-PPP</secondary>
</indexterm>
<indexterm id="ppp-ppp-ethernet">
<primary>PPP</primary>
<secondary>over Ethernet</secondary>
</indexterm>
<para>Bevor Sie dieses Kapitel lesen, sollten Sie:</para>
<itemizedlist>
<listitem>
<para>mit den grundlegenden Begriffen der Netzwerktechnik
vertraut sein.</para>
</listitem>
<listitem>
<para>die Grundlagen und den Zweck einer Einwahlverbindung sowie
PPP und/oder SLIP kennen.</para>
</listitem>
</itemizedlist>
<para>Sie fragen sich vielleicht, worin denn der Hauptunterschied
zwischen User-PPP und Kernel-PPP liegt. Die Antwort ist einfach:
User-PPP verarbeitet die ein- und ausgehenden Daten im Userland,
statt im Kernel. Dies ist zwar aufwändig, im Hinblick auf
die Daten, die dadurch zwischen Kernel und Userland hin und her
kopiert werden müssen, doch es ermöglicht auch eine
PPP-Implementierung mit weitaus mehr Funktionen. User-PPP verwendet
das Gerät <devicename>tun</devicename>, um mit anderen Rechnern
zu kommunizieren, während Kernel-PPP hierfür das
Gerät <devicename>ppp</devicename> benutzt.</para>
<note>
<para>In diesem Kapitel wird durchgängig vom Programm
<application>ppp</application> gesprochen, wenn damit User-PPP
gemeint ist. Ausnahmen werden gemacht, wenn eine
Unterscheidung gegenüber anderer PPP-Software, wie
<application>pppd</application> (nur unter &os;&nbsp;7.X),
notwendig wird. Soweit nichts
anderes angegeben ist, sollten alle Befehle, die in diesem
Kapitel erklärt werden, als <username>root</username>
ausgeführt werden.</para>
</note>
</sect1>
<sect1 id="userppp">
<sect1info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Aktualisiert und erweitert von </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Brian</firstname>
<surname>Somers</surname>
<contrib>Ursprünglich geschrieben von </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Nik</firstname>
<surname>Clayton</surname>
<contrib>Mit Beiträgen von </contrib>
</author>
<author>
<firstname>Dirk</firstname>
<surname>Frömberg</surname>
</author>
<author>
<firstname>Peter</firstname>
<surname>Childs</surname>
</author>
</authorgroup>
</sect1info>
<title>User-PPP</title>
<warning>
<para>Mit &os;&nbsp;8.0 wurden die Gerätedateien für
serielle Ports umbenannt:
<filename>/dev/cuad<replaceable>N</replaceable></filename> wurde
zu <filename>/dev/cuau<replaceable>N</replaceable></filename>,
<filename>/dev/ttyd<replaceable>N</replaceable></filename> zu
<filename>/dev/ttyu<replaceable>N</replaceable></filename>.
Verwenden Sie noch &os;&nbsp;7.X, müssen Sie dies beim
Lesen der folgenden Abschnitte berücksichtigen.</para>
</warning>
<sect2>
<title>User-PPP</title>
<sect3>
<title>Voraussetzungen</title>
<para>Dieses Dokument geht davon aus, dass Sie Folgendes zur
Verfügung haben:</para>
<itemizedlist>
<indexterm id="ppp-isp">
<primary>ISP</primary>
</indexterm>
<indexterm id="ppp-ppp2">
<primary>PPP</primary>
</indexterm>
<listitem>
<para>Einen Account bei einem Internet Service Provider (ISP),
zu dem Sie mit PPP eine Verbindung aufbauen können.</para>
</listitem>
<listitem>
<para>Ein Modem oder ein anderes Gerät, das, richtig
konfiguriert und mit Ihrem Rechner verbunden, Ihnen die
Herstellung einer Verbindung zu Ihrem ISP erlaubt.</para>
</listitem>
<listitem>
<para>Die Einwahlnummer(n) Ihres ISP.</para>
</listitem>
<listitem>
<indexterm id="ppp-pap">
<primary>PAP</primary>
</indexterm>
<indexterm id="ppp-chap">
<primary>CHAP</primary>
</indexterm>
<indexterm id="ppp-unix">
<primary>UNIX</primary>
</indexterm>
<indexterm id="ppp-login">
<primary>Login Name</primary>
</indexterm>
<indexterm id="ppp-password">
<primary>Passwort</primary>
</indexterm>
<para>Ihren Login-Namen und Ihr Passwort (entweder ein
reguläres Login/Passwort-Paar im &unix;-Stil oder
ein PAP bzw. CHAP Login/Passwort-Paar).</para>
</listitem>
<listitem>
<indexterm id="ppp-nameserver">
<primary>Nameserver</primary>
</indexterm>
<para>Die IP-Adresse von einem oder mehreren Nameservern.
Üblicherweise werden Ihnen von Ihrem ISP zwei
IP-Adressen für diesen Zweck zur Verfügung gestellt.
Wenn Sie keine solche IP-Adresse von Ihrem
Provider bekommen haben, können Sie das Kommando
<command>enable dns</command> in der Datei
<filename>ppp.conf</filename> verwenden, um
<application>ppp</application> anzuweisen, den Nameserver
für Sie einzutragen. Diese Funktion setzt allerdings
voraus, dass Ihr ISP eine PPP-Implementierung verwendet,
die das Aushandeln eines Nameservers unterstützt.</para>
</listitem>
</itemizedlist>
<para>Die folgenden Informationen werden Ihnen möglicherweise
von Ihrem ISP zur Verfügung gestellt, sie sind aber nicht
zwingend erforderlich:</para>
<itemizedlist>
<listitem>
<para>Die Gateway IP-Adresse Ihres ISP. Als Gateway wird
der Computer bezeichnet, zu dem Sie eine Verbindung aufbauen.
Die IP-Adresse dieses Rechners wird als
<emphasis>default route</emphasis> eingetragen. Wenn Sie
diese Information nicht zur Verfügung haben, kann PPP so
konfiguriert werden, dass der PPP-Server Ihres ISP während
des Verbindungsaufbaus eine gültige Adresse
übermittelt.</para>
<para>
<application>ppp</application> bezieht sich mit
<literal>HISADDR</literal> auf diese IP-Adresse.</para>
</listitem>
<listitem>
<para>Die Netzmaske, die Sie verwenden sollten. Falls Ihnen Ihr
ISP keine Netzmaske vorgegeben hat, können Sie
<hostid role="netmask">255.255.255.255</hostid> verwenden.</para>
</listitem>
<listitem>
<indexterm id="ppp-static-ip">
<primary>feste IP-Adresse</primary>
</indexterm>
<para>Wenn Ihnen Ihr ISP eine statische IP-Adresse zur
Verfügung stellt, können Sie diese eintragen.
Andernfalls lassen wir uns einfach von der Gegenstelle
eine IP-Adresse zuweisen.</para>
</listitem>
</itemizedlist>
<para>Falls Ihnen die erforderlichen Informationen fehlen
sollten, nehmen Sie bitte Kontakt mit Ihrem ISP auf.</para>
<note>
<para>Die Beispieldateien, die in diesem Kapitel dargestellt werden,
enthalten Zeilennummern. Die Nummerierung dient lediglich einer
leichteren Orientierung und sollte von Ihnen nicht in Ihre Dateien
übernommen werden. Richtiges Einrücken, durch
Tabulatoren und Leerzeichen, ist ebenfalls wichtig.</para>
</note>
</sect3>
<sect3>
<title>Automatische Konfiguration von
<application>PPP</application></title>
<indexterm>
<primary>PPP</primary>
<secondary>Konfiguration</secondary>
</indexterm>
<para>Sowohl <command>ppp</command> als auch <command>pppd</command>
(die PPP-Implementierung auf Kernelebene, nur unter &os;&nbsp;7.X)
verwenden die
Konfigurationsdateien im Verzeichnis <filename
class="directory">/etc/ppp</filename>.
Beispiele für User-PPP sind in <filename
class="directory">/usr/share/examples/ppp/</filename>
zu finden.</para>
<para>Die Konfiguration von <command>ppp</command> erfordert,
je nach Ihren besonderen Bedingungen, die Bearbeitung
einiger Dateien. Was Sie in diese Dateien eintragen, hängt
unter anderem davon ab, ob Ihnen Ihr ISP eine statische
IP-Adresse (Sie verwenden immer dieselbe IP-Adresse,
die Ihnen einmal zugeteilt wurde) oder eine dynamische IP-Adresse
(Ihre IP-Adresse ändert sich bei jeder Verbindung
mit dem ISP) zugewiesen hat.</para>
<sect4 id="userppp-staticIP">
<title>PPP und statische IP-Adressen</title>
<indexterm>
<primary>PPP</primary>
<secondary>mit fester IP-Adresse</secondary>
</indexterm>
<para>Sie müssen die Konfigurationsdatei
<filename>/etc/ppp/ppp.conf</filename> bearbeiten. Sie sollte
so aussehen, wie in dem unten angegebenen Beispiel.</para>
<note>
<para>Zeilen die mit einem <literal>:</literal> enden,
beginnen in der ersten Spalte (am Beginn der Zeile). Alle
anderen Zeilen sollten wie dargestellt durch Leerzeichen
oder Tabulatoren eingerückt werden.</para>
</note>
<programlisting>1 default:
2 set log Phase Chat LCP IPCP CCP tun command
3 ident user-ppp VERSION (built COMPILATIONDATE)
4 set device /dev/cuau0
5 set speed 115200
6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
7 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
8 set timeout 180
9 enable dns
10
11 provider:
12 set phone "(123) 456 7890"
13 set authname foo
14 set authkey bar
15 set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp"
16 set timeout 300
17 set ifaddr <replaceable>x.x.x.x</replaceable> <replaceable>y.y.y.y</replaceable> 255.255.255.255 0.0.0.0
18 add default HISADDR</programlisting>
<variablelist>
<varlistentry>
<term>Zeile 1:</term>
<listitem>
<para>Gibt den Standardeintrag an. Befehle dieses
Eintrags werden automatisch ausgeführt, wenn
ppp läuft.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 2:</term>
<listitem>
<para>Schaltet die Loggingparameter ein. Wenn die
Verbindung zufriedenstellend funktioniert, können
Sie diese Zeile verkürzen:</para>
<programlisting>set log phase tun</programlisting>
<para>Dies verhindert ein übermäßiges
Anwachsen der Logdateien.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 3:</term>
<listitem>
<para>Gibt PPP an, wie es sich gegenüber der
Gegenstelle identifizieren soll. PPP identifiziert
sich gegenüber der Gegenstelle, wenn es Schwierigkeiten
bei der Aushandlung und beim Aufbau der Verbindung gibt.
Dabei werden Informationen bereitgestellt, die dem
Administrator der Gegenstelle helfen
können, die Ursache der Probleme zu finden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 4:</term>
<listitem>
<para>Gibt das Device an, an dem das Modem
angeschlossen ist.
<devicename>COM1</devicename> entspricht <filename
class="devicefile">/dev/cuad0</filename> und
<devicename>COM2</devicename> entspricht <filename
class="devicefile">/dev/cuad1</filename>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 5:</term>
<listitem>
<para>Legt die Geschwindigkeit fest, mit der Sie
die Verbindung betreiben möchten. Falls ein Wert
von 115200 nicht funktioniert (was aber bei jedem
einigermaßen neuen Modem
funktionieren sollte), versuchen Sie es stattdessen
mit 38400.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeilen 6 &amp; 7:</term>
<listitem>
<indexterm>
<primary>PPP</primary>
<secondary>User-PPP</secondary>
</indexterm>
<para>Die Zeichenfolge für die Einwahl. User-PPP
verwendet eine expect-send Syntax, ähnlich dem
&man.chat.8;-Programm. Weitere Informationen zu den
Eigenschaften dieser Sprache bietet die Manual-Seite.</para>
<para>Beachten Sie, dass dieser Befehl aufgrund der
besseren Lesbarkeit auf der nächsten Zeile weitergeht.
Das kann für jeden Befehl in
<filename>ppp.conf</filename> gelten, wenn
<literal>\</literal> das letzte Zeichen in einer Zeile
ist.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 8:</term>
<listitem>
<para>Legt den Zeitrahmen fest, innerhalb dessen eine Reaktion
erfolgen muss. Der Standardwert liegt bei 180&nbsp;Sekunden, so
dass diese Zeile lediglich einen kosmetischen Charakter
hat.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 9:</term>
<listitem>
<para>Weist PPP an, bei der Gegenstelle eine Bestätigung
der lokalen Resolvereinstellungen anzufordern. Wenn Sie
einen lokalen Nameserver betreiben, sollte diese Zeile
auskommentiert oder gelöscht werden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 10:</term>
<listitem>
<para>Eine leere Zeile zur besseren Lesbarkeit. Leere Zeilen
werden von PPP ignoriert.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 11:</term>
<listitem>
<para>Bestimmt einen Provider, namens
<quote>provider</quote>. Wenn Sie hier den Namen Ihres
ISP einsetzen, können Sie später die Verbindung
mit <option>load <replaceable>ISP</replaceable></option>
aufbauen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 12:</term>
<listitem>
<para> Gibt die Telefonnummer des Providers an. Mehrere
Telefonnummern können angegeben werden, indem Doppelpunkte
(<literal>:</literal>) oder Pipe-Zeichen
(<literal>|</literal>) als Trennzeichen verwendet werden.
Der Unterschied zwischen diesen beiden Trennzeichen ist in
&man.ppp.8; beschrieben.
Zusammenfassend: Wenn Sie die verschiedenen Nummern
abwechselnd verwenden möchten, sollten Sie die
Nummern durch einen Doppelpunkt trennen.
Wenn Sie immer die erste Nummer verwenden möchten und
die anderen nur zum Einsatz kommen sollen, wenn eine Einwahl
mit der ersten Telefonnummer nicht möglich ist, sollten
Sie das Pipe-Zeichen zur Trennung verwenden.
Wie im Beispiel, sollten Sie die gesamte Reihe der
Telefonnummern in Anführungszeichen setzen.</para>
<para>Sie müssen die Telefonnummer in
Anführungszeichen (<literal>"</literal>) setzen,
wenn Sie Leerzeichen in der Telefonnummer verwenden,
ansonsten rufen Sie einen Fehler hervor, der vielleicht
schwer zu finden ist.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeilen 13 &amp; 14:</term>
<listitem>
<para>Gibt den Benutzernamen und das Passwort an. Wenn Sie
zur Verbindung einen Login-Prompt im UNIX-Stil verwenden,
bezieht sich der Befehl <command>set login</command>
mit den \U und \P Variablen auf diese Werte. Wenn Sie
zum Verbindungsaufbau PAP oder CHAP verwenden, werden
diese Werte zum Zeitpunkt der
Authentifizierung verwendet.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 15:</term>
<listitem>
<indexterm><primary>PAP</primary></indexterm>
<indexterm><primary>CHAP</primary></indexterm>
<para>Wenn Sie PAP oder CHAP einsetzen, gibt es an
dieser Stelle keinen Login-Prompt, weshalb Sie diese
Zeile auskommentieren oder löschen sollten. Der
Abschnitt <link linkend="userppp-PAPnCHAP">Authentifizierung
mit PAP und CHAP</link> enthält hierzu weitere
Einzelheiten.</para>
<para>Der Login-String hat die gleiche chat-ähnliche
Syntax, wie der Einwahlstring. Der String in diesem
Beispiel funktioniert mit einem ISP, dessen
Login-Session folgendermaßen aussieht:</para>
<screen>J. Random Provider
login: <replaceable>foo</replaceable>
password: <replaceable>bar</replaceable>
protocol: ppp</screen>
<para>Sie müssen dieses Skript noch an Ihre
eigenen Erfordernisse anpassen. Wenn Sie dieses Skript
zum ersten Mal schreiben, sollten Sie sicherstellen,
dass Sie <quote>chat</quote>-logging aktiviert haben,
damit Sie überprüfen zu können, ob
die Konversation zwischen Ihrem Rechner und dem Rechner
des Providers wie erwartet abläuft.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 16:</term>
<listitem>
<indexterm><primary>Zeitbeschränkung</primary></indexterm>
<para>Setzt einen Zeitrahmen (in Sekunden), innerhalb
dessen eine Reaktion erfolgen muss. In diesem Fall,
wird die Verbindung nach 300&nbsp;Sekunden automatisch
geschlossen, wenn keine Aktivität zu
verzeichnen ist. Wenn Sie keinen Zeitrahmen festlegen
wollen, nach dessen Überschreiten die Verbindung
geschlossen wird, können Sie diesen Wert auf 0
setzen oder die Kommandozeilen-Option
<option>-ddial</option> verwenden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 17:</term>
<listitem>
<indexterm><primary>ISP</primary></indexterm>
<para>Gibt die IP-Adresse für das Interface an.
Der String <replaceable>x.x.x.x</replaceable> sollte
durch die IP-Adresse ersetzt werden, die Ihnen Ihr
Provider zugeteilt hat. Der String
<replaceable>y.y.y.y</replaceable> sollte durch die
IP-Adresse ersetzt werden, die Ihr ISP als Gateway
angegeben hat (das ist der Rechner, mit dem Ihr Rechner
eine Verbindung aufbaut). Wenn Ihnen Ihr ISP keine
Gateway Adresse zur Verfügung gestellt hat,
verwenden Sie hier einfach <hostid
role="netmask">10.0.0.2/0</hostid>. Wenn Sie
eine <quote>erratene</quote> IP-Adresse verwenden
müssen, sollten Sie in der Datei
<filename>/etc/ppp/ppp.linkup</filename> einen
entsprechenden Eintrag machen. Folgen Sie dazu den
Anweisungen im Abschnitt <link
linkend="userppp-dynamicIP">PPP und dynamische
IP-Adressen</link>. Wenn diese Zeile ausgelassen
wird, kann <command>ppp</command> nicht im
<option>-auto</option> Modus betrieben werden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 18:</term>
<listitem>
<para>Fügt eine Defaultroute für das Gateway Ihres
Providers hinzu. Das Wort <literal>HISADDR</literal> wird
dabei durch die in Zeile&nbsp;17 angegebene Gateway
Adresse ersetzt. Wichtig ist, dass diese Zeile nach
Zeile&nbsp;17 erscheint, da andernfalls
<literal>HISADDR</literal> noch nicht initialisiert
ist.</para>
<para>Wenn Sie ppp nicht im <option>-auto</option>
Modus betreiben, sollte diese Zeile in die Datei
<filename>ppp.linkup</filename>
verschoben werden.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Wenn Sie eine statische IP-Adresse verwenden und ppp im
<option>-auto</option> Modus läuft, ist es nicht notwendig,
einen Eintrag in die Datei <filename>ppp.linkup</filename>
hinzuzufügen. In diesem Fall hat ihre Routingtabelle
bereits die richtigen Einträge, bevor Sie die Verbindung
aufbauen. Sie möchten aber vielleicht einen Eintrag
hinzufügen, um ein Programm aufzurufen, nachdem die
Verbindung aufgebaut ist. Dies wird weiter unten am Beispiel
von Sendmail erklärt.</para>
<para>Beispiele für Konfigurationsdateien finden Sie
im Verzeichnis <filename
class="directory">/usr/share/examples/ppp/</filename>.</para>
</sect4>
<sect4 id="userppp-dynamicIP">
<title>PPP und dynamische IP-Adressen</title>
<indexterm>
<primary>PPP</primary>
<secondary>mit dynamischen IP-Adressen</secondary>
</indexterm>
<indexterm><primary>IPCP</primary></indexterm>
<para>Wenn Ihnen Ihr ISP keine statische IP-Adresse zuteilt,
kann <command>ppp</command> so konfiguriert werden, dass die
lokale und die entfernte IP-Adresse beim Verbindungsaufbau
ausgehandelt werden. Dies geschieht, indem zunächst eine
IP-Adresse <quote>erraten</quote> wird, die von
<command>ppp</command>, unter Verwendung des IP
Configuration Protocol (IPCP) durch eine richtige ersetzt wird,
wenn die Verbindung aufgebaut ist. Die Konfiguration der Datei
<filename>ppp.conf</filename> entspricht derjenigen, die im
Abschnitt <link linkend="userppp-staticIP">PPP und statische IP-
Adressen</link> dargestellt wurde, jedoch mit folgender
Änderung:</para>
<programlisting>17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 0.0.0.0</programlisting>
<para>Auch hier dient die Zeilennummerierung lediglich der
besseren Übersichtlichkeit. Einrückungen, von
mindestens einem Leerzeichen, sind allerdings erforderlich.</para>
<variablelist>
<varlistentry>
<term>Zeile 17:</term>
<listitem>
<para>Die Zahl nach dem <literal>/</literal> Zeichen,
gibt die Anzahl der Bits der Adresse an, auf die ppp
besteht. Sie möchten vielleicht andere IP-Adressen
verwenden, die oben angegebenen werden aber immer
funktionieren.</para>
<para>Das letzte Argument (<literal>0.0.0.0</literal>) weist
PPP an, den Verbindungsaufbau mit der Adresse <hostid
role="ipaddr">0.0.0.0</hostid> zu beginnen, statt <hostid
role="ipaddr">10.0.0.1</hostid> zu verwenden. Dies ist bei
einigen ISPs notwendig. Verwenden Sie nicht
<literal>0.0.0.0</literal>
als erstes Argument für <command>set ifaddr</command>,
da so verhindert wird, dass
PPP im <option>-auto</option> Modus eine initiale Route
setzt.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Wenn PPP nicht im <option>-auto</option> Modus läuft,
müssen Sie die Datei<filename>/etc/ppp/ppp.linkup</filename>
editieren. <filename>ppp.linkup</filename> kommt zum Einsatz, wenn
eine Verbindung aufgebaut worden ist. Zu diesem Zeitpunkt hat
<command>ppp</command> die Interface Adressen vergeben und es ist
möglich, die Einträge in der Routingtabelle
hinzuzufügen:</para>
<programlisting>1 provider:
2 add default HISADDR</programlisting>
<variablelist>
<varlistentry>
<term>Zeile 1:</term>
<listitem>
<para>Beim Aufbau einer Verbindung sucht <command>ppp</command>
in der Datei <filename>ppp.linkup</filename> nach einem
Eintrag. PPP geht dabei nach folgenden Regeln vor:
Suche zunächst nach der gleichen Bezeichnung,
die wir auch in der Datei <filename>ppp.conf</filename>
verwendet haben. Falls das nicht
funktioniert, suche nach einem Eintrag der IP-Adresse unseres
Gateways. Dieser Eintrag ist eine Bezeichnung im Stil von
IP-Adressen, die sich aus vier Oktetts zusammensetzt. Falls
immer noch kein passender Eintrag gefunden wurde, suche nach
dem Eintrag <literal>MYADDR</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 2:</term>
<listitem>
<para>Diese Zeile weist <command>ppp</command> an, eine
Defaultroute zu verwenden, die auf <literal>HISADDR</literal>
zeigt. <literal>HISADDR</literal> wird nach der
Aushandlung mit IPCP durch die IP-Adresse des
Gateways ersetzt.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Die Dateien
<filename>/usr/share/examples/ppp/ppp.conf.sample</filename>
und <filename>/usr/share/examples/ppp/ppp.linkup.sample</filename>
bieten detaillierte Beispiele für <literal>pmdemand</literal>
Einträge.</para>
</sect4>
<sect4>
<title>Annahme eingehender Anrufe</title>
<indexterm>
<primary>PPP</primary>
<secondary>eingehende Anrufe annehmen</secondary>
</indexterm>
<para>Wenn Sie <application>ppp</application> auf einem Rechner,
der in ein LAN eingebunden ist, so konfigurieren, dass eingehende
Anrufe angenommen werden, müssen Sie entscheiden,
ob Pakete an das LAN weitergeleitet werden sollen. Wenn Sie das
möchten, sollten Sie an die Gegenstelle eine IP-Adresse aus
Ihrem lokalen Subnetz vergeben und den Befehl
<command>enable proxy</command>
in die Datei <filename>/etc/ppp/ppp.conf</filename> einfügen.
Außerdem sollte die Datei <filename>/etc/rc.conf</filename>
Folgendes enthalten:</para>
<programlisting>gateway_enable="YES"</programlisting>
</sect4>
<sect4>
<title>Welches getty?</title>
<para>Der Abschnitt <link
linkend="dialup">Einwählverbindungen</link>
bietet eine gute Beschreibung, wie Einwählverbindungen unter
Verwendung von &man.getty.8; genutzt werden können.</para>
<para>Eine Alternative zu <command>getty</command> ist <ulink
url="http://mgetty.greenie.net/">mgetty</ulink>,
eine raffiniertere Version von <command>getty</command>, die mit
Blick auf Einwählverbindungen entworfen wurde. Sie
können dieses Paket über den Port <filename
role="package">comms/mgetty+sendfax</filename>
installieren.</para>
<para>Der Vorteil von <command>mgetty</command> ist,
dass es auf aktive Weise mit Modems <emphasis>spricht</emphasis>,
das heißt wenn ein Port in <filename>/etc/ttys</filename>
ausgeschaltet ist, wird Ihr Modem nicht auf Anrufe
reagieren.</para>
<para>Spätere Versionen von <command>mgetty</command> (von
0.99beta aufwärts) unterstützen auch die automatische
Erkennung von PPP-Streams, was Ihren Clients den skriptlosen
Zugang zu Ihren Servern erlaubt.</para>
<para>Der Abschnitt <link linkend="userppp-mgetty">Mgetty und
AutoPPP</link> bietet weitere Informationen zu
<command>mgetty</command>.</para>
</sect4>
<sect4>
<title><application>PPP</application> und Rechte</title>
<para>Der Befehl <command>ppp</command> muss normalerweise als
<username>root</username> ausgeführt werden. Wenn Sie
jedoch möchten, dass <command>ppp</command> im Server-Modus
auch von einem normalen Benutzer, wie unten beschrieben,
durch Aufruf von <command>ppp</command>
ausgeführt werden kann, müssen Sie
diesem Benutzer die Rechte erteilen, <command>ppp</command>
auszuführen, indem Sie ihn in der Datei
<filename>/etc/group</filename> der Gruppe
<groupname>network</groupname> hinzufügen.</para>
<para>Sie werden ihm ebenfalls den Zugriff auf einen oder mehrere
Abschnitte der Konfigurationsdatei geben müssen, indem Sie
den <command>allow</command> Befehl verwenden:</para>
<programlisting>allow users fred mary</programlisting>
<para>Wenn dieser Befehl im <literal>default</literal>
Abschnitt verwendet wird, erhalten die angegebenen Benutzer
vollständigen Zugriff.</para>
</sect4>
<sect4>
<title>PPP-Shells für dynamische IP-Adressen</title>
<indexterm><primary>PPP Shells</primary></indexterm>
<para>Erzeugen Sie eine Datei mit dem Namen
<filename>/etc/ppp/ppp-shell</filename>, die Folgendes
enthält:</para>
<programlisting>#!/bin/sh
IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
CALLEDAS="$IDENT"
TTY=`tty`
if [ x$IDENT = xdialup ]; then
IDENT=`basename $TTY`
fi
echo "PPP for $CALLEDAS on $TTY"
echo "Starting PPP for $IDENT"
exec /usr/sbin/ppp -direct $IDENT</programlisting>
<para>Dieses Skript sollte ausführbar sein. Nun
erzeugen Sie einen symbolischen Link
<filename>ppp-dialup</filename> auf dieses Skript
mit folgendem Befehl:</para>
<screen>&prompt.root; <userinput>ln -s ppp-shell /etc/ppp/ppp-dialup</userinput></screen>
<para>Sie sollten dieses Skript als
<emphasis>Shell</emphasis> für alle Benutzer von
Einwählverbindungen verwenden. Dies ist ein Beispiel
aus der Datei <filename>/etc/passwd</filename>
für einen Benutzer namens <username>pchilds</username>,
der PPP für Einwählverbindungen verwenden kann
(Denken Sie daran, die Passwortdatei nicht direkt zu
editieren, sondern dafür &man.vipw.8; zu
verwenden).</para>
<programlisting>pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup</programlisting>
<para>Erstellen Sie ein Verzeichnis <filename
class="directory">/home/ppp</filename>, das von allen Benutzern
gelesen werden kann und die folgenden leeren Dateien
enthält:</para>
<screen>-r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin
-r--r--r-- 1 root wheel 0 May 27 02:22 .rhosts</screen>
<para>Dies verhindert, dass <filename>/etc/motd</filename>
angezeigt wird.</para>
</sect4>
<sect4>
<title>PPP-Shells für statische IP-Adressen</title>
<indexterm><primary>PPP Shells</primary></indexterm>
<para>Erstellen Sie die Datei <filename>ppp-shell</filename>
wie oben oben dargestellt. Erzeugen Sie nun für
jeden Account mit statischer IP-Adresse einen symbolischen
Link auf <filename>ppp-shell</filename>.</para>
<para>Wenn Sie beispielsweise die drei Kunden,
<username>fred</username>, <username>sam</username> und
<username>mary</username> haben, für die Sie
CIDR-/24-Netzwerke routen, schreiben Sie Folgendes:</para>
<screen>&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred</userinput>
&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam</userinput>
&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary</userinput></screen>
<para>Jeder Einwählzugang dieser Kunden sollte den
oben erzeugten symbolischen Link als Shell haben
(<username>mary</username>'s Shell
sollte also <filename>/etc/ppp/ppp-mary</filename> sein).</para>
</sect4>
<sect4>
<title>Einrichten von <filename>ppp.conf</filename> für
dynamische IP-Adressen</title>
<para>Die Datei <filename>/etc/ppp/ppp.conf</filename> sollte in
etwa wie folgt aussehen:</para>
<programlisting>default:
set debug phase lcp chat
set timeout 0
ttyu0:
set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
enable proxy
ttyu1:
set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
enable proxy</programlisting>
<note>
<para>Die Einrückungen sind wichtig.</para>
</note>
<para>Der Abschnitt <literal>default:</literal> wird für
jede Sitzung geladen. Erstellen Sie für jede
Einwählverbindung, die Sie in der Datei
<filename>/etc/ttys</filename> ermöglicht haben, einen
Eintrag, wie oben für <literal>ttyu0:</literal> gezeigt.
Jede Verbindung sollte eine eigene IP-Adresse aus dem Pool
der Adressen bekommen, die sie für diese Benutzergruppe
reserviert haben.</para>
</sect4>
<sect4>
<title>Einrichten von <filename>ppp.conf</filename> für
statische IP-Adressen</title>
<para>Zu dem bisher dargestellten Inhalt der Beispieldatei
<filename>/usr/share/examples/ppp/ppp.conf</filename> sollten
Sie einen Abschnitt für jeden Benutzer mit statisch
zugewiesener IP-Adresse hinzufügen. Wir werden nun
unser Beispiel mit den
Accounts <username>fred</username>, <username>sam</username> und
<username>mary</username> weiterführen.</para>
<programlisting>fred:
set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255
sam:
set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255
mary:
set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255</programlisting>
<para>Die Datei <filename>/etc/ppp/ppp.linkup</filename> sollte,
falls erforderlich, ebenfalls Routinginformationen für
jeden Benutzer mit statischer IP-Adresse enthalten. Die unten
dargestellte Zeile würde dem Netzwerk <hostid
role="ipaddr">203.14.101.0/24</hostid> eine Route über die
PPP-Verbindung des Client hinzufügen.</para>
<programlisting>fred:
add 203.14.101.0 netmask 255.255.255.0 HISADDR
sam:
add 203.14.102.0 netmask 255.255.255.0 HISADDR
mary:
add 203.14.103.0 netmask 255.255.255.0 HISADDR</programlisting>
</sect4>
<sect4 id="userppp-mgetty">
<title><command>mgetty</command> und AutoPPP</title>
<indexterm>
<primary><command>mgetty</command></primary>
</indexterm>
<indexterm><primary>AutoPPP</primary></indexterm>
<indexterm><primary>LCP</primary></indexterm>
<para>In der Voreinstellung wird <command>mgetty</command>
mit der Option <literal>AUTO_PPP</literal> konfiguriert
und kompiliert. Dadurch kann <command>mgetty</command>
die LCP Phase von PPP-Verbindungen
erkennen und automatisch eine ppp-Shell starten.
Da hierbei jedoch die Login/Passwort-Sequenz nicht
durchlaufen wird, ist es notwendig, Benutzer durch PAP
oder CHAP zu authentifizieren.</para>
<para>In diesem Abschnitt wird davon ausgegangen, dass der
Benutzer den Port <filename
role="package">comms/mgetty+sendfax</filename> auf seinem
System kompiliert und installiert hat.</para>
<para>Stellen Sie sicher, dass die Datei
<filename>/usr/local/etc/mgetty+sendfax/login.config</filename>
Folgendes enthält:</para>
<programlisting>/AutoPPP/ - - /etc/ppp/ppp-pap-dialup</programlisting>
<para>Hierdurch wird <command>mgetty</command> angewiesen,
das Skript <filename>ppp-pap-dialup</filename> für
die erkannten PPP-Verbindungen auszuführen.</para>
<para>Erstellen Sie nun die Datei
<filename>/etc/ppp/ppp-pap-dialup</filename> mit folgendem
Inhalt (die Datei sollte ausführbar sein):</para>
<programlisting>#!/bin/sh
exec /usr/sbin/ppp -direct pap$IDENT</programlisting>
<para>Erstellen Sie bitte für jede Einwählverbindung,
die Sie in <filename>/etc/ttys</filename> ermöglicht haben,
einen korrespondierenden Eintrag in der Datei
<filename>/etc/ppp/ppp.conf</filename>. Diese
Einträge können problemlos, mit den Definitionen
die wir weiter oben gemacht haben, koexistieren.</para>
<programlisting>pap:
enable pap
set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
enable proxy</programlisting>
<para>Jeder Benutzer, der sich auf diese Weise anmeldet,
benötigt einen Benutzernamen und ein Passwort in der Datei
<filename>/etc/ppp/ppp.secret</filename>. Sie haben auch die
Möglichkeit, Benutzer mit Hilfe von PAP zu authentifizieren,
indem Sie der Datei <filename>/etc/passwd</filename> folgende
Option hinzufügen:</para>
<programlisting>enable passwdauth</programlisting>
<para>Wenn Sie bestimmten Benutzern eine statische IP-Adresse
zuweisen möchten, können Sie diese als drittes
Argument in der Datei
<filename>/etc/ppp/ppp.secret</filename> angeben. In
<filename>/usr/share/examples/ppp/ppp.secret.sample</filename>
finden Sie hierfür Beispiele.</para>
</sect4>
<sect4>
<title>MS-Erweiterungen</title>
<indexterm><primary>DNS</primary></indexterm>
<indexterm><primary>NetBIOS</primary></indexterm>
<indexterm>
<primary>PPP</primary>
<secondary>Erweiterungen von Microsoft</secondary>
</indexterm>
<para>Es ist möglich PPP so zu konfigurieren, dass bei Bedarf
DNS und NetBIOS Nameserveradressen bereitgestellt werden.</para>
<para>Um diese Erweiterungen für die PPP Version 1.x
zu aktivieren, sollte der entsprechende Abschnitt der Datei
<filename>/etc/ppp/ppp.conf</filename> um folgende Zeilen
ergänzt werden:</para>
<programlisting>enable msext
set ns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5</programlisting>
<para>Für PPP Version 2 und höher:</para>
<programlisting>accept dns
set dns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5</programlisting>
<para>Damit werden den Clients die primären und sekundären
Nameserveradressen sowie ein NetBIOS Nameserver-Host
mitgeteilt.</para>
<para>In Version 2 und höher verwendet PPP die Werte, die
in <filename>/etc/resolv.conf</filename> zu finden sind, wenn
die Zeile <literal>set dns</literal> weggelassen wird.</para>
</sect4>
<sect4 id="userppp-PAPnCHAP">
<title>Authentifizierung durch PAP und CHAP</title>
<indexterm><primary>PAP</primary></indexterm>
<indexterm><primary>CHAP</primary></indexterm>
<para>Einige ISPs haben ihr System so eingerichtet, dass der
Authentifizierungsteil eines Verbindungsaufbaus mit Hilfe von
PAP oder CHAP-Mechanismen durchgeführt wird. Wenn dies bei
Ihnen der Fall sein sollte, wird Ihnen Ihr ISP bei der Verbindung
keinen <prompt>login:</prompt>-Prompt präsentieren,
sondern sofort mit der Aushandlung der PPP-Verbindung
beginnen.</para>
<para>PAP ist nicht so sicher wie CHAP, doch die Sicherheit ist
hierbei normalerweise kein Problem, da Passwörter, obgleich
von PAP im Klartext versandt, lediglich über die
serielle Verbindung verschickt werden. Es gibt für Cracker
wenig Möglichkeiten zu <quote>lauschen</quote>.</para>
<para>Zurückkommend auf die Abschnitte
<link linkend="userppp-staticIP">PPP und statische
IP-Adressen</link> oder <link
linkend="userppp-dynamicIP">PPP und dynamische IP-Adressen</link>
müssen folgende Veränderungen vorgenommen werden:</para>
<programlisting>13 set authname <replaceable>MyUserName</replaceable>
14 set authkey <replaceable>MyPassword</replaceable>
15 set login</programlisting>
<variablelist>
<varlistentry>
<term>Zeile 13:</term>
<listitem>
<para>Diese Zeile legt Ihren PAP/CHAP Benutzernamen fest.
Sie müssen den richtigen Wert für
<replaceable>MyUserName</replaceable> eingeben.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 14:</term>
<listitem>
<indexterm><primary>Passwort</primary></indexterm>
<para>Diese Zeile legt Ihr PAP/CHAP Passwort fest. Sie
müssen den richtigen Wert für
<replaceable>MyPassword</replaceable> eingeben.
Sie können eine zusätzliche Zeile, wie etwa:</para>
<programlisting>16 accept PAP</programlisting>
<para>oder</para>
<programlisting>16 accept CHAP</programlisting>
<para>verwenden, um deutlich zu machen, dass dies
beabsichtigt ist, aber sowohl PAP wie auch CHAP als
standardmäßig akzeptiert werden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Zeile 15:</term>
<listitem>
<para>Ihr ISP wird normalerweise nicht von Ihnen verlangen,
dass Sie sich am Server einloggen, wenn Sie PAP oder CHAP
verwenden. Sie müssen deshalb den String
<quote>set login</quote> deaktivieren.</para>
</listitem>
</varlistentry>
</variablelist>
</sect4>
<sect4>
<title>Veränderung Ihrer <command>ppp</command>
Konfiguration im laufenden Betrieb</title>
<para>Es ist möglich, dem Programm <command>ppp</command>
Befehle zu erteilen, während es im Hintergrund läuft.
Dazu ist jedoch die Einrichtung eines passenden Diagnose-Ports
erforderlich. Ergänzen Sie hierzu Ihre Konfigurationsdatei
um folgende Zeile:</para>
<programlisting>set server /var/run/ppp-tun<replaceable>%d</replaceable> DiagnosticPassword 0177</programlisting>
<para>Damit wird PPP angewiesen, auf den angegebenen
UNIX-Domainsocket zu hören und Clients nach dem angegebenen
Passwort zu fragen, bevor der Zugang Gewährt wird. Das
<literal>%d</literal> wird durch die Nummer des benutzten
<devicename>tun</devicename>-Devices ersetzt.</para>
<para>Wenn ein Socket eingerichtet ist, kann das Programm
&man.pppctl.8; in Skripten verwendet werden, mit denen in das
laufende Programm eingegriffen wird.</para>
</sect4>
</sect3>
<sect3 id="userppp-nat">
<title>Interne NAT von PPP benutzen</title>
<indexterm>
<primary>PPP</primary>
<secondary>NAT</secondary>
</indexterm>
<para>PPP kann Network Address Translation (NAT) ohne Hilfe des
Kernels durchführen. Wenn Sie diese Funktion benutzen
wollen, fügen Sie die folgende Zeile in
<filename>/etc/ppp/ppp.conf</filename> ein:</para>
<programlisting>nat enable yes</programlisting>
<para>Sie können NAT mit der Option <option>-nat</option>
auf der Kommandozeile von PPP aktivieren. Weiterhin kann
NAT in <filename>/etc/rc.conf</filename> mit der Variablen
<varname>ppp_nat</varname> aktiviert werden. Dies ist auch die
Voreinstellung.</para>
<para>Die nachstehende <filename>/etc/ppp/ppp.conf</filename>
benutzt NAT für bestimmte eingehende Verbindungen:</para>
<programlisting>nat port tcp 10.0.0.2:ftp ftp
nat port tcp 10.0.0.2:http http</programlisting>
<para>Wenn Sie Verbindungen von außen überhaupt nicht
trauen, benutzen Sie die folgende Zeile:</para>
<programlisting>nat deny_incoming yes</programlisting>
</sect3>
<sect3 id="userppp-final">
<title>Abschließende Systemkonfiguration</title>
<indexterm>
<primary>PPP</primary>
<secondary>Konfiguration</secondary>
</indexterm>
<para>Sie haben <command>ppp</command> nun konfiguriert,
aber bevor PPP eingesetzt werden kann, gibt noch einige
weitere Dinge zu erledigen, die alle die Bearbeitung der
Datei <filename>/etc/rc.conf</filename> erfordern.</para>
<para>Gehen Sie diese Datei von oben nach unten durch, und stellen Sie
als Erstes sicher, dass die Zeile <literal>hostname=</literal>
vorhanden ist:</para>
<programlisting>hostname="foo.example.com"</programlisting>
<para>Wenn Ihnen Ihr ISP eine statische IP-Adresse und einen Namen
zugewiesen hat, ist es wahrscheinlich am besten, wenn Sie diesen
Namen als Hostnamen verwenden.</para>
<para>Schauen Sie nach der Variable
<literal>network_interfaces</literal>. Wenn Sie Ihr System
so konfigurieren möchten, dass bei Bedarf
eine Verbindung zu Ihrem ISP aufgebaut wird, sollten Sie das Device
<devicename>tun0</devicename> zu der Liste hinzufügen oder es
andernfalls entfernen.</para>
<programlisting>network_interfaces="lo0 tun0"
ifconfig_tun0=</programlisting>
<note>
<para>Die Variable <literal>ifconfig_tun0</literal> sollte leer sein
und eine Datei namens <filename>/etc/start_if.tun0</filename> sollte
erstellt werden. Diese Datei sollte die nachfolgende Zeile
enthalten:</para>
<programlisting>ppp -auto mysystem</programlisting>
<para>Dieses Skript startet Ihren ppp-D&aelig;mon im Automatik-Modus.
Es wird bei der Netzwerkkonfiguration ausgeführt.
Wenn Ihr Rechner als Gateway für ein LAN fungiert,
möchten Sie vielleicht auch die Option
<option>-alias</option> verwenden. In der Manual-Seite sind
weitere Einzelheiten hierzu zu finden.</para>
</note>
<para>Stellen Sie sicher, dass der Start eines Routerprogramms
in <filename>/etc/rc.conf</filename> wie folgt deaktiviert
ist:</para>
<programlisting>router_enable="NO"</programlisting>
<indexterm>
<primary><application>routed</application></primary>
</indexterm>
<para>Es ist wichtig, dass der <command>routed</command>
D&aelig;mon nicht gestartet wird da <command>routed</command>
dazu tendiert, die von <command>ppp</command> erstellten
Einträge der Standardroute zu überschreiben.</para>
<para>Es ist außerdem sinnvoll, darauf zu achten, dass die Zeile
<literal>sendmail_flags</literal> nicht die Option <option>-q</option>
enthält, da <command>sendmail</command> sonst ab und zu
die Netzwerkverbindung prüfen wird, was möglicherweise dazu
führt, dass sich Ihr Rechner einwählt. Sie können
hier Folgendes angeben:</para>
<programlisting>sendmail_flags="-bd"</programlisting>
<indexterm>
<primary><application>sendmail</application></primary>
</indexterm>
<para>Der Nachteil dieser Lösung ist, dass Sie
<command>sendmail</command> nach jedem Aufbau einer
ppp-Verbindung auffordern müssen, die Mailwarteschlange
zu überprüfen, indem Sie Folgendes eingeben:</para>
<screen>&prompt.root; <userinput>/usr/sbin/sendmail -q</userinput></screen>
<para>Vielleicht möchten Sie den Befehl <command>!bg</command>
in der Datei <filename>ppp.linkup</filename> verwenden, um dies
zu automatisieren:</para>
<programlisting>1 provider:
2 delete ALL
3 add 0 0 HISADDR
4 !bg sendmail -bd -q30m</programlisting>
<indexterm><primary>SMTP</primary></indexterm>
<para>Wenn Sie dies nicht möchten, ist es möglich,
einen <quote>dfilter</quote> einzusetzen, um SMTP-Verkehr
zu blockieren. Weitere Einzelheiten hierzu finden Sie in den
Beispieldateien.</para>
<para>Das Einzige, was nun noch zu tun bleibt, ist Ihren Rechner neu
zu starten. Nach dem Neustart können Sie entweder:</para>
<screen>&prompt.root; <userinput>ppp</userinput></screen>
<para>und danach <command>dial provider</command> eingeben,
um eine PPP-Sitzung zu starten, oder Sie geben:</para>
<screen>&prompt.root; <userinput>ppp -auto provider</userinput></screen>
<para>ein, um <command>ppp</command> bei Datenverkehr aus Ihrem
Netzwerk heraus, automatisch eine Verbindung herstellen
zu lassen (vorausgesetzt Sie haben kein
<filename>start_if.tun0</filename> Skript erstellt).</para>
</sect3>
<sect3>
<title>Zusammenfassung</title>
<para>Die folgenden Schritte sind nötig, wenn ppp zum ersten Mal
eingerichtet werden soll:</para>
<para>Clientseite:</para>
<procedure>
<step>
<para>Stellen Sie sicher, dass das
<devicename>tun</devicename> Device in den Kernel
eingebaut ist.</para></step>
<step>
<para>Vergewissern Sie sich, dass die Gerätedatei <filename
class="devicefile">tun<replaceable>N</replaceable></filename>
im Verzeichnis <filename
class="directory">/dev</filename> vorhanden ist.</para>
</step>
<step>
<para>Bearbeiten Sie die Datei
<filename>/etc/ppp/ppp.conf</filename>. Das Beispiel
<filename>pmdemand</filename> sollte für die meisten
ISP ausreichen.</para>
</step>
<step>
<para>Wenn Sie eine dynamische IP-Adresse haben, erstellen Sie
einen Eintrag in der Datei
<filename>/etc/ppp/ppp.linkup</filename>.</para>
</step>
<step>
<para>Aktualisieren Sie die Datei
<filename>/etc/rc.conf</filename>.</para>
</step>
<step>
<para>Erstellen Sie das Skript <filename>start_if.tun0</filename>,
wenn Sie einen bedarfgesteuerten Einwahlprozess
(<foreignphrase>demand dialing</foreignphrase>)
benötigen.</para>
</step>
</procedure>
<para>Serverseite:</para>
<procedure>
<step>
<para>Stellen Sie sicher, dass das
<devicename>tun</devicename> Device in den Kernel
eingebaut ist.</para>
</step>
<step>
<para>Vergewissern Sie sich, dass die Gerätedatei
<filename>tun<replaceable>N</replaceable></filename>
im Verzeichnis <filename>/dev</filename> vorhanden ist</para>
</step>
<step>
<para>Erstellen Sie einen Eintrag in der Datei
<filename>/etc/passwd</filename>
(verwenden Sie dazu das Programm &man.vipw.8;).</para>
</step>
<step>
<para>Erstellen Sie ein Profil im Heimatverzeichnis des
Benutzers, das
<command>ppp -direct direct-server</command> o.Ä.
ausführt.</para>
</step>
<step>
<para>Bearbeiten Sie die Datei
<filename>/etc/ppp/ppp.conf</filename>. Das Beispiel
<filename>direct-server</filename> sollte ausreichen.</para>
</step>
<step>
<para>Erzeugen Sie einen Eintrag in
<filename>/etc/ppp/ppp.linkup</filename>.</para>
</step>
<step>
<para>Aktualisieren Sie die Datei
<filename>/etc/rc.conf</filename>.</para>
</step>
</procedure>
</sect3>
</sect2>
</sect1>
<sect1 id="ppp">
<sect1info>
<authorgroup>
<author>
<firstname>Gennady B.</firstname>
<surname>Sorokopud</surname>
<contrib>Teile wurden ursprünglich beigetragen von </contrib>
</author>
<author>
<firstname>Robert</firstname>
<surname>Huff</surname>
</author>
</authorgroup>
</sect1info>
<title>Kernel-PPP</title>
<warning>
<para>Der folgende Abschnitt ist ausschließlich
für &os;&nbsp;7.X relevant und gültig.</para>
</warning>
<sect2>
<title>Einrichtung von Kernel-PPP</title>
<indexterm>
<primary>PPP</primary>
<secondary>Kernel-PPP</secondary>
</indexterm>
<para>Bevor Sie PPP auf Ihrem Computer einrichten, sollten Sie
dafür sorgen, dass <command>pppd</command> im Verzeichnis <filename
class="directory">/usr/sbin</filename> vorhanden ist und <filename
class="directory">/etc/ppp</filename> existiert.</para>
<para><command>pppd</command> kann auf zweierlei Weise arbeiten:</para>
<orderedlist>
<listitem>
<para>Als <quote>Client</quote> &ndash; Sie möchten
Ihren Rechner mit einem Netz verbinden, indem Sie eine
serielle PPP-Verbindung aufbauen.</para>
</listitem>
<listitem>
<indexterm>
<primary>PPP</primary>
<secondary>Server</secondary>
</indexterm>
<para>Als <quote>Server</quote> &ndash; Ihr Rechner ist in
ein Netzwerk eingebunden und stellt die PPP-Verbindung
für andere Rechner im Netzwerk her.</para>
</listitem>
</orderedlist>
<para>In beiden Fällen werden Sie eine Datei mit den
benötigten Optionen erstellen müssen
(<filename>/etc/ppp/options</filename> oder,
wenn mehr als ein Benutzer PPP verwendet,
<filename>~/.ppprc</filename>).</para>
<para>Sie benötigen außerdem eine Software
(vorzugsweise <filename role="package">comms/kermit</filename>), mit der
Sie seriell per Modem wählen und eine Verbindung zu dem
entfernten Host aufbauen können.</para>
</sect2>
<sect2>
<sect2info>
<authorgroup>
<author>
<firstname>Trev</firstname>
<surname>Roydhouse</surname>
<contrib>Basierend auf Informationen von </contrib>
<!-- Trev.Roydhouse@f401.n711.z3.fidonet.org -->
</author>
</authorgroup>
</sect2info>
<title>Verwendung von <command>pppd</command> als Client</title>
<indexterm>
<primary>PPP</primary>
<secondary>Client</secondary>
</indexterm>
<indexterm><primary>Cisco</primary></indexterm>
<para>Die folgende Datei <filename>/etc/ppp/options</filename>
kann für einen Verbindungsaufbau mit PPP zu einem Cisco
Terminalserver verwendet werden.</para>
<programlisting>crtscts # enable hardware flow control
modem # modem control line
noipdefault # remote PPP server must supply your IP address
# if the remote host does not send your IP during IPCP
# negotiation, remove this option
passive # wait for LCP packets
domain ppp.foo.com # put your domain name here
:<replaceable>remote_ip</replaceable> # put the IP of remote PPP host here
# it will be used to route packets via PPP link
# if you didn't specified the noipdefault option
# change this line to <replaceable>local_ip</replaceable>:<replaceable>remote_ip</replaceable>
defaultroute # put this if you want that PPP server will be your
# default router</programlisting>
<para>Um eine Verbindung herzustellen, sollten Sie:</para>
<indexterm><primary>Kermit</primary></indexterm>
<indexterm><primary>Modem</primary></indexterm>
<procedure>
<step>
<para>Mit <application>Kermit</application> (oder einem
anderen Modemprogramm) den entfernten Host anwählen
und Ihren Benutzernamen sowie Ihr Passwort (oder was
sonst nötig ist, um PPP auf dem entfernten Host
zu aktivieren) eingeben.</para>
</step>
<step>
<para><application>Kermit</application> beenden
(ohne die Verbindung abzubrechen).</para>
</step>
<step>
<para>Folgendes eingeben:</para>
<screen>&prompt.root; <userinput>/usr/sbin/pppd <replaceable>/dev/tty01</replaceable> <replaceable>19200</replaceable></userinput></screen>
<para>Achten Sie darauf, dass sie eine geeignete Geschwindigkeit
wählen und das richtige Device verwenden.</para>
</step>
</procedure>
<para>Nun ist Ihr Computer mit Hilfe von PPP verbunden. Wenn
die Verbindung nicht funktionieren sollte, können Sie
die Option <option>debug</option> in die Datei
<filename>/etc/ppp/options</filename> eintragen und die Ausgaben
auf der Konsole beobachten, um die Fehler zu finden.</para>
<para>Das folgende Skript <filename>/etc/ppp/pppup</filename>
führt alle 3 Schritte automatisch aus:</para>
<programlisting>#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.dial
pppd /dev/tty01 19200</programlisting>
<indexterm><primary>Kermit</primary></indexterm>
<para><filename>/etc/ppp/kermit.dial</filename> ist
ein <application>Kermit</application>-Skript
das den Einwählvorgang und alle notwendigen Autorisationen auf
dem entfernten Host durchführt (ein Beispiel für ein
solches Skript ist im Anhang zu diesem Dokument zu finden).</para>
<para>Verwenden Sie das folgende Skript
<filename>/etc/ppp/pppdown</filename>, um die PPP-Verbindung
abzubrechen:</para>
<programlisting>#!/bin/sh
pid=`pgrep pppd`
if [ X${pid} != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill -TERM ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
/sbin/ifconfig ppp0 down
/sbin/ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.hup
/etc/ppp/ppptest</programlisting>
<para>Prüfen Sie, ob <application>pppd</application> immer
noch läuft, indem Sie
<filename>/usr/etc/ppp/ppptest</filename> ausführen.
Dieses Skript sollte folgendermaßen aussehen:</para>
<programlisting>#!/bin/sh
pid=`pgrep pppd`
if [ X${pid} != "X" ] ; then
echo 'pppd running: PID=' ${pid-NONE}
else
echo 'No pppd running.'
fi
set -x
netstat -n -I ppp0
ifconfig ppp0</programlisting>
<para>Um die Modemverbindung abzubrechen, können Sie das Skript
<filename>/etc/ppp/kermit.hup</filename> verwenden, das Folgendes
enthalten sollte:</para>
<programlisting>set line /dev/tty01 ; put your modem device here
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
pau 1
out +++
inp 5 OK
out ATH0\13
echo \13
exit</programlisting>
<para>Hier ist eine alternative Methode, bei der <command>chat</command>
an Stelle von <application>Kermit</application> eingesetzt wird:</para>
<para>Die folgenden beiden Dateien reichen aus, um eine
Verbindung über <command>pppd</command> herzustellen.</para>
<para><filename>/etc/ppp/options</filename>:</para>
<programlisting>/dev/cuad1 115200
crtscts # enable hardware flow control
modem # modem control line
connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
noipdefault # remote PPP serve must supply your IP address
# if the remote host doesn't send your IP during
# IPCP negotiation, remove this option
passive # wait for LCP packets
domain &lt;your.domain&gt; # put your domain name here
: # put the IP of remote PPP host here
# it will be used to route packets via PPP link
# if you didn't specified the noipdefault option
# change this line to <replaceable>local_ip</replaceable>:<replaceable>remote_ip</replaceable>;
defaultroute # put this if you want that PPP server will be
# your default router</programlisting>
<para><filename>/etc/ppp/login.chat.script</filename>:</para>
<note>
<para>Die folgenden Angaben sollten in einer Zeile stehen.</para>
</note>
<programlisting>ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<replaceable>phone.number</replaceable>
CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <replaceable>login-id</replaceable>
TIMEOUT 5 sword: <replaceable>password</replaceable></programlisting>
<para>Wenn diese Dateien richtig installiert und modifiziert sind,
müssen Sie <command>pppd</command>, nur noch wie folgt
starten:</para>
<screen>&prompt.root; <userinput>pppd</userinput></screen>
</sect2>
<sect2>
<title>Verwendung von <command>pppd</command> als Server</title>
<para><filename>/etc/ppp/options</filename> sollte etwa Folgendes
enthalten:</para>
<programlisting>crtscts # Hardware flow control
netmask 255.255.255.0 # netmask (not required)
192.114.208.20:192.114.208.165 # IP's of local and remote hosts
# local ip must be different from one
# you assigned to the Ethernet (or other)
# interface on your machine.
# remote IP is IP address that will be
# assigned to the remote machine
domain ppp.foo.com # your domain
passive # wait for LCP
modem # modem line</programlisting>
<para>Das folgende Skript <filename>/etc/ppp/pppserv</filename>
lässt <application>pppd</application> als Server zu arbeiten:</para>
<programlisting>#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
# reset ppp interface
ifconfig ppp0 down
ifconfig ppp0 delete
# enable autoanswer mode
kermit -y /etc/ppp/kermit.ans
# run ppp
pppd /dev/tty01 19200</programlisting>
<para>Verwenden Sie das Skript<filename>/etc/ppp/pppservdown</filename>,
um den Server zu beenden:</para>
<programlisting>#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.noans</programlisting>
<para>Mit dem <application>Kermit</application>-Skript
(<filename>/etc/ppp/kermit.ans</filename>) lässt sich
die Funktion Ihres Modems, automatisch zu antworten, ein- bzw.
ausschalten. Es sollte folgendermaßen aussehen:</para>
<programlisting>set line /dev/tty01
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
pau 1
out +++
inp 5 OK
out ATH0\13
inp 5 OK
echo \13
out ATS0=1\13 ; change this to out ATS0=0\13 if you want to disable
; autoanswer mode
inp 5 OK
echo \13
exit</programlisting>
<para>Ein Skript namens <filename>/etc/ppp/kermit.dial</filename> wird
für die Einwahl und Authentifizierung am entfernten Host verwendet.
Sie müssen es noch an Ihre lokalen Gegebenheiten anpassen.
Geben Sie in diesem Skript Ihren Benutzernamen und Ihr Passwort ein.
In Abhängigkeit von der Reaktion Ihres Modems und des
entfernten Hosts, werden Sie auch noch die <literal>input</literal>
Anweisungen verändern müssen.</para>
<programlisting>;
; put the com line attached to the modem here:
;
set line /dev/tty01
;
; put the modem speed here:
;
set speed 19200
set file type binary ; full 8 bit file xfer
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
set modem hayes
set dial hangup off
set carrier auto ; Then SET CARRIER if necessary,
set dial display on ; Then SET DIAL if necessary,
set input echo on
set input timeout proceed
set input case ignore
def \%x 0 ; login prompt counter
goto slhup
:slcmd ; put the modem in command mode
echo Put the modem in command mode.
clear ; Clear unread characters from input buffer
pause 1
output +++ ; hayes escape sequence
input 1 OK\13\10 ; wait for OK
if success goto slhup
output \13
pause 1
output at\13
input 1 OK\13\10
if fail goto slcmd ; if modem doesn't answer OK, try again
:slhup ; hang up the phone
clear ; Clear unread characters from input buffer
pause 1
echo Hanging up the phone.
output ath0\13 ; hayes command for on hook
input 2 OK\13\10
if fail goto slcmd ; if no OK answer, put modem in command mode
:sldial ; dial the number
pause 1
echo Dialing.
output atdt9,550311\13\10 ; put phone number here
assign \%x 0 ; zero the time counter
:look
clear ; Clear unread characters from input buffer
increment \%x ; Count the seconds
input 1 {CONNECT }
if success goto sllogin
reinput 1 {NO CARRIER\13\10}
if success goto sldial
reinput 1 {NO DIALTONE\13\10}
if success goto slnodial
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if &lt; \%x 60 goto look
else goto slhup
:sllogin ; login
assign \%x 0 ; zero the time counter
pause 1
echo Looking for login prompt.
:slloop
increment \%x ; Count the seconds
clear ; Clear unread characters from input buffer
output \13
;
; put your expected login prompt here:
;
input 1 {Username: }
if success goto sluid
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if &lt; \%x 10 goto slloop ; try 10 times to get a login prompt
else goto slhup ; hang up and start again if 10 failures
:sluid
;
; put your userid here:
;
output ppp-login\13
input 1 {Password: }
;
; put your password here:
;
output ppp-password\13
input 1 {Entering SLIP mode.}
echo
quit
:slnodial
echo \7No dialtone. Check the telephone line!\7
exit 1
; local variables:
; mode: csh
; comment-start: "; "
; comment-start-skip: "; "
; end:</programlisting>
</sect2>
</sect1>
<sect1 id="ppp-troubleshoot">
<sect1info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Beigetragen von </contrib>
</author>
</authorgroup>
</sect1info>
<title>Probleme bei <acronym>PPP</acronym>-Verbindungen</title>
<indexterm>
<primary>PPP</primary>
<secondary>Fehlersuche</secondary>
</indexterm>
<warning>
<para>Mit &os;&nbsp;8.0 wurde der &man.sio.4;-Treiber durch den
Treiber &man.uart.4; ersetzt. Parallel dazu wurden auch die
entsprechenden Gerätedateien für die seriellen Ports
umbenannt:
<filename>/dev/cuad<replaceable>N</replaceable></filename> wurde
zu <filename>/dev/cuau<replaceable>N</replaceable></filename>,
<filename>/dev/ttyd<replaceable>N</replaceable></filename> zu
<filename>/dev/ttyu<replaceable>N</replaceable></filename>.
Verwenden Sie noch &os;&nbsp;7.X, müssen Sie dies beim
Lesen der folgenden Abschnitte berücksichtigen.</para>
</warning>
<para>Dieser Abschnitt behandelt Probleme, die auftauchen
können, wenn PPP über ein Modem verwendet wird.
Sie müssen beispielsweise genau die Eingabeaufforderung
des Systems kennen, in das Sie sich einwählen.
Einige <acronym>ISP</acronym>s verwenden <literal>ssword</literal>
andere verwenden <literal>password</literal>; wenn
das Einwahlskript falsch ist, scheitert die Anmeldung.
Üblicherweise suchen Sie nach Fehlern der PPP-Verbindung
indem Sie sich manuell verbinden. Wie das genau geht,
wird im Folgenden gezeigt.</para>
<sect2>
<title>Gerätedateien überprüfen</title>
<para>Wenn Sie einen eigenen Kernel verwenden, stellen Sie sicher, dass
die folgende Zeile in der Kernelkonfigurationsdatei vorhanden
ist:</para>
<programlisting>device uart</programlisting>
<para>Das <devicename>uart</devicename>-Gerät ist bereits
im <literal>GENERIC</literal>-Kernel vorhanden, deshalb sind in
diesem Fall keine zusätzlichen Schritte vonnöten.
Kontrollieren Sie die Ausgabe von <command>dmesg</command>:</para>
<screen>&prompt.root; <userinput>dmesg | grep uart</userinput></screen>
<para>In der Ausgabe sollten die entsprechenden
<devicename>uart</devicename>-Geräte, beispielsweise
<devicename>uart1</devicename>
(<devicename>COM2</devicename>), angezeigt werden.
Wird ein passendes Gerät angezeigt, brauchen Sie
keinen neuen Kernel zu erstellen. Wenn Ihr Modem an
<devicename>uart1</devicename>
angeschlossen ist (in DOS ist dieser Anschluss als
<devicename>COM2</devicename> bekannt), ist <filename
class="devicefile">/dev/cuau1</filename> die dazugehörende
Gerätedatei.</para>
</sect2>
<sect2>
<title>Manuelle Verbindungen</title>
<para>Ein Verbindungsaufbau zum Internet durch manuelle Steuerung
von <command>ppp</command> geht schnell, ist einfach und
stellt einen guten Weg dar, eine Verbindung auf Fehler hin
zu überprüfen oder einfach Informationen darüber
zu sammeln, wie Ihr <acronym>ISP</acronym> Verbindungen handhabt.
Lassen Sie uns <application>PPP</application> von der
Kommandozeile aus starten. Beachten Sie, dass in allen
Beispielen <emphasis>example</emphasis>
der Hostname der Maschine ist, auf der
<application>PPP</application> läuft. Sie starten
<command>ppp</command>, indem Sie einfach <command>ppp</command>
eingeben:</para>
<screen>&prompt.root; <userinput>ppp</userinput></screen>
<para>Wir haben <command>ppp</command> nun gestartet.</para>
<screen>ppp ON example&gt; <userinput>set device <filename class="devicefile">/dev/cuau1</filename></userinput></screen>
<para>Wir geben das Device an, an das unser Modem angeschlossen ist.
In diesem Fall ist es <devicename>cuau1</devicename>.</para>
<screen>ppp ON example&gt; <userinput>set speed 115200</userinput></screen>
<para>Wir geben die Verbindungsgeschwindigkeit an. Im Beispiel
verwenden wir 115200&nbsp;<acronym>kbps</acronym></para>
<screen>ppp ON example&gt; <userinput>enable dns</userinput></screen>
<para>Wir weisen <command>ppp</command> an, unseren
Resolver zu konfigurieren und in der Datei
<filename>/etc/resolv.conf</filename> Einträge für
den Nameserver hinzuzufügen. Falls <command>ppp</command>
unseren Hostnamen nicht bestimmen kann, geben wir diesen
später manuell an.</para>
<screen>ppp ON example&gt; <userinput>term</userinput></screen>
<para>Wir wechseln in den <quote>Terminal</quote>-Modus, um
das Modem manuell kontrollieren zu können.</para>
<programlisting>deflink: Entering terminal mode on <filename class="devicefile">/dev/cuau1</filename>
type '~h' for help</programlisting>
<screen><userinput>at</userinput>
OK
<userinput>atdt<replaceable>123456789</replaceable></userinput></screen>
<para>Sie verwenden <command>at</command> zur Initialisierung
Ihres Modems und dann <command>atdt</command> sowie die Nummer Ihres
<acronym>ISP</acronym>, um den Einwählprozess zu starten.</para>
<screen>CONNECT</screen>
<para>Dies ist die Bestätigung, dass eine Verbindung aufgebaut
wurde. Falls wir Verbindungsprobleme bekommen, die nicht
mit der Hardware zusammenhängen, werden wir an dieser
Stelle ansetzen müssen, um eine Lösung zu finden.</para>
<screen>ISP Login:<userinput>myusername</userinput></screen>
<para>Hier werden Sie nach einem Benutzernamen gefragt. Geben Sie
am Prompt den Namen ein, den Ihnen Ihr <acronym>ISP</acronym>
zur Verfügung gestellt hat.</para>
<screen>ISP Pass:<userinput>mypassword</userinput></screen>
<para>An dieser Stelle müssen Sie das Passwort angeben, das
Ihnen von Ihrem <acronym>ISP</acronym> vorgegeben wurde. Das
Passwort wird, analog dem normalen Anmeldevorgang,
nicht angezeigt.</para>
<screen>Shell or PPP:<userinput>ppp</userinput></screen>
<para>Abhängig von Ihrem <acronym>ISP</acronym>, kann es sein,
dass dieser Prompt bei Ihnen gar nicht erscheint. Wir werden
hier gefragt, ob wir eine Shell beim Provider verwenden oder
<command>ppp</command> starten wollen. Weil wir eine
Internetverbindung aufbauen wollen, haben wir uns in diesem
Beispiel für <command>ppp</command> entschieden.</para>
<screen>Ppp ON example&gt;</screen>
<para>Beachten Sie, dass sich in diesem Beispiel das erste
<option>p</option> in einen Großbuchstaben verwandelt hat.
Dies zeigt, dass wir erfolgreich eine Verbindung
zu unserem <acronym>ISP</acronym> hergestellt haben.</para>
<screen>PPp ON example&gt;</screen>
<para>An dieser Stelle haben wir uns erfolgreich bei unserem
<acronym>ISP</acronym> authentifiziert und warten darauf, dass
uns eine <acronym>IP</acronym>-Adresse zugewiesen wird.</para>
<screen>PPP ON example&gt;</screen>
<para>Wir haben uns mit der Gegenstelle auf eine
<acronym>IP</acronym>-Adresse geeinigt und den Verbindungsaufbau
erfolgreich abgeschlossen</para>
<screen>PPP ON example&gt; <userinput>add default HISADDR</userinput></screen>
<para>Hier geben wir unsere Standardroute an. Weil zu diesem
Zeitpunkt unsere einzige Verbindung zu unserer Gegenstelle besteht,
müssen wir dies tun, bevor wir Kontakt zu unserer Umwelt
aufnehmen können. Falls dies aufgrund bestehender Routen
nicht funktionieren sollte, können Sie ein Ausrufungszeichen
<literal>!</literal> vor <option>add</option> setzen.
Sie können diese Standardroute aber auch vor dem
eigentlichen Verbindungsaufbau angeben und
<application>PPP</application> wird entsprechend eine neue Route
aushandeln.</para>
<para>Wenn alles gut ging, sollten wir nun eine aktive
Internetverbindung haben, die wir mit
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>z</keycap></keycombo>
in den Hintergrund schicken können
Wenn sie feststellen, dass <command>PPP</command> wieder zu
<command>ppp</command> wird, ist die Verbindung abgebrochen.
Es ist gut dies zu wissen, weil dadurch der Verbindungsstatus
angezeigt wird. Große <literal>P</literal>s zeigen an,
dass wir eine Verbindung zum <acronym>ISP</acronym> haben und
kleine <literal>p</literal>s zeigen an, dass
wir aus irgendeinem Grund die Verbindung verloren haben.
<command>ppp</command> hat nur diese beiden Zustände.</para>
<sect3>
<title>Fehlersuche</title>
<para>Wenn sie einen Direktanschluss haben und keine Verbindung
aufbauen können, schalten Sie die Hardware-Flusssteuerung
<acronym>CTS/RTS</acronym> aus, indem Sie die Option
<option>set ctsrts off</option> verwenden. Dies ist
zumeist dann der Fall, wenn Sie mit einem
<application>PPP</application>-fähigen Terminalserver
verbunden sind. Hier bleibt <application>PPP</application>
bei dem Versuch hängen, Daten über Ihre
Nachrichtenverbindung zu schicken, weil auf ein
<acronym>CTS</acronym>-Signal (Clear-to-Send) gewartet
wird, das nie kommt. Wenn Sie diese Option jedoch gebrauchen,
sollten Sie auch die Option <option>set accmap</option>
verwenden, die erforderlich sein kann, um bestimmte Hardware
zu kontrollieren, die auf die Übertragung bestimmter
Zeichen zwischen den Kommunikations-Endpunkten (zumeist
XON/XOFF) angewiesen ist. Die Manual-Seite &man.ppp.8;
bietet mehr Informationen zu dieser Option und ihrer
Verwendung.</para>
<para>Wenn Sie ein älteres Modem haben, benötigen Sie
vielleicht die Option <option>set parity even</option>.
Standardmäßig wird keine Parität vorausgesetzt,
sie ist aber für die Fehlerprüfung bei älteren
Modems und bei bestimmten <acronym>ISP</acronym>s erforderlich.
Sie könnten diese Option für den
<acronym>ISP</acronym> Compuserve benötigen.</para>
<para><application>PPP</application> kehrt möglicherweise
nicht in den Befehlsmodus zurück, was normalerweise
auf einen Fehler bei der Aushandlung hinweist, wobei der
<acronym>ISP</acronym> wartet, dass Ihre Seite den
Aushandlungsprozess beginnt. Die Option <command>~p</command>
erzwingt in diesem Fall den Beginn des
Aushandlungsprozesses.</para>
<para>Wenn Sie nie einen Login-Prompt erhalten, müssen
Sie statt des im Beispiel gezeigten UNIX-Stils höchst
wahrscheinlich <acronym>PAP</acronym> oder
<acronym>CHAP</acronym> für die Authentifizierung
verwenden. Um <acronym>PAP</acronym> oder
<acronym>CHAP</acronym> zu verwenden, ergänzen Sie
<application>PPP</application> einfach um folgende Optionen,
bevor Sie in den Terminalmodus wechseln:</para>
<screen>ppp ON example&gt; <userinput>set authname <replaceable>myusername</replaceable></userinput></screen>
<para>Hierbei sollte <replaceable>myusername</replaceable>
durch den Benutzernamen ersetzt werden, den Sie von Ihrem
<acronym>ISP</acronym> bekommen haben.</para>
<screen>ppp ON example&gt; <userinput>set authkey <replaceable>mypassword</replaceable></userinput></screen>
<para><replaceable>mypassword</replaceable> sollten Sie
durch das Passwort ersetzen, das Ihnen Ihr <acronym>ISP</acronym>
gegeben hat.</para>
<para>Wenn die Verbindung aufgebaut wird, Sie aber keine Rechner
unter ihrem Domänen-Namen erreichen können, versuchen
Sie, einen Rechner mit &man.ping.8; und seiner
<acronym>IP</acronym>-Adresse zu erreichen. Wenn 100% der Pakete
verloren gehen, ist es sehr wahrscheinlich, dass Ihnen
keine Standardroute zugewiesen wurde. Überprüfen Sie,
ob während des Verbindungsaufbaus die Option
<option>add default HISADDR</option> gesetzt war. Wenn Sie zu
einer entfernten <acronym>IP</acronym>-Adresse eine Verbindung
aufbauen können, ist es möglich, dass die
Adresse eines Nameservers nicht in die Datei
<filename>/etc/resolv.conf</filename> eingetragen
wurde. Diese Datei sollte folgendermaßen aussehen:</para>
<programlisting>domain <replaceable>example.com</replaceable>
nameserver <replaceable>x.x.x.x</replaceable>
nameserver <replaceable>y.y.y.y</replaceable></programlisting>
<para> Dabei sollten <replaceable>x.x.x.x</replaceable> und
<replaceable>y.y.y.y</replaceable> durch die
<acronym>IP</acronym>-Adressen der DNS-Server Ihres
<acronym>ISP</acronym>s ersetzt werden. Diese Information
ist Ihnen bei Vertragsabschluss mitgeteilt worden. Wenn
nicht, sollte ein Anruf bei Ihrem <acronym>ISP</acronym>
Abhilfe schaffen.</para>
<para>Mit &man.syslog.3; können Sie Ihre
<application>PPP</application>-Verbindung protokollieren.
Fügen Sie einfach die folgende Zeile in
<filename>/etc/syslog.conf</filename> ein:</para>
<programlisting>!ppp
*.* /var/log/ppp.log</programlisting>
<para>In den meisten Fällen existiert diese
Funktionalität bereits.</para>
</sect3>
</sect2>
</sect1>
<sect1 id="pppoe">
<sect1info>
<authorgroup>
<author>
<firstname>Jim</firstname>
<surname>Mock</surname>
<contrib>Beigetragen (durch http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html) von </contrib>
</author>
</authorgroup>
<!-- 10 Jan 2000 -->
</sect1info>
<title>PPP over Ethernet (PPPoE)</title>
<indexterm>
<primary>PPP</primary>
<secondary>over Ethernet</secondary>
</indexterm>
<indexterm>
<primary>PPPoE</primary>
<see>PPP, over Ethernet</see>
</indexterm>
<para>Dieser Abschnitt beschreibt, wie Sie PPP over Ethernet
(<acronym>PPPoE</acronym>) einrichten.</para>
<sect2>
<title>Konfiguration des Kernels</title>
<para>Eine besondere Kernelkonfiguration ist für PPPoE nicht
mehr erforderlich. Sofern die notwendige NetGraph-Unterstützung
nicht in den Kernel eingebaut wurde, wird diese von
<application>ppp</application> dynamisch geladen.</para>
</sect2>
<sect2>
<title>Einrichtung von <filename>ppp.conf</filename></title>
<para>Dies hier ist ein Beispiel einer funktionierenden
<filename>ppp.conf</filename>:</para>
<programlisting>default:
set log Phase tun command # you can add more detailed logging if you wish
set ifaddr 10.0.0.1/0 10.0.0.2/0
name_of_service_provider:
set device PPPoE:<replaceable>xl1</replaceable> # replace xl1 with your Ethernet device
set authname YOURLOGINNAME
set authkey YOURPASSWORD
set dial
set login
add default HISADDR</programlisting>
</sect2>
<sect2>
<title><application>ppp</application> ausführen</title>
<para>Als <username>root</username>, geben Sie ein:</para>
<screen>&prompt.root; <userinput>ppp -ddial name_of_service_provider</userinput></screen>
</sect2>
<sect2>
<title><application>ppp</application> beim Systemstart
ausführen</title>
<para>Fügen Sie Folgendes in Ihre Datei
<filename>/etc/rc.conf</filename> ein:</para>
<programlisting>ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES" # if you want to enable nat for your local network, otherwise NO
ppp_profile="name_of_service_provider"</programlisting>
</sect2>
<sect2>
<title>Verwendung einer PPPoE-Dienstbezeichnung (service tag)</title>
<para>Manchmal kann es notwendig sein, eine Dienstbezeichnung
(<foreignphrase>service tag</foreignphrase>) zu verwenden, um
eine Verbindung aufzubauen.
Dienstbezeichnungen werden eingesetzt, um zwischen verschiedenen
PPPoE-Servern unterscheiden zu können, die einem
bestehenden Netzwerk zugeteilt sind.</para>
<para>Die erforderlichen Dienstbezeichnungen sollten in der
Dokumentation, zu finden sein, die Ihnen Ihr ISP zur Verfügung
gestellt hat. Wenn Sie diese Informationen dort nicht finden,
fragen Sie beim technischen Kundendienst Ihres ISP danach.</para>
<para>Als letzte Möglichkeit, bleibt die Methode, die von
dem Programm <ulink url="http://www.roaringpenguin.com/pppoe/">Roaring Penguin PPPoE</ulink>
vorgeschlagen wird, das in der <link
linkend="ports">Ports-Sammlung</link> zu finden ist. Bedenken
Sie aber, dass dadurch Daten Ihres Modems gelöscht werden
können, so dass es nicht mehr benutzt werden kann.
Überlegen Sie also genau, ob Sie dies machen wollen.
Installieren Sie einfach das Programm, das Ihnen Ihr Provider
zusammen mit dem Modem geliefert hat. Gehen Sie dann in das
Menü <guimenu>System</guimenu> dieses Programms. Der Name
Ihres Profils, sollte in der Liste aufgeführt sein.
Normalerweise ist dies <emphasis>ISP</emphasis>.</para>
<para>Der Name des Profils (<foreignphrase>service tag</foreignphrase>)
wird im Eintrag für
die PPPoE-Konfiguration in der Datei <filename>ppp.conf</filename>
verwendet, als der Teil des Befehls
<command>set device</command> (die manpage &man.ppp.8;
enthält Einzelheiten hierzu), der den Provider angibt.
Dieser Eintrag sollte folgendermaßen aussehen:</para>
<programlisting>set device PPPoE:<replaceable>xl1</replaceable>:<replaceable>ISP</replaceable></programlisting>
<para>Vergessen Sie nicht, statt <replaceable>xl1</replaceable>
das richtige Device Ihrer Netzwerkkarte anzugeben.</para>
<para>Denken sie auch daran, <replaceable>ISP</replaceable>
durch das Profil, das Sie oben gefunden haben zu ersetzen.</para>
<para>Weitere Informationen bieten:</para>
<itemizedlist>
<listitem>
<para><ulink url="http://renaud.waldura.com/doc/freebsd/pppoe/">Cheaper Broadband with FreeBSD on
DSL</ulink> von Renaud Waldura.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2 id="ppp-3com">
<title>PPPoE mit einem &tm.3com;
<trademark class="registered">HomeConnect</trademark>
ADSL Modem Dual Link</title>
<para>Dieses Modem folgt nicht dem <ulink
url="http://www.faqs.org/rfcs/rfc2516.html">RFC 2516</ulink>
(<emphasis>A Method for transmitting PPP over Ethernet
(PPPoE)</emphasis>, verfasst von L. Mamakos, K. Lidl, J. Evarts,
D. Carrel, D. Simone, und R. Wheeler). Stattdessen wurden andere
Pakettyp-Codes für die Ethernet Frames verwendet.
Bitte beschweren Sie sich unter <ulink
url="http://www.3com.com/">3Com</ulink>, wenn Sie
der Ansicht sind, dass dieses Modem die PPPoE-Spezifikation einhalten
sollte.</para>
<para>Um FreeBSD in die Lage zu versetzen, mit diesem Gerät zu
kommunizieren, muss ein sysctl Befehl angegeben werden. Dies kann
beim Systemstart automatisch geschehen, indem die Datei
<filename>/etc/sysctl.conf</filename> angepasst wird:</para>
<programlisting>net.graph.nonstandard_pppoe=1</programlisting>
<para>oder, wenn der Befehl unmittelbar wirksam werden soll,
durch:</para>
<screen>&prompt.root; <userinput>sysctl net.graph.nonstandard_pppoe=1</userinput></screen>
<para>Da hiermit eine systemweit gültige Einstellung vorgenommen
wird, ist es nicht möglich, gleichzeitig mit einem normalen
PPPoE-Client oder Server und einem &tm.3com;
<trademark class="registered">HomeConnect</trademark> ADSL Modem
zu kommunizieren.</para>
</sect2>
</sect1>
<sect1 id="pppoa">
<title><application>PPP</application> over ATM (PPPoA)</title>
<indexterm>
<primary>PPP</primary>
<secondary>over ATM</secondary>
</indexterm>
<indexterm>
<primary>PPPoA</primary>
<see>PPP, over ATM</see>
</indexterm>
<para>Nachfolgend wird beschrieben, wie PPP over ATM (PPPoA)
eingerichtet wird. PPPoA ist vor allem unter europäischen
DSL-Providern populär.</para>
<sect2>
<title>Der Einsatz von PPPoA mit dem Alcatel &speedtouch; USB</title>
<para>PPPoA-Unterstützung für dieses Gerät ist
unter FreeBSD als Port verfügbar, da die Firmware unter <ulink
url="http://www.speedtouchdsl.com/disclaimer_lx.htm">Alcatels
Lizenzvereinbarung</ulink> vertrieben wird und deshalb nicht
mit dem FreeBSD-Basissystem frei verteilt werden kann.</para>
<para>Um die Software zu installieren, verwenden Sie einfach die <link
linkend="ports">Ports-Sammlung</link>. Installieren Sie den Port
<filename role="package">net/pppoa</filename> und folgen Sie den dabei
angegebenen Instruktionen.</para>
<para>Für den ordnungsgemäßen Betrieb muss
das Alcatel &speedtouch; USB, wie viele USB-Geräte,
Firmware auf den Gastrechner laden. FreeBSD kann die
Firmware automatisch laden, wenn das Gerät mit
dem USB-Anschluss verbunden wird. Dazu fügen Sie
als Benutzer <username>root</username> die nachstehenden
Zeilen in <filename>/etc/usbd.conf</filename> ein:</para>
<programlisting>device "Alcatel SpeedTouch USB"
devname "ugen[0-9]+"
vendor 0x06b9
product 0x4061
attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"</programlisting>
<para>Den USB-D&aelig;mon aktivieren Sie mit der folgenden
Zeile in <filename>/etc/rc.conf</filename>:</para>
<programlisting>usbd_enable="YES"</programlisting>
<para>Wenn die Verbindung beim Start von
<application>ppp</application> aufgebaut werden soll,
fügen Sie die nachstehenden Zeilen als Benutzer
<username>root</username> in <filename>/etc/rc.conf</filename>
ein:</para>
<programlisting>ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="adsl"</programlisting>
<para>Verwenden Sie bitte diese Einstellungen zusammen mit
der Beispielkonfiguration in <filename>ppp.conf</filename>
des Ports <filename role="package">net/pppoa</filename>.</para>
</sect2>
<sect2>
<title>Die Verwendung von mpd</title>
<para>Sie können <application>mpd</application> verwenden,
um zu einer Reihe von Diensten, insbesondere PPTP-Diensten eine
Verbindung herzustellen. Sie finden
<application>mpd</application> in der Ports-Sammlung unter
<filename role="package">net/mpd</filename>. Viele ADSL Modems,
wie das Alcatel &speedtouch; Home, sind auf einen PPTP-Tunnel
zwischen dem Modem und dem Rechner angewiesen.</para>
<para>Zuerst müssen Sie den Port installieren, um danach
<application>mpd</application> entsprechend Ihren Anforderungen
und den Vorgaben Ihres Providers konfigurieren zu können. Der
Port installiert auch einige
gut dokumentierte Beispielkonfigurationsdateien in <filename
class="directory"><replaceable>PREFIX</replaceable>/etc/mpd/</filename>.
Beachten Sie, dass <replaceable>PREFIX</replaceable> hier das Verzeichnis
angibt, in das Ihre Ports installiert werden. Standardmäßig
ist dies das Verzeichnis <filename
class="directory">/usr/local/</filename>.
Ein kompletter Leitfaden zur Konfiguration von
<application>mpd</application> ist im HTML-Format verfügbar,
sobald der Port installiert ist. Dieser ist in <filename
class="directory"><replaceable>PREFIX</replaceable>/share/doc/mpd/</filename>
zu finden. Hier ist eine Beispielkonfiguration, um mit
<application>mpd</application> eine Verbindung zu einem
ADSL-Dienst aufzubauen. Die Konfiguration ist auf zwei Dateien
verteilt. Zunächst die Datei
<filename>mpd.conf</filename>:</para>
<programlisting>default:
load adsl
adsl:
new -i ng0 adsl adsl
set bundle authname <replaceable>username</replaceable> <co
id="co-mpd-ex-user"/>
set bundle password <replaceable>password</replaceable> <co
id="co-mpd-ex-pass"/>
set bundle disable multilink
set link no pap acfcomp protocomp
set link disable chap
set link accept chap
set link keep-alive 30 10
set ipcp no vjcomp
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set iface route default
set iface disable on-demand
set iface enable proxy-arp
set iface idle 0
open</programlisting>
<calloutlist>
<callout arearefs="co-mpd-ex-user">
<para>Der Benutzername, den Sie zur Authentifizierung bei
Ihrem ISP verwenden.</para>
</callout>
<callout arearefs="co-mpd-ex-pass">
<para>Das Passwort, das Sie zur Authentifizierung bei
Ihrem ISP verwenden.</para>
</callout>
</calloutlist>
<para>Die Datei <filename>mpd.links</filename> enthält
Informationen über die Verbindung(en), die Sie aufbauen
möchten. Eine Beispieldatei <filename>mpd.links</filename>,
die das vorige Beispiel ergänzt, wird unten
angegeben:</para>
<programlisting>adsl:
set link type pptp
set pptp mode active
set pptp enable originate outcall
set pptp self <replaceable>10.0.0.1</replaceable> <co
id="co-mpd-ex-self"/>
set pptp peer <replaceable>10.0.0.138</replaceable> <co
id="co-mpd-ex-peer"/></programlisting>
<calloutlist>
<callout arearefs="co-mpd-ex-self">
<para>Die IP-Adresse des &os;-Rechners von dem aus Sie
<application>mpd</application> verwenden.</para>
</callout>
<callout arearefs="co-mpd-ex-peer">
<para>Die IP-Adresse des ADSL-Modems.
Das Alcatel &speedtouch; Home hat die Adresse
<hostid role="ipaddr">10.0.0.138</hostid> voreingestellt.</para>
</callout>
</calloutlist>
<para>Ein Verbindungsaufbau kann einfach durch Eingabe des folgenden
Befehls als <username>root</username> gestartet werden:</para>
<screen>&prompt.root; <userinput>mpd -b <replaceable>adsl</replaceable></userinput></screen>
<para>Sie können sich den Status der Verbindung durch folgenden Befehl
anzeigen lassen:</para>
<screen>&prompt.user; <userinput>ifconfig <replaceable>ng0</replaceable></userinput>
ng0: flags=88d1&lt;UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST&gt; mtu 1500
inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff</screen>
<para>Die Verwendung von <application>mpd</application> ist der
empfehlenswerteste Weg, um mit &os; eine Verbindung zu
einem ADSL-Dienst aufzubauen.</para>
</sect2>
<sect2>
<title>Die Verwendung von pptpclient</title>
<para>Es ist außerdem möglich, mit FreeBSD eine
Verbindung zu anderen PPPoA-Diensten aufzubauen. Dazu wird
<filename role="package">net/pptpclient</filename> verwendet.</para>
<para>Um mit <filename role="package">net/pptpclient</filename> eine
eine Verbindung zu einem DSL-Dienst aufbauen zu können,
müssen Sie den entsprechenden Port bzw. das Paket installieren
und die Datei <filename>/etc/ppp/ppp.conf</filename> bearbeiten.
Sie müssen <username>root</username> sein, um diese Schritte
durchführen zu können. Eine Beispieldatei für
<filename>ppp.conf</filename> ist weiter unten angegeben.
Weitere Informationen zu den Optionen von <filename>ppp.conf</filename>
bietet die Manual-Seite <application>ppp</application>
&man.ppp.8;:</para>
<programlisting>adsl:
set log phase chat lcp ipcp ccp tun command
set timeout 0
enable dns
set authname <replaceable>username</replaceable> <co id="co-pptp-ex-user"/>
set authkey <replaceable>password</replaceable> <co id="co-pptp-ex-pass"/>
set ifaddr 0 0
add default HISADDR</programlisting>
<calloutlist>
<callout arearefs="co-pptp-ex-user">
<para>Der Benutzername für den Zugang zu den Diensten
Ihres ISP.</para>
</callout>
<callout arearefs="co-pptp-ex-pass">
<para>Das Passwort für Ihren Account.</para>
</callout>
</calloutlist>
<warning>
<para>Weil Sie Ihr Passwort in der Datei
<filename>ppp.conf</filename> in Klartext angeben müssen,
sollten Sie sicherstellen, dass niemand den Inhalt dieser Datei
lesen kann. Die folgende Reihe von Befehlen stellt sicher,
dass die Datei nur von <username>root</username> lesbar ist.
Zusätzliche Informationen bieten die Manual-Seiten
&man.chmod.1; und &man.chown.8;:</para>
<screen>&prompt.root; <userinput>chown root:wheel /etc/ppp/ppp.conf</userinput>
&prompt.root; <userinput>chmod 600 /etc/ppp/ppp.conf</userinput></screen>
</warning>
<para>Dies wird einen Tunnel für eine PPP-Session zu Ihrem
DSL-Router öffnen. Ethernet-DSL-Modems haben eine
vorkonfigurierte LAN-IP-Adresse, mit der Sie eine Verbindung
aufbauen. Im Falle des Alcatel &speedtouch; Home handelt es sich
dabei um die Adresse <hostid role="ipaddr">10.0.0.138</hostid>.
In der Dokumentation Ihres Routers sollte angegeben sein, welche
Adresse Ihr Gerät verwendet. Um den Tunnel zu öffnen
und eine PPP-Session zu starten, führen
Sie bitte folgenden Befehl aus:</para>
<screen>&prompt.root; <userinput>pptp <replaceable>address</replaceable> <replaceable>adsl</replaceable></userinput></screen>
<tip>
<para>Vielleicht möchten Sie ein kaufmännisches Und
(<quote>&amp;</quote>) an das Ende oben angegebenen Kommandos
anfügen, da <application>pptp</application> sonst den
Prompt nicht zurückgibt.</para>
</tip>
<para>Ein virtuelles Tunnel-Device <devicename>tun</devicename>
wird für das Zusammenspiel der Prozesse
<application>pptp</application> und <application>ppp</application>
geschaffen. Wenn Sie den Prompt zurückerhalten haben
oder der <application>pptp</application>-Prozess das Vorliegen
einer Verbindung bestätigt, können Sie den Tunnel
folgendermaßen überprüfen:</para>
<screen>&prompt.user; <userinput>ifconfig <replaceable>tun0</replaceable></userinput>
tun0: flags=8051&lt;UP,POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1500
inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
Opened by PID 918</screen>
<para>Wenn Sie nicht in der Lage sein sollten, eine Verbindung
aufzubauen, überprüfen Sie die Konfiguration Ihres Routers,
den Sie normalerweise per <application>telnet</application>
oder mit einem Web-Browser erreichen können. Falls
dennoch keine Verbindung zustande kommt, sollten Sie die
Ausgabe des Befehls <command>pptp</command> und die
Logdatei <filename>/var/log/ppp.log</filename> von
<application>ppp</application> nach Hinweisen auf die Ursache
durchsuchen.</para>
</sect2>
</sect1>
<sect1 id="slip">
<sect1info>
<authorgroup>
<author>
<firstname>Satoshi</firstname>
<surname>Asami</surname>
<contrib>Ursprünglich beigetragen von </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Guy</firstname>
<surname>Helmer</surname>
<contrib>Mit Beiträgen von </contrib>
</author>
<author>
<firstname>Piero</firstname>
<surname>Serini</surname>
</author>
</authorgroup>
</sect1info>
<title>SLIP</title>
<indexterm><primary>SLIP</primary></indexterm>
<warning>
<para>Der folgende Abschnitt ist ausschließlich
für &os;&nbsp;7.X relevant und gültig.</para>
</warning>
<sect2 id="slipc">
<title>Einrichtung eines SLIP-Clients</title>
<indexterm>
<primary>SLIP</primary>
<secondary>Client</secondary>
</indexterm>
<para>Im Folgenden wird ein Weg beschrieben, SLIP auf einer
FreeBSD-Maschine für ein Netzwerk mit festen Hostnamen
einzurichten. Bei einer dynamischen Zuweisung des Hostnamens
(das heißt wenn sich Ihre Adresse bei jeder Einwahl ändert)
wird die Einrichtung wahrscheinlich etwas komplexer aussehen.</para>
<para>Bestimmen Sie zuerst, an welcher seriellen Schnittstelle Ihr Modem
angeschlossen ist. Viele Leute erzeugen einen symbolischen Link,
wie etwa <filename
class="devicefile">/dev/modem</filename>, der auf den wirklichen
Gerätenamen <filename
class="directory">/dev/cuadN</filename> verweist. Damit ist es Ihnen
möglich, vom eigentlichen Gerätenamen zu abstrahieren,
sollten Sie das Modem einmal an eine andere Schnittstelle
anschließen müssen. Es kann ziemlich umständlich sein,
wenn Sie eine viele Dateien in <filename
class="directory">/etc</filename> und
<filename>.kermrc</filename>-Dateien, die über das ganze System
verstreut sind, anpassen müssen!</para>
<note>
<para><filename
class="devicefile">/dev/cuau0</filename> ist
<devicename>COM1</devicename>, <filename
class="devicefile">/dev/cuau1</filename>
ist <devicename>COM2</devicename>, etc.</para>
</note>
<para>Stellen Sie sicher, dass Folgendes in Ihrer
Kernelkonfigurationsdatei steht:</para>
<programlisting>device sl 1</programlisting>
<para>Dieses pseudo-device ist im <filename>GENERIC</filename> Kernel
enthalten. Falls es von Ihnen nicht gelöscht wurde, sollten
Sie hier kein Problem haben.</para>
<sect3>
<title>Dinge, die Sie nur einmal erledigen müssen</title>
<procedure>
<step>
<para>Tragen Sie Ihren lokalen Rechner, das Gateway, sowie
die Nameserver in Ihre Datei <filename>/etc/hosts</filename>
ein. Diese Datei sieht bei mir so aus:</para>
<programlisting>127.0.0.1 localhost loghost
136.152.64.181 water.CS.Example.EDU water.CS water
136.152.64.1 inr-3.CS.Example.EDU inr-3 slip-gateway
128.32.136.9 ns1.Example.EDU ns1
128.32.136.12 ns2.Example.EDU ns2</programlisting>
</step>
<step>
<para>Vergewissern Sie sich, dass in der Datei
<filename>/etc/host.conf</filename> im Abschnitt
<literal>hosts:</literal> <literal>files</literal> vor
<literal>dns</literal> steht. Ohne diese Reihenfolge
könnten lustige Dinge passieren.</para>
</step>
<step>
<para>Editieren Sie die Datei
<filename>/etc/rc.conf</filename>.</para>
<orderedlist>
<listitem>
<para>Ihren Hostnamen geben Sie an, indem Sie folgende Zeile
bearbeiten:</para>
<programlisting>hostname="myname.my.domain"</programlisting>
<para>Hier sollte der vollständige Internethostname
Ihres Rechners angegeben werden.</para>
</listitem>
<listitem>
<indexterm><primary>Defaultroute</primary></indexterm>
<para>Den Defaultrouter geben Sie durch die Modifikation
folgender Zeile an:</para>
<programlisting>defaultrouter="NO"</programlisting>
<para>wird zu:</para>
<programlisting>defaultrouter="slip-gateway"</programlisting>
</listitem>
</orderedlist>
</step>
<step>
<para>Erstellen Sie die Datei
<filename>/etc/resolv.conf</filename>, die Folgendes
enthält:</para>
<programlisting>domain CS.Example.EDU
nameserver 128.32.136.9
nameserver 128.32.136.12</programlisting>
<indexterm><primary>Nameserver</primary></indexterm>
<indexterm><primary>Domain Name</primary></indexterm>
<para>Wie Sie sehen, werden hiermit die Nameserver angegeben.
Natürlich hängen die tatsächlichen Domainnamen
und Adressen von Ihren Gegebenheiten ab.</para>
</step>
<step>
<para>Legen Sie ein Passwort für <username>root</username> und
<username>toor</username> (sowie für alle anderen Accounts
die kein Passwort haben) fest.</para>
</step>
<step>
<para>Starten Sie Ihren Rechner neu und überprüfen
Sie, ob er mir dem richtigen Hostnamen startet.</para>
</step>
</procedure>
</sect3>
<sect3>
<title>Aufbau einer SLIP-Verbindung</title>
<indexterm>
<primary>SLIP</primary>
<secondary>Verbindungsaufbau</secondary>
</indexterm>
<procedure>
<step>
<para>Wählen Sie sich ein, geben Sie
<command>slip</command> und am Prompt den Namen Ihres
Rechners sowie Ihr Passwort ein. Was Sie eingeben müssen,
hängt von Ihren Gegebenheiten ab. Wenn Sie
<application>Kermit</application> verwenden, können Sie
ein Skript ähnlich dem Folgenden verwenden:</para>
<programlisting># kermit setup
set modem hayes
set line /dev/modem
set speed 115200
set parity none
set flow rts/cts
set terminal bytesize 8
set file type binary
# The next macro will dial up and login
define slip dial 643-9600, input 10 =&gt;, if failure stop, -
output slip\x0d, input 10 Username:, if failure stop, -
output silvia\x0d, input 10 Password:, if failure stop, -
output ***\x0d, echo \x0aCONNECTED\x0a</programlisting>
<para>Natürlich müssen Sie hier Ihren Benutzernamen
und Ihr Passwort eintragen. Wenn Sie das getan haben,
können Sie am <application>Kermit</application>-Prompt
einfach <command>slip</command> eingeben, um sich zu
verbinden.</para>
<note>
<para>Es ist generell eine <emphasis>schlechte</emphasis>
Idee, Ihr Passwort in einer unverschlüsselten
Textdatei irgendwo im Dateisystem zu speichern.
Tun Sie dies auf Ihr eigenes Risiko.</para>
</note>
</step>
<step>
<para>Belassen Sie <application>Kermit</application> so (Sie
können es mit
<keycombo>
<keycap>Ctrl</keycap>
<keycap>z</keycap>
</keycombo> unterbrechen) und geben Sie als
<username>root</username> ein:</para>
<screen>&prompt.root; <userinput>slattach -h -c -s 115200 /dev/modem</userinput></screen>
<para>Wenn Sie mit <command>ping</command> Hosts auf der anderen
Seite des Routers erreichen können, sind Sie verbunden!
Wenn es nicht funktionieren sollte, können Sie versuchen
<option>-a</option> statt <option>-c</option> als Argument
für <command>slattach</command> zu verwenden.</para>
</step>
</procedure>
</sect3>
<sect3>
<title>Beenden der Verbindung</title>
<para>Um <command>slattach</command> zu beenden, geben Sie
Folgendes ein:</para>
<screen>&prompt.root; <userinput>kill -INT `cat /var/run/slattach.modem.pid`</userinput></screen>
<para>Beachten Sie, dass Sie
<username>root</username> sein müssen, um dies
durchführen zu können. Kehren Sie zu <command>kermit</command>
zurück (mit Hilfe von <command>fg</command>, wenn Sie es
unterbrochen haben) und beenden Sie dieses Programm
(<keycap>q</keycap>).</para>
<para>&man.slattach.8; gibt an,
dass <command>ifconfig sl0 down</command> verwendet werden
soll, um das Interface zu deaktivieren, doch das
scheint keinen Unterschied zu machen.
(<command>ifconfig sl0</command> gibt dasselbe aus).</para>
<para>Es kann vorkommen, dass Ihr Modem sich weigert, das
Trägersignal zu beenden. In diesem Fall starten Sie
<command>kermit</command> einfach neu und beenden es wieder.
Beim zweiten Versuch geht es meist aus.</para>
</sect3>
<sect3>
<title>Lösungen bei Problemen</title>
<para>Wenn es nicht funktionieren sollte, können Sie
an die Mailingliste &a.net.name; schreiben. Über
diese Dinge sind Benutzer bisher gestolpert:</para>
<itemizedlist>
<listitem>
<para>Nicht <option>-c</option> oder <option>-a</option> in
<command>slattach</command> verwenden (Das sollte
nicht entscheidend sein, aber einige Benutzer haben
berichtet, dass dies ihre Probleme löst).</para>
</listitem>
<listitem>
<para>Verwendung von <option>s10</option> statt
<option>sl0</option> (bei einigen Schriftarten kann der
Unterschied schwer zu erkennen sein).</para>
</listitem>
<listitem>
<para>Probieren Sie <command>ifconfig sl0</command>,
um den Status Ihrer Schnittstelle abzufragen. Das Ergebnis
könnte beispielsweise so aussehen:</para>
<screen>&prompt.root; <userinput>ifconfig sl0</userinput>
sl0: flags=10&lt;POINTOPOINT&gt;
inet 136.152.64.181 --&gt; 136.152.64.1 netmask ffffff00</screen>
</listitem>
<listitem>
<para>Wenn &man.ping.8; die Fehlermeldung
<errorname>no route to host</errorname> ausgibt, kann
die Routingtabelle falsch sein. Die Routen können Sie
sich mit dem Kommando <command>netstat -r</command>
ansehen:</para>
<screen>&prompt.root; <userinput>netstat -r</userinput>
Routing tables
Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks:
(root node)
(root node)
Route Tree for Protocol Family inet:
(root node) =&gt;
default inr-3.Example.EDU UG 8 224515 sl0 - -
localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438
inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - -
water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438
(root node)</screen>
<para>Die Zahlen im Beispiel stammen von einer recht
ausgelasteten Maschine. Die Zahlen auf Ihrem System werden,
je nach Netzaktivität, von den gezeigten
abweichen.</para>
</listitem>
</itemizedlist>
</sect3>
</sect2>
<sect2 id="slips">
<title>Einrichtung eines SLIP-Servers</title>
<indexterm>
<primary>SLIP</primary>
<secondary>Server</secondary>
</indexterm>
<para>Dieses Dokument bietet Empfehlungen, wie Sie Ihr FreeBSD-System als
SLIP-Server einrichten. Typischerweise bedeutet dies, Ihr System so zu,
konfigurieren, dass beim Login automatisch eine Verbindung für
entfernte SLIP-Clients aufgebaut wird.</para>
<!-- Disclaimer is not necessarily relevant
<para> The author has written this document based
on his experience; however, as your system and needs may be
different, this document may not answer all of your questions, and
the author cannot be responsible if you damage your system or lose
data due to attempting to follow the suggestions here.</para>
-->
<sect3 id="slips-prereqs">
<title>Voraussetzungen</title>
<indexterm><primary>TCP/IP Netze</primary></indexterm>
<para>Dieser Abschnitt ist ausgesprochen technischer Natur, weshalb
Hintergrundwissen erforderlich ist. Wir gehen davon aus, dass Sie
mit dem TCP/IP Protokoll, insbesondere mit
Netzwerk- und Rechneradressierung, Netzwerkmasken, Subnetzen,
Routing und Routingprotokollen, wie RIP, vertraut sind.
Die Konfiguration von SLIP-Diensten
auf einem Einwählserver erfordert die Kenntnis dieser Konzepte.
Wenn Sie damit nicht vertraut sein sollten, lesen Sie bitte
Craig Hunt's <emphasis>TCP/IP Network Administration</emphasis>
publiziert von O'Reilly &amp; Associates, Inc. (ISBN Nummer
0-937175-82-X) oder die Bücher von Douglas Comer über
das TCP/IP Protokoll.</para>
<indexterm><primary>Modem</primary></indexterm>
<para>Wir gehen außerdem davon aus, dass Sie Ihr(e) Modem(s)
eingerichtet haben und die entsprechenden Systemdateien so
konfiguriert haben, dass Logins durch Ihr Modem zugelassen sind.
Wenn Sie Ihr System dafür noch nicht vorbereitet haben,
lesen Sie bitte <xref linkend="dialup"/>, um Ihre
Einwahlverbindung zu konfigurieren. Hilfreich sind auch die
Manualpages &man.sio.4; mit Informationen zum Gerätetreiber
der seriellen Schnittstelle &man.ttys.5;, sowie &man.gettytab.5;,
&man.getty.8; und &man.init.8; für Informationen zur
Konfiguration von Logins über ein Modem. &man.stty.1; bietet
Informationen zur Einstellung der Parameter der seriellen
Schnittstelle (etwa von <literal>clocal</literal> für
direkt angeschlossene serielle Geräte).</para>
</sect3>
<sect3>
<title>Ein kurzer Überblick</title>
<para>Mit der normal verwendeten Konfiguration funktioniert der
FreeBSD-SLIP-Server folgendermaßen: Ein SLIP-Benutzer
wählt einen FreeBSD-SLIP-Server an und meldet sich mit einer
speziellen SLIP-Login-ID ein, wobei
<filename>/usr/sbin/sliplogin</filename> als Shell dieses
besonderen Accounts dient. Das Programm
<command>sliplogin</command> durchsucht die Datei
<filename>/etc/sliphome/slip.hosts</filename> nach einer
passenden Zeile für diesen Account. Falls ein
Treffer erzielt wird, verbindet es den seriellen Anschluss mit
einem verfügbaren SLIP-Interface und führt das
Shellskript <filename>/etc/sliphome/slip.login</filename>
aus, um das SLIP-Interface zu konfigurieren.</para>
<sect4>
<title>Ein Beispiel für ein Login eines SLIP-Servers</title>
<para>Wenn beispielsweise die Kennung eines SLIP-Benutzers,
<username>Shelmerg</username> wäre, könnte der Eintrag des
Benutzers <username>Shelmerg</username> in der Datei
<filename>/etc/master.passwd</filename> etwa so aussehen:</para>
<programlisting>Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin</programlisting>
<para>Wenn sich <username>Shelmerg</username> anmeldet,
wird <command>sliplogin</command> die Datei
<filename>/etc/sliphome/slip.hosts</filename> nach einer
übereinstimmenden Benutzerkennung durchsuchen. So
könnte etwa folgende Zeile in
<filename>/etc/sliphome/slip.hosts</filename> stehen:</para>
<programlisting>Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting>
<para><command>sliplogin</command> wird die passende Zeile finden,
den seriellen Anschluss mit dem nächsten verfügbaren
SLIP-Interface verbinden und dann
<filename>/etc/sliphome/slip.login</filename> wie hier
dargestellt ausführen:</para>
<programlisting>/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting>
<para>Wenn alles gut läuft, wird
<filename>/etc/sliphome/slip.login</filename> ein
<command>ifconfig</command> für das SLIP-Interface
durchführen, mit dem sich <command>sliplogin</command>
verbunden hat (in obigem Beispiel ist das slip 0, der als
erster Parameter in der Liste an <filename>slip.login</filename>
übergeben wurde), um die lokale IP-Adresse
(<hostid>dc-slip</hostid>), die entfernte IP-Adresse
(<hostid>sl-helmer</hostid>), die Netzmaske
des SLIP-Interface (<hostid role="netmask">0xfffffc00</hostid>) und
alle zusätzlichen Optionen (<literal>autocomp</literal>)
festzulegen. Wenn etwas schief laufen sollte, bietet,
<command>sliplogin</command> normalerweise informative
Meldungen durch den <application>syslogd</application>-Daemon,
der die Meldungen standardmäßig nach
<filename>/var/log/messages</filename> schreibt (sehen Sie
hierzu auch in den Manual-Seiten für &man.syslogd.8;
und &man.syslog.conf.5; nach). Überprüfen Sie
auch <filename>/etc/syslog.conf</filename>,
um zu sehen, was <command>syslogd</command> aufzeichnet und
wo es aufgezeichnet wird.</para>
</sect4>
</sect3>
<sect3>
<title>Kernelkonfiguration</title>
<indexterm>
<primary>Kernel</primary>
<secondary>Konfiguration</secondary>
</indexterm>
<para>Der Standardkernel von &os; (<filename>GENERIC</filename>)
bietet bereits SLIP-Unterstützung (&man.sl.4;). Falls
Sie einen angepassten Kernel verwenden, müssen Sie
sicherstellen, dass Ihre Kernelkonfigurationsdatei folgende
Zeile enthält:</para>
<programlisting>device sl</programlisting>
<para>In der Voreinstellung leitet Ihr &os;-Rechner keine
Pakete weiter. Wenn Sie Ihren FreeBSD-SLIP-Server als
Router einsetzen möchten, müssen Sie die Datei
<filename>/etc/rc.conf</filename> bearbeiten und den Wert
der Variable <literal>gateway_enable</literal> auf
<option>YES</option> setzen. Dadurch ist sichergestellt, dass
die Routingoptionen auch nach einem Neustart erhalten bleiben.</para>
<para>Um die Einstellungen sofort anzuwenden, führen Sie den
folgenden Befehl als <username>root</username>-Benutzer aus:</para>
<screen>&prompt.root; /etc/rc.d/routing start</screen>
<para>Weitere Informationen zur Konfiguration Ihres Kernels,
finden Sie in <xref linkend="kernelconfig"/> dieses Handbuches.</para>
</sect3>
<sect3>
<title>Konfiguration des Sliplogin</title>
<para>Wie bereits erwähnt, gibt es im Verzeichnis <filename
class="directory">/etc/sliphome</filename> drei Dateien, die Teil der
Konfiguration für <filename>/usr/sbin/sliplogin</filename>
sind (<command>sliplogin</command> ist in &man.sliplogin.8;
beschrieben): <filename>slip.hosts</filename>,
definiert die SLIP-Benutzer sowie deren IP-Adresse;
<filename>slip.login</filename>, womit normalerweise nur das
SLIP-Interface konfiguriert wird und (optional)
<filename>slip.logout</filename>, womit die Auswirkungen von
<filename>slip.login</filename> rückgängig gemacht
werden, wenn die serielle Verbindung beendet wird.</para>
<sect4>
<title>Konfiguration der Datei
<filename>slip.hosts</filename></title>
<para><filename>/etc/sliphome/slip.hosts</filename> enthält
Zeilen, die mindestens vier durch Leerzeichen getrennte Elemente
enthalten:</para>
<itemizedlist>
<listitem>
<para>Login-Kennung des SLIP-Benutzers</para>
</listitem>
<listitem>
<para>Lokale Adresse (lokal für den SLIP-Server)
der SLIP-Verbindung</para>
</listitem>
<listitem>
<para>Entfernte Adresse der SLIP-Verbindung</para>
</listitem>
<listitem>
<para>Netzwerkmaske</para>
</listitem>
</itemizedlist>
<para>Die lokalen und entfernten Adressen können
Hostnamen sein, deren zugehörige IP-Adresse durch die
Datei <filename>/etc/hosts</filename> oder mithilfe des
Domain Name Service aufgelöst wird. Wie die Adressen
aufgelöst werden, hängt von den Einstellungen in
<filename>/etc/nsswitch.conf</filename> ab. Die Netzwerkmaske
kann ein Name sein, der durch
eine Suche in <filename>/etc/networks</filename> aufgelöst
werden kann. Auf einem Beispielsystem, würde die Datei
<filename>/etc/sliphome/slip.hosts</filename>
folgendermaßen aussehen:</para>
<programlisting>#
# login local-addr remote-addr mask opt1 opt2
# (normal,compress,noicmp)
#
Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp</programlisting>
<para>Am Ende der Zeile stehen eine oder mehrere der folgenden
Optionen.</para>
<itemizedlist>
<listitem>
<para><option>normal</option> &ndash; keine
Header-Kompression</para>
</listitem>
<listitem>
<para><option>compress</option> &ndash; Header werden
komprimiert</para>
</listitem>
<listitem>
<para><option>autocomp</option> &ndash; Header werden
komprimiert, sofern die Gegenstelle es erlaubt</para>
</listitem>
<listitem>
<para><option>noicmp</option> &ndash; ICMP-Pakete werden
deaktiviert (<quote>ping</quote> Pakete werden
unterdrückt, statt die Ihnen zur Verfügung
stehende Bandbreite aufzubrauchen)</para>
</listitem>
</itemizedlist>
<indexterm><primary>SLIP</primary></indexterm>
<indexterm><primary>TCP/IP Netze</primary></indexterm>
<para>Die Auswahl von lokalen und entfernten Adressen für Ihre
SLIP-Verbindung, hängt davon ab, ob Sie ein TCP/IP-Subnetz
reservieren oder ob Sie <quote>proxy ARP</quote> auf Ihrem
SLIP-Server verwenden (es handelt sich nicht um
<quote>echtes</quote> proxy ARP, aber dieser Begriff wird
in diesem Abschnitt verwendet, um diesen Sachverhalt zu
beschreiben). Wenn Sie nicht sicher sind, welche Methode
Sie wählen sollen oder wie IP-Adressen zugewiesen werden,
lesen Sie bitte in den Büchern
zum Thema TCP/IP nach, die als Voraussetzungen für SLIP
(<xref linkend="slips-prereqs"/>) angegeben worden sind
oder fragen Sie Ihren IP-Netzwerkadministrator.</para>
<para>Wenn Sie für Ihre SLIP-Clients ein eigenes Subnetz
verwenden, werden Sie die Nummer des Subnetzes aus der Ihnen
zugewiesenen IP-Netzwerknummer zuteilen und die IP-Adressen
Ihrer SLIP-Clients aus diesem Subnetz verwenden müssen.
Dann können Sie eine statische Route zu Ihrem
SLIP-Subnetz über Ihren SLIP-Server auf Ihren
nächsten IP-Router konfigurieren.</para>
<indexterm><primary>Ethernet</primary></indexterm>
<para>Wenn Sie aber andererseits die <quote>proxy ARP</quote>
Methode verwenden möchten, werden Sie die IP-Adressen Ihrer
SLIP-Clients aus dem Subnetz Ihres SLIP-Server nehmen und die
Skripte <filename>/etc/sliphome/slip.login</filename>
<filename>/etc/sliphome/slip.logout</filename> anpassen
müssen, damit diese &man.arp.8; zur Verwaltung der
<quote>proxy ARP</quote>-Einträge in der ARP-Tabelle Ihres
SLIP-Servers verwenden.</para>
</sect4>
<sect4>
<title>Konfiguration von <filename>slip.login</filename></title>
<para>Eine typische Datei
<filename>/etc/sliphome/slip.login</filename> sieht
folgendermaßen aus:</para>
<programlisting>#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6</programlisting>
<para>Diese <filename>slip.login</filename> Datei führt
lediglich <command>ifconfig</command> für das entsprechende
SLIP-Interface mit den lokalen und entfernten Adressen und der
Netzwerkmaske des SLIP-Interface aus.</para>
<para>Wenn Sie sich dafür entschieden haben, die
<quote>proxy ARP</quote> Methode zu verwenden (statt eines
separaten Subnetzes für Ihre SLIP-Clients)
sollte Ihre Datei <filename>/etc/sliphome/slip.login</filename>
etwa folgendermaßen aussehen:</para>
<programlisting>#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
# Answer ARP requests for the SLIP client with our Ethernet addr
/usr/sbin/arp -s $5 00:11:22:33:44:55 pub</programlisting>
<para>Die zusätzliche Zeile <command>arp -s
&#36;5 00:11:22:33:44:55 pub</command> in der Datei
<filename>slip.login</filename> erzeugt einen ARP-Eintrag
in der ARP-Tabelle des SLIP-Servers. Dieser ARP-Eintrag
veranlasst den SLIP-Server mit seiner Ethernet MAC-Adresse
zu antworten, sobald ein anderer IP-Knoten im Ethernet mit
der IP-Adresse des SLIP-Clients Kontakt aufnehmen
möchte.</para>
<indexterm>
<primary>Ethernet</primary>
<secondary>MAC Adresse</secondary>
</indexterm>
<para>Wenn Sie das Beispiel von oben verwenden, achten Sie darauf
die Ethernet MAC-Adresse (<hostid
role="mac">00:11:22:33:44:55</hostid>) durch die MAC-Adresse der
Ethernetkarte Ihres Systems zu ersetzen. Sonst wird Ihr
<quote>proxy ARP</quote> sicher nicht funktionieren! Sie
können die MAC-Adresse Ihres SLIP-Servers herausfinden,
indem Sie sich die Ausgabe von <command>netstat -i</command>
ansehen. Die zweite Zeile der Ausgabe sollte ungefähr
aussehen wie diese hier:</para>
<screen>ed0 1500 &lt;Link&gt;0.2.c1.28.5f.4a 191923 0 129457 0 116</screen>
<para>Dies zeigt an, dass die Ethernet MAC-Adresse dieses
Systems <hostid role="mac">00:02:c1:28:5f:4a</hostid> lautet.
Die Punkte in der Ethernet MAC-Adresse, die von
<command>netstat -i</command> ausgegeben wird, müssen
durch Doppelpunkte ersetzt werden. Bei jeder einstelligen
Hexadezimalzahl sollten außerdem führende Nullen
hinzugefügt werden, um die Adresse in die Form zu bringen,
die von &man.arp.8; verlangt wird.
Die Manual-Seite von &man.arp.8; bietet hierzu eine
vollständige Übersicht.</para>
<note>
<para>Wenn Sie die Dateien
<filename>/etc/sliphome/slip.login</filename> und
<filename>/etc/sliphome/slip.logout</filename> erstellen,
müssen diese ausführbar gemacht werden
(<command>chmod 755 /etc/sliphome/slip.login
/etc/sliphome/slip.logout</command>),
da <command>sliplogin</command> auf deren Ausführbarkeit
angewiesen ist.</para>
</note>
</sect4>
<sect4>
<title> Konfiguration von <filename>slip.logout</filename></title>
<para>Die Datei<filename>/etc/sliphome/slip.logout</filename> ist
nicht zwingend erforderlich (außer Sie verwenden <quote>proxy
ARP</quote>), aber falls Sie diese Datei erzeugen möchten,
ist hier ein Beispiel für ein grundlegendes
<filename>slip.logout</filename> Skript:</para>
<programlisting>#!/bin/sh -
#
# slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down</programlisting>
<para>Wenn Sie <quote>proxy ARP</quote> einsetzen, muss
<filename>/etc/sliphome/slip.logout</filename> den
ARP-Eintrag für den SLIP-Client löschen:</para>
<programlisting>#!/bin/sh -
#
# @(#)slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down
# Quit answering ARP requests for the SLIP client
/usr/sbin/arp -d $5</programlisting>
<para><command>arp -d &#36;5</command> löscht den ARP-Eintrag,
den die <quote>proxy ARP</quote> <filename>slip.login</filename>
hinzufügte, als der SLIP-Client sich eingeloggt hatte.</para>
<para>Es soll nochmals darauf hingewiesen werden, dass für die
Datei <filename>/etc/sliphome/slip.logout</filename> das
Ausführungs-Bit gesetzt werden muss, nachdem die Datei
erstellt worden ist (z.B. <command>chmod 755
/etc/sliphome/slip.logout</command>).</para>
</sect4>
</sect3>
<sect3>
<title>Überlegungen zum Routing</title>
<indexterm>
<primary>SLIP</primary>
<secondary>Routing</secondary>
</indexterm>
<para>Wenn Sie nicht die <quote>proxy ARP</quote> Methode benutzen,
um Datenpakete zwischen Ihren SLIP-Clients und dem Rest Ihres
Netzwerkes (oder vielleicht dem Internet) zu routen, werden Sie
wahrscheinlich statische Routen zu Ihrem nächsten
Standardrouter hinzufügen müssen, um Pakete aus dem
Subnetz Ihres SLIP-Clients über Ihren SLIP-Server
weiterzuleiten.</para>
<sect4>
<title>Statische Routen</title>
<indexterm><primary>statische Routen</primary></indexterm>
<para>Das Hinzufügen von statischen Routen zu Ihrem
nächsten Standardrouter kann problematisch sein
(oder unmöglich, wenn Sie nicht die erforderliche
Berechtigung haben...). Wenn Sie in Ihrer Organisation ein
Netzwerk mit mehreren Routern haben, müssen einige Router,
wie etwa die von Cisco und Proteon hergestellten, nicht nur mit
der statischen Route zum SLIP-Subnetz konfiguriert werden, sondern
es muss ihnen auch mitgeteilt werden, über welche statischen
Routen sie andere Router informieren sollen. Daher ist einiges
an Fachwissen und Problemlösungskompetenz erforderlich, um auf
statischen Routen basierendes Routing erfolgreich
einzurichten.</para>
</sect4>
</sect3>
</sect2>
</sect1>
</chapter>