Auch Linux-Systeme mit 2.2er Kernel gehören noch nicht zum alten Eisen. Um damit einen DSL-Anschluss mit PPPoE zu nutzen, ist etwas mehr Arbeit nötig, doch auch hier steht man nicht vor unüberwindlichen Hürden.
Auch bei Systemen, die mit einer älteren Linux-Version ausgestattet sind, hat man zwei Möglichkeiten, per PPPoE ins Netz der Netze zu gelangen: Neben der bereits ab Seite 18 beschriebenen Pseudo-Terminal-Lösung von Roaring Penguin gibt es die Möglichkeit, den 2.2er Kernel mit PPPoE-Patches flott zu machen und einen PPPoE-Daemon einzuspielen.
Kernel-Flicken
Die Kernel-Patches (gemeinsam mit dem Daemon in einem Archiv namens pppoed-0.48b1.tgz von http://www.davin.ottawa.on.ca/pppoe/ herunter zu laden) werden distributionsunabhängig bis Version 2.2.17 angeboten. Will man sie einspielen, benötigt man den Linux-Source-Code, z. B. linux-2.2.17.tar.gz von http://www.kernel.org/. Die überwiegende Mehrzahl der in den vergangenen 12 Monaten erschienenen Distributionen enthält die entsprechenden Änderungen im 2.2er Kernel bereits, als distributionseigene Modifikationen auch in den neueren Kerneln 2.2.18 und 2.2.19, für die es keinen offiziellen Source-Code-Patch gibt.
Will oder muss man den Kernel selbst anpassen, entpackt man den 2.2.17er Kernel-Quellcode im Verzeichnis /usr/src. Zuvor löscht man den Link /usr/src/linux auf bereits entpackte Quellen mit cd /usr/src; rm linux. Damit wird das Überschreiben alter Kernel-Sourcen vermieden.
tar xvfz linux-2.2.17.tar.gz mv linux linux-2.2.17 ln -s linux-2.2.17 linux
Nach dem Auspacken des Quellcode-Archivs mit tar benennt man das neu erstellte Verzeichnis /usr/src/linux in /usr/src/linux-2.2.17 um und verlinkt es so, dass es auch als Standardverzeichnis /usr/src/linux angesprochen werden kann. Für den Patch muss noch ein weiterer Link 2217 auf linux-2.2.17 erstellt werden:
ln -s linux-2.2.17 2217
Das Paket pppoed-0.48b1.tgz legt man in einem beliebigen /Verzeichnis ab, in das man mit cd /Verzeichnis wechselt. Beim Entpacken des Tar-Balls mit
tar xvfz pppoed-0.48b1.tgz
entsteht ein Verzeichnis namens /Verzeichnis/pppoed-0.48b1.
Zum Einspielen des Source-Code-Flickens benötigen Sie das Programm patch, das z. B. bei SuSE im Paket patch.rpm enthalten ist. Dann schlägt die große Stunde:
cd /usr/src cat /Verzeichnis/pppoed-0.48b1/kernel-patches/2217-pppox | patch -0 cd linux
Die Konfiguration des neugepatchten Kernels geht wie üblich mit make menuconfig bzw. auf der grafischen Oberfläche mit make xconfig vonstatten. Achten Sie dabei darauf, dass die in Abbildung 1 und 2 aktivierten Optionen auch bei Ihnen eingeschaltet sind.

Networking Options bei der Kernel-Konfiguration” width=”300″ height=”126″ />
Abbildung 1: Die passendenNetworking Options bei der Kernel-Konfiguration
Network Device Support gilt es, auf die Kernel-Konfiguration zu achten” width=”248″ height=”300″ />
Abbildung 2: Auch beimNetwork Device Support gilt es, auf die Kernel-Konfiguration zu achtenAnschließend kompilieren und installieren Sie den neuen Kernel wie gewohnt. Wenn dies Ihr erster selbstübersetzter Linux-Kernel werden soll, informieren Sie sich bitte im Kernel-HowTo (http://www.linux.org/docs/ldp/howto/Kernel-HOWTO.html), in der Dokumentation zu Ihrer Distribution o. ä. über das genaue Prozedere.
Ein neuer Daemon
Nachdem der Kernel übersetzt wurde, muss ggf. noch ein Device für den PPPoE-Daemon pppoed angelegt werden. Listet ls /dev/pppox0 keinen passenden Eintrag im Geräte-Verzeichnis auf, erzeugt man die neue Gerätedatei mit
mknod /dev/pppox0 c 144 0
Zudem fügt man in der Datei /etc/conf.modules die Zeile
alias char-major-144 pppox
ein. Anschließend gilt es, den PPPoE-Daemon zu übersetzen und zu installieren. Wechseln Sie zunächst ins Verzeichnis mit den pppoed-Quellen, und starten Sie das Konfigurationsskript:
cd /Verzeichnis/pppoed-0.48b1/pppoed ./configure --prefix=/usr make make install
Der make-Befehl startet die Übersetzung der Quellen ins Binärformat; make install (als root ausgeführt) platziert die übersetzten Dateien im System.
Nicht bei Bedarf
Wie jeder andere Server muss auch der pppoed noch an die lokalen Gegebenheiten angepasst werden. Listing 1 im Artikel “Breitband-Pinguin” zeigt eine Konfigurationsdatei, die Sie mit Einschränkungen übernehmen können: Die demand-Zeile müssen Sie weglassen, denn dial on demand wie mit dem 2.4er Kernel ist in der Regel mit größeren Schwierigkeiten behaftet. Der Kasten “Auf Anruf Verbindung” zeigt, wie man mit Hilfe des diald-Dämons dennoch zu einem automatischen Verbindungsaufbau kommt.
Auf Anruf Verbindung
Mit dem diald (Dial Daemon) kommen auch Besitzer von 2.2er Kerneln in den Genuss automatischer Verbindungsaufbaus. Das entsprechende Paket (diald.rpm für SuSE) sollte jeder Distribution beiliegen und mit den entsprechenden Konfigurationstools oder rpm -ihv diald.rpm installiert werden.
Um den diald in Verbindung mit PPPoE zu nutzen, muss bei der Kernel-Konfiguration der Punkt Ethertap network tap aktiviert werden (Abbildung 2). Ethertap ist ein virtuelles Netzwerk-Device, welches bis zum Aufbau einer Netzwerkverbindung über ppp0 als Default-Gateway dient. Die Datei /etc/conf.modules sollte die Einträge
alias tap0 ethertap[…] alias tap15 ethertap
enthalten. Ggf. tragen Sie diese nach und lösen die Modulabhängigkeiten mit depmod -aev neu auf.
Der Daemon selbst wird in den Dateien /etc/diald.conf (Listing 1) und /etc/diald/connect (Listing 2) konfiguriert. Wenn dann noch das Routing stimmt, kann er durch Aufruf des Kommandos diald zu arbeiten beginnen. Wichtig dabei ist, dass vor dem diald-Start und nach Abbruch der Verbindung das Default-Gateway mit
route add default gw tap0-Adresse
auf die Point-To-Point-Adresse des tap0-Devices gesetzt wird, die in Listing 1 auf 192.168.2.254 festgelegt wurde.
Sind all diese Vorarbeiten erledigt, startet man die Verbindung ins Netz mit pppoed -I eth0 -L0. Als Parameter gilt es hierbei, zum Einen die Netzwerkkarte mit -I (im Beispiel das zweite Ethernet-Interface), zum Anderen den Kanal (die “Line”) mit -L anzugeben.
Sofern in der Konfigurationsdatei eine Idle-Zeit angegeben ist, beendet sich der pppoed automatisch, wenn so lange kein Datenverkehr stattgefunden hat. Ansonsten bricht man die Verbindung mit [Strg-C] ab.
Listing 1
# /etc/diald.conf in Auszuegen[…] mode ppp device ppp0 # neu waehlen nach 3 Sekunden redial-timeout 3 buffer-packets buffer-fifo-dispose buffer-timeout 60 # diald-Kontrolldatei fifo "/etc/diald/diald.ctl" #maxim. Uebertragungseinheit # (hier: für T-DSL) mtu 1492 mru 1492 # Netzwerkadressen fuer tap0 local 192.168.2.1 remote 192.168.2.254 netmask 255.255.255.255 # dynamische Adressvergabe bei Einwahl dynamic # zum Verbinden folgendes Skript aufrufen connect /etc/diald/connect disconnect /etc/diald/disconnect # Route setzen addroute /etc/diald/addroute delroute /etc/diald/delroute # Skript nach Verbindungsaufbau ip-up /etc/diald/ipup # Skript nach Verbindungsabbau ip-down /etc/diald/ipdown # Dieses muss die Route neu setzen # und daher eine Zeile wie # /sbin/route add default gw 192.168.2.254 # enthalten[…]
Listing 2
# /etc/diald/connect # /usr/sbin/pppoed -I eth0 -L0 exit 0
Glossar
-
Daemon
-
Ein Server- (Dienst-) Programm, das vom Normal-User unbemerkt im Hintergrund läuft. Die Bezeichnung hat übrigens nichts mit bösen Geistern zu tun, sondern ist die aus “alten Unix-Tagen” stammende Abkürzung für “Disk and Execution Monitor”.




