PPPoE mit 2.2er Kernel

Aus LinuxUser 08/2001

PPPoE mit 2.2er Kernel

Alt-Kernel in Fahrt

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.

Abbildung 1: Die passenden <code srcset=

Networking Options bei der Kernel-Konfiguration” width=”300″ height=”126″ /> Abbildung 1: Die passenden Networking Options bei der Kernel-Konfiguration

Abbildung 2: Auch beim <code srcset=

Network Device Support gilt es, auf die Kernel-Konfiguration zu achten” width=”248″ height=”300″ /> Abbildung 2: Auch beim Network Device Support gilt es, auf die Kernel-Konfiguration zu achten

Anschließ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
# /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
# /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”.

LinuxUser 08/2001 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben