Veröffentlichung mit freundlicher Genehmigung der Linux New Media AG und des Linux Magazins.
DSL mit Kernel 2.4Mit Vollgas ins NetzMichael Schlenstedt |
|
Linuxer haben nicht nur bei den DSL-Anbietern freie Wahl, auch bei den Treibern herrscht Artenvielfalt unter dem freien Betriebssystem. Nachdem nun alle gängigen Distributionen auf den neuen Kernel 2.4 umgestellt haben, wird es Zeit, die neue Treiber-Alternative zu durchleuchten.
Seit dem letzten ADSL-Artikel im Linux-Magazin vor etwa einem Jahr (Ausgabe 11/00, siehe[1]) hat sich in der deutschen ADSL-Landschaft einiges getan. So ist man heute nicht mehr zwangsweise bei der Provider- und Anschlusswahl auf die Deutsche Telekom festgelegt. Wer eine Alternative zum rosa Riesen sucht, wird in Tabelle 1 fündig, sie zeigt alle für Privatkunden interessanten ADSL-Zugänge und -Anschlüsse. Es fehlen Businesstarife und Zugänge über andere DSL-Varianten, etwa SDSL.
Kommt Zeit, kommt Rat
Die meisten deutschen Provider verwenden das standardisierte Zugangsprotokoll PPPoE (Point-to-Point Protocol-over-Ethernet, siehe[2]). Oder sie verzichten gänzlich auf eine Softwarelösung und liefern dem Kunden einen Hardware-Router mit, der per DHCP (Dynamic Host Configuration Protocol) direkt mit dem Provider verbindet. Diese Lösung ist betriebssystemunabhängig (DHCP-Unterstützung vorausgesetzt) und über die Konfigurationstools aller gängigen Distributionen sehr einfach zu konfigurieren. Verwendet der Provider hingegen PPPoE, so benötigt man neben der Hardware auch noch einen entsprechenden PPPoE-Treiber.
Wer die Wahl hat
Auch die PPPoE-Treiberentwicklung unter dem Pinguin ist im letzten Jahr mit rasanten Sprüngen vorangeschritten. So stehen dem Anwender mittlerweile drei größere stabile Treibervarianten zur Verfügung: RP-PPPoE (Roaring-Penguin-Treiber, siehe[1]) und die beiden Kernel-basierenden PPPoE-Treiber jeweils für Kernel 2.2 und 2.4.
Nach einer Umfrage unter mehr als 1000 Linux-Usern[3] im Sommer dieses Jahres werden alle drei Treiber fast gleich oft verwendet (siehe Abbildung 1). Inzwischen dürfte der Kernel-Treiber für 2.4 nochmals stark zugelegt haben, da alle großen Distributionen jetzt auf Kernel 2.4 umgestellt haben. Vergleicht man Kernel- mit den Userspace-Treibern (»rp-pppoe«), so liegen die Kernel-Treiber mit zusammen knapp über 60 Prozent sogar weit vor dem Roaring-Penguin-Treiber, der vor einem Jahr noch die einzige, wirklich stabil laufende Möglichkeit der PPPoE-Implementierung unter Linux war.
Aber welche Vor- und Nachteile haben die einzelnen Treiber für den Endanwendern? Eine generelle Empfehlung ist kaum möglich - die individuellen Anforderungen und Einsatzgebiete sind einfach zu unterschiedlich, sie müssen zunächst geklärt werden.
Als wichtigster Unterschied der einzelnen Treiber ist vor allem das Userspace- oder Kernel-basierende Konzept zu nennen. Während die Kernel-Treiber direkt im Linux-Kernel implementiert sind oder als Module nachgeladen werden können, arbeitet der RP-PPPoE im Userspace, er läuft also als externes Programm komplett außerhalb des Kernels. Das hat den entscheidenden Nachteil, dass alle Daten zuerst umständlich umkopiert werden müssen.
Zudem kann der Scheduler dem PPPoE-Prozess auch CPU-Zeit entziehen, wenn hohe Last herrscht. Das würde ein Einbrechen der Bandbreite bedeuten. Gerade wer einen leistungsschwachen älteren Rechner als Router für ein kleines Netz einsetzt (etwa einen Pentium/75 oder 486er), sollte sehr stark auf die Performance beziehungsweise die vom Treiber verursachte CPU-Last achten. Die CPU-Last des RP-PPPoE-Treibers kann durch das Hinzuladen des Kernelmoduls »HDLC Line Discipline« und das Aktivieren der synchronen Datenübertragung nahezu auf das Niveau der Kernel-Treiber reduziert werden.
Abbildung 1: Verbreitung der PPPoE-Treiber.
Abbildung 2: CPU-Last des RP-PPPoE-Treibers auf einem 75er Pentium-System.
Abbildung 2 zeigt die CPU-Last beim Download einer 10 MByte großen Testdatei auf einem Pentium/75-System mit 32 MByte Hauptspeicher und einem Durchsatz von 85 KByte/s. Man sieht deutlich, dass bei synchroner Datenübertragung die CPU-Last auf unter fünf Prozent sinkt, was etwa so viel ist wie bei den Kernel-Treibern (zwei bis drei Prozent). Wer hingegen einen aktuellen PC als Router oder Zugangsrechner einsetzt, kann zwar mit einem Tool wie »xosview« oder »top« sicherheitshalber die CPU-Auslastung nochmals kontrollieren, wird sich aber diesbezüglich keine Gedanken mehr machen müssen, da aktuelle Prozessoren genug Leistungsreserven zur Verfügung stellen.
Dieser Aspekt ist also noch kein gutes Entscheidungskriterium. Aber wie sieht es mit der Stabilität der Treiber aus? Hier hat der RP-PPPoE-Treiber die Nase vorn. Er liegt mittlerweile in der Version 3.3 vor und ist seit langer Zeit erprobt, dagegen wird PPPoEd für Kernel 2.2 kaum weiterentwickelt und der PPPoE-Treiber des 2.4-Kernels befindet sich noch im Entwicklungsstadium.
Gerade dies macht sich schon mal in nicht-funktionierenden Patches oder Kernelabstürzen (Kernel Panic) bemerkbar. Zwar sollten Abstürze des Systems mit den letzten Kernelversionen der Vergangenheit angehören, aber wer die PPPoE-Verbindung in einem Unternehmensumfeld einsetzt, sollte zur Zeit auf den Kernel-Treiber verzichten.
Aber auch wer Dial-on-Demand auf seinem System einsetzen möchte, muss bei der Treiberauswahl aufmerksam sein. So unterstützen zwar alle aktuellen Treiber auch das automatische Aufbauen einer Verbindung bei Bedarf, aber wegen eines Bugs in dem PPP-Daemon (»pppd«) funktioniert Dial-on-Demand lediglich bei asynchroner Datenübertragung.
Zwar existiert ein Patch für den Synchron-Modus des Pppd (siehe[4]), es wird aber vom Autor höchstens als Workaround bezeichnet und sollte daher auch nicht im absolut kritischen Umfeld eingesetzt werden. Somit fallen der RP-PPPoE-Treiber im synchronen, lastreduzierten Modus und auch der Kernel-Treiber für 2.2 bereits aus, da auch dieser Treiber zwangsweise auf synchrone Datenübertragung angewiesen ist.
Die verwendete Kernelversion spielt natürlich ebenfalls eine Rolle, so funktioniert der Roaring-Penguin-Treiber bei allen Kernelversionen ab Kernel 2.0, die beiden Kernel-Treiber natürlich nur jeweils für Kernel 2.2 oder 2.4. Tabelle 2 listet übersichtlich Vor- und Nachteile der PPPoE-Treiber auf.
PPPoE und Kernel 2.4
Die Treiberimplementierung des PPPoE-Daemons unter Kernel 2.2 hat unsere Schwesterzeitschrift "LinuxUser" in der Ausgabe 8/01 (siehe[5]) ausführlich behandelt. Da dieser Kernel allerdings mehr und mehr an Bedeutung verliert, wird die Installation hier nicht weiter behandelt. Interessanter ist der neueste PPPoE-Treiber, der Treiber für Kernel 2.4. Die Installation des RP-PPPoE finden Interessenten im Linux-Magazin 11/00 oder unter[1] beschrieben.
Im ersten Schritt muss man das PPPoE-Protokoll im Linux-Kernel aktivieren. Alle aktuellen Distributionen haben den PPPoE-Support bereits als Modul mit in den Standardkernel integriert, es ist jedoch wichtig, mindestens Kernel 2.4.8 zu verwenden, da ältere beim Zusammenspiel der PPPoE- mit den neuen Netfilter-Modulen zur Kernel-Panic führen können. Die Kernelversion lässt sich mit
uname -r
kontrollieren. Ob auch die PPPoE-Module vom Distributor mitgeliefert wurden, stellt man einfach mit folgendem Befehl fest:
find /lib/modules/$(uname -r) -name pppo[ex].o -print
Der letzte Befehl sollte zwei Kernelmodule auflisten: »pppoe.o« und »pppox.o«. Sind sie nicht vorhanden oder ist die Kernelversion zu alt, muss ein neuer Kernel kompiliert werden.
Näheres dazu verrät die Kernel-Howto[6]. Die Optionen für PPPoE und PPP finden sich unter »Network device support«. Um die als unstable gekennzeichneten Optionen auswählen zu können, muss unter »Code maturity level options« zuvor »Prompt for development and/or incomplete code/drivers« aktiviert werden. Die Optionen werden als Module eingebunden (»m«). Abbildung 3 zeigt die Minimaloptionen für eine PPPoE-Verbindung.
Abbildung 3: Kernelkonfiguration der PPP-Optionen.
Damit die Kernelmodule des PPPoE-Treibers automatisch geladen werden, können die entsprechenden Optionen und Abhängigkeiten in die Datei »/etc/ modules.conf« eingetragen werden:
alias net-pf-24 pppoe alias char-major-108 pppoe post-install ppp_generic insmod ppp_async
Anschließend ist ein »depmod -a« auszuführen. Wird später eine Verbindung aufgebaut (siehe unten), sollte eine Eingabe von »lsmod« die folgenden Module auflisten:
ppp_async 6320 0 (unused) pppoe 6608 0 pppox 1360 1 [pppoe] ppp_generic 13344 0 [ppp_async pppoe pppox] slhc 5024 0 [ppp_generic]
Neben den Kernelmodulen ist noch ein gepatchter PPP-Daemon für den PPPoE-Treiber notwendig, den lediglich SuSE 7.2 in einer etwas älteren Version schon enthält. Mit dem Patch steht anschließend ein PPPoE-Plug-in für den Pppd zur Verfügung. Das aktuelle Patch finden Sie unter[7]. Zusätzlich zum Patch werden noch die aktuellen Quellen des Pppd, die unter[8] zu finden sind, benötigt. Die Sourcen werden in ein beliebiges Verzeichnis entpackt:
tar xvfz ppp-2.4.1.tar.gz
Die zuvor heruntergeladene Patch-Datei wird in das neu entstandene Verzeichnis der Pppd-Quelltexte kopiert, anschließend startet der Patchvorgang mit:
patch -p1 < ppp-2.4.1-pppoe.patch4
Diese Quelltexte werden dann wie gewohnt mit
./configure make make install
übersetzt. Die eigentliche Treiberinstallation ist damit abgeschlossen. Als nächster Schritt ist nun die Netzwerkkarte zu aktivieren. Alle aktuellen Distributionen binden zusätzliche Treiber als Module im System ein. Diese Module können bequem mit dem Konfigurationstool der Distribution installiert werden. Abbildung 4 zeigt dafür als Beispiel SuSEs Yast.
Abbildung 4: Mit Yast wird unter SuSE der Treiber der Netzkarte installiert.
Damit die Netzwerkkarte vom System auch verwendet werden kann, ist nun die Aktivierung mit »ifconfig« notwendig. Auch das lässt sich bei allen gängigen Distributionen mit dem jeweiligen distributionseigenen Konfigurationstool erledigen (Abbildung 5) oder aber direkt auf der Kommandozeile mit der Befehlseingabe:
ifconfig eth1 up
Abbildung 5: Netzwerk-Aktivierung mit Yast unter SuSE.
Dieses Beispiel (und auch alle weiteren) zeigt die Konfiguration für die zweite Netzwerkkarte im System. Ist nur eine Karte vorhanden, muss »eth1« durch »eth0« ersetzt werden. Das Eingeben einer IP-Adresse ist an dieser Stelle nicht notwendig, da die Netzwerkkarte als reine Hardware verwendet wird, die IP-Verbindung geht über den Pppd und somit auch über ein PPP-Device.
Verlangt das Konfigurationstool der Distribution die Eingabe einer IP-Adresse, ist eine private, im lokalen Netz nicht anderweitig vergebene Adresse anzugeben, etwa 1.1.1.1 oder 192.168.99.99. Auf keinen Fall darf die Default-Route (oft Standard-Gateway genannt) auf das Ethernet-Device gelegt werden!
Nachdem Treiber und die Hardware des Systems auf den ADSL-Zugang vorbereitet wurden, kann die Konfiguration des Providers beginnen. Zuerst werden die Benutzerkennung und das Passwort in die Datei »/etc /ppp/ pap-secrets« eingetragen. Einige wenige Provider verwenden das Authentifizierungsprotokoll CHAP (unter anderem Hansenet) anstelle von PAP, dann ist die Kennung in die Datei »/etc/ppp/ chap-secrets« einzutragen.
Da es bei der ADSL-Technik keine Einwahl im herkömmlichen Sinne gibt, wird der Name des Providers häufig noch an die Benutzerkennung angehängt oder ihr vorangestellt. Somit kann man auch bei ADSL-Anschlüssen zwischen verschiedenen Providern unterscheiden. T-Online benutzt »@t-online .de«, bei 1&1 ist »1und1/« vor die Benutzerkennung zu stellen.
Bei T-Online setzt sich die Kennung bei einer Einwahl ohne die spezielle T-Online-Software aus Anschlusskennung, der T-Online-Nummer, der Raute und dem Mitbenutzersuffix zusammen. Eine mögliche »pap-secrets« wäre:
# Secrets for authentication using PAP client server secret IP adresses "111111111111222222222222#0001@t-online.de" * "geHeim" *
Die Optionen des Pppd werden in die Datei »/etc/ppp/options« eingetragen. Wer häufig zwischen verschiedenen Pppd-Konfigurationen wechselt, etwa um sich bei mehreren Providern einzuwählen, kann die Konfigurationsdatei auch unter »/etc/ppp/peers« ablegen. Beim Aufruf des Pppd ist diese Datei dann über die Option »call Dateiname« mit anzugeben. Die komplette Datei steht auf unserem FTP-Server zum Download zur Verfügung.
Um bei den ersten Verbindungsversuchen die Logfiles und somit alle Statusmeldungen des Pppd immer im Auge behalten zu können, führt man in einem Xterm oder auf der Konsole
tail -f /var/log/messages
aus. Somit werden alle hinzukommenden Meldungen in der Datei »/var/log/ messages« sofort angezeigt. Der erste Verbindungsversuch erfolgt nun mit:
pppd eth1
Im Syslog wird daraufhin gemeldet:
pppd[541]: Plugin /usr/lib/pppd
/2.4.1/pppoe.so loaded.
pppd[541]: PPPoE Plugin Initialized
pppd[541]: pppd 2.4.1 started by root,
uid 0
pppd[541]: Sending PADI
pppd[541]: HOST_UNIQ successful match
pppd[541]: HOST_UNIQ successful match
pppd[541]: Got connection: 9ce
pppd[541]: Connecting PPPoE socket:
00:01:96:99:50:9f ce09 eth1
0x807ee48
pppd[541]: Using interface ppp0
pppd[541]: Connect: ppp0 <--> eth1
pppd[541]: Couldn't increase
MTU to 1500.
pppd[541]: Couldn't increase
MRU to 1500
pppd[541]: local IP address
217.80.206.16
pppd[541]: remote IP address
62.225.254.169
pppd[541]: primary DNS address
217.5.115.7
pppd[541]: secondary DNS address
194.25.2.129
Hier ist deutlich zu erkennen, dass der PPPoE-Treiber die Gegenstelle der ADSL-Leitung erreicht (die Adresse: 00:01:96: 99:50:9f). Anschließend werden noch eine dynamische IP und auch die Adresse der Gegenstelle (local und remote IP) sowie zwei Nameserver-Adressen zugewiesen.
Nachdem die Verbindung steht, kann man versuchen, einen Rechner über seine IP im Internet zu erreichen:
ping -c10 194.25.2.129
Ist der Befehl erfolgreich, lässt sich die Namensauflösung kontrollieren:
ping -c10 adsl4linux.de
Klappt auch dieser Versuch, wurden auch die korrekten Nameserver-Einstellungen beim Verbindungsaufbau in »/etc /resolv.conf« gesetzt. [Strg]+[C] oder »killall pppd« beenden den Pppd und damit auch die Verbindung.
Manuelle Einwahl
Die manuelle Einwahl kann direkt über den schon oben verwendeten Aufruf des Pppd erfolgen. Da dieser Aufruf jedoch wenig einprägsam ist, legt man besser ein Bash-Skript an, das die Aufgabe übernimmt. Auch dieses Skript finden Sie auf unserem FTP-Server zum Download.
Normalerweise ist es lediglich Root gestattet, eine Verbindung mit dem Pppd herzustellen. Auch anderen Benutzern das Ausführen des Connect-Skripts zu ermöglichen, das ist die Funktion des Programms Sudo. Die Software erlaubt es, bestimmte Programme und Skripte im System als normaler Benutzer mit Root-Rechten auszuführen. Das Paket sollte bei jeder Distribution enthalten sein, wenn nicht, ist es unter[9] zu haben.
Dial-on-Demand
Bei Dial-on-Demand wird eine PPPoE-Verbindung nur im Bedarfsfall aufgebaut. Sind Daten aus dem Internet zu holen, baut der Pppd die Verbindung ohne Zutun des Benutzers auf und beendet sie wieder, nachdem eine gewisse Zeit lang keine Daten über die Leitung geflossen sind. Diese Lösung bietet sich insbesondere bei Routerlösungen und Flatrates an.
Auf jeden Fall sollte man in den ersten Tagen das System sehr genau beobachten, ob auch wirklich nur bei Bedarf eine Verbindung aufgebaut wird. Ist das System nicht sauber konfiguriert, kann es passieren, dass Sendmail oder auch Samba ständig Nameserver-Anfragen ins Netz stellen und damit unnötig Gebühren verursachen.
Dial-on-Demand wird üblicherweise gleich beim Booten des Systems über ein Init-Skript gestartet. Die Init-Skripte für SuSE Linux und Red-Hat-basierte Distributionen können von unserem FTP-Server geladen werden. Unter SuSE wird das Skript nach »/etc/rc.d/adsl« kopiert, Red-Hat-User müssen es unter »/etc/ rc.d/init.d/adsl« abspeichern. Anschließend wird das Skript mit »chmod« ausführbar gemacht.
Bei SuSE werden alle Optionen, die zum Starten der Init-Skripte nötig sind, in der zentralen Konfigurationsdatei »/etc/rc .config« gespeichert, weshalb man an diese Datei noch folgende Zeilen anhängen muss:
# Start PPPoE-Connection (yes/no)? START_ADSL=yes # Device which is connected to your ADSL-Modem (eth0, eth1 etc.)? ADSL_DEVICE=eth1
Die Init-Skripte startet man beim Booten über verschiedene Links, so lässt sich für jeden Runlevel individuell entscheiden, ob der Dienst auch gestartet werden soll. Eine einfache Möglichkeit bietet das Programm Tksysv oder sein KDE-Pendant KSysv, mit denen bequem per Maus die einzelnen Runlevel konfiguriert werden können.
Unter Red Hat und ab SuSE 7.2 ist es sinnvoll, die ADSL-Verbindung in den Runlevels 3, 4 und 5 zu starten, Nutzer älterer SuSE-Versionen müssen die Verbindung in den Runlevels 2 und 3 starten. Da bei Dial-on-Demand im Zusammenhang mit dem dynamischen Vergeben der IP-Adresse Fehler beim Verbindungsaufbau auftreten können, ist noch das Kernel-Patch für die Vergabe von dynamischen IPs zu aktivieren:
echo 2 > /proc/sys/net/ipv4/ip_dynaddr
Dieser Befehl muss nach jedem Booten erneut ausgeführt werden. Dazu setzt man bei SuSE in der Datei »/etc/rc.config« die Variable »IP_DYNIP« einfach auf »yes«, unter Red Hat fügt man den Echo-Befehl an die »etc/rc.d/rc.local« an. Damit wird er am Schluss des Bootprozesses ausgeführt.
Bei Dial-on-Demand ist vor der ersten Verbindung der dynamisch zugewiesene Nameserver ja noch nicht bekannt. Aus diesem Grund muss man den Nameserver des Providers zunächst von Hand in »/etc/resolv.conf« eintragen, damit auch die erste Anfrage ins Netz schon korrekt an den Nameserver übermittelt und dadurch eine Verbindung automatisch aufgebaut wird.
Die IP-Adressen der Nameserver sind beim Provider zu erfahren. Alternativ kann man bei aktivierter Debug-Option des Pppd auch zunächst eine Verbindung von Hand aufbauen und dann in »/var/log/messages« die beiden Nameserver-Adressen des Providers herausfinden. Die beiden IP-Adressen trägt man in »/etc/resolv.conf« ein. Die Option »usepeerdns« in »/etc/ppp/ options« bleibt natürlich trotzdem aktiv, damit bei der zweiten Anfrage die vom Provider zugewiesenen Adressen verwendet werden. Zu guter Letzt ist noch die Option »demand« in »/etc/ppp/ options« zu aktivieren. Nach einem Neustart oder als Root ausgeführtem
/etc/rc.d/adsl restart
(unter Red Hat: »/etc/rc.d/init.d/adsl restart«) startet der Pppd. Bei der nächsten Anfrage ins Netz wird die Verbindung automatisch aufgebaut:
ping -c10 194.25.2.129
Nach der über »idle« in »/etc/ppp/options« eingestellten Timeout-Zeit wird die Verbindung automatisch wieder beendet, sofern keine Daten mehr über die ADSL-Leitung fließen.
Abbildung 6: Runlevel-Konfiguration mit Tksysv.
| Tabelle 1: DSL-Angebote im Überblick | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Stand: September 2001 Anmerkungen: 1) Je nach Telefonanschluss beziehungsweise Tarif 2) Zwischen den Tarifen kann bei jedem erneuten Login gewechselt werden 3) Der Zugang erfolgt über einen Hardware-Router und ist betriebssystemunabhängig 4) Bietet ADSL auch mit Anlagen- und Multiplex-Anschlüssen an 5) Zurzeit lediglich Beschreibungen für den analogen Zugang verfügbar 6) Nach Anwenderberichten in Newsgroups und auf Adsl4linux.de 7) Mindestvertragslaufzeit 12 Monate: 99 Mark im 1.-6. Monat, danach 119 Mark 8) Erhöhte Verfügbarkeit von 98,75% 9) Erlaubnis zum Anschluss von fünf Clients 10) Laut Webseite 11) 384 KBit/s optional 12) Je nach Vertragslaufzeit und gebuchten Telefon-Freiminuten |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kostenkontrolle
Auch wenn Flatrates gerade im Zusammenhang mit ADSL-Anschlüssen immer beliebter werden, bieten viele Provider inzwischen auch nach Übertragungsvolumen abrechnende Tarife an. Vereinzelt gibt es auch zeitbasierte Angebote, die meist einige Freistunden in der Grundgebühr enthalten. Da ist es wichtig, den Überblick über das bereits verursachte IP-Volumen oder die bereits verbrauchte Online-Zeit zu behalten. Mit Onlinecalc[10] steht ein komfortables Tool für die Kommandozeile bereit, das die Daten übersichtlich ausgeben kann. Wer die Kommandozeile lieber meidet und die Daten auch übers lokale LAN zur Verfügung stellen will, findet unter[11] eine PHP-Version des Tools, mit der die Statistiken bequem per Browser abrufbar sind.
Die Installation ist denkbar einfach und wird im mitgelieferten Readme ausführlich beschrieben. Lediglich die Installation des Skripts und ein kurzer Aufruf aus der Datei »/etc /ppp/ip-up« sind erforderlich, um vollständige Kostenkontrolle über seine Internetverbindung zu erhalten.
Das Tool versteht mehrere Optionen, mit denen man sich die Daten für beliebige Zeiträume ausgeben lassen kann. Die Daten für Juli sind zum Beispiel mit folgendem Befehl abrufbar:
onlinecalc 07.2001 PPP-Usage Connects: 1023 Online-Time: 116.03 h MB send: 555.42 MB MB received: 1929.56 MB Transfer-Volume: 2484.98 MB
| Tabelle 2: Unterschiedliche PPP-Lösungen | |||||
| CPU | Last Dial | On Demand | Installation | Stabilität | Kernel |
| RP-PPPoE m. sync.1) | gering | nein2) | einfach | hoch | ab 2.0.36 |
| RP-PPPoE o. sync. | mittel | ja | sehr einfach | hoch | ab 2.0.36 |
| pppoed 2.2.x | gering | nein2) | einfach | mäßig hoch | nur 2.2.x |
| PPPoE 2.4.x | gering | ja | aufwändig | mäßig3) | nur 2.4.x |
| 1) Mit Sync-Option und Kernelmodul HDLC Line Discipline 2) Nur mit Patch oder Diald (siehe Text) 3) Auf Grund des Entwicklungsstands kann es je nach Patch zu Problemen kommen |
|||||
Fazit
Trotz der im Gegensatz zum RP-PPPoE-Treiber etwas komplizierteren Installation, bei der auch einige Kenntnisse in der Kernel- und Kernelmodul-Installation sowie beim Patchen von Programmen erforderlich sind, wird die Zukunft der PPPoE-Unterstützung sicherlich beim Kernel-Treiber liegen. Aus Performancegründen und auch bei der sauberen Integration neuer Netzwerkprotokolle ins Linux-System macht dieses Treiberkonzept direkt im Kernel Sinn.
Aber auch die Integration in den PPP-Daemon durch dessen neue Plug-in-Option vervollständigt den Eindruck des durchdachten und sehr strukturierten Konzepts des neuen PPPoE-Treibers. Lediglich die zurzeit noch komplizierte Installation und auch die teilweise auftretenden Instabilitäten sowohl bei der Installation als auch im laufenden Betrieb dürften heute noch gegen den PPPoE-Kernel-Treiber sprechen.
Aber mit jedem neu veröffentlichten Patch arbeitet der Treiber stabiler, so dass er in naher Zukunft wohl auch in die Stable-Rubrik eingestuft werden könnte. Dann dürfte auch das PPPoE-Plug-in direkt in den Pppd integriert werden. (ok)
| Infos |
|
[1] "Surferparadies: ADSL unter Linux", Linux-Magazin 11/00 [2] RFC 2516: PPP Over Ethernet (PPPoE), [http://www.rfc-editor.org/rfc/rfc2516.txt] [3] ADSL4Linux: ADSL-Support unter Linux, [http://www.adsl4linux.de] [4] Pppd-Patch: DoD bei sync. Datenübertragung, [http://www.adsl4linux.de/pub/misc/pppd_patch/] [5] DSL mit Kernel 2.2, Linux User 9/01 [6] Kernel-Howto: [http://linuxdocs.org/HOWTOs/Kernel-HOWTO.html] [7] PPPoE-Patch für den Pppd: [http://big.uwaterloo.ca/~mostrows/] [8] Quelltexte des Pppd: [ftp://cs.anu.edu.au/pub/software/ppp/] [9] Programme mit Root-Rechten ausführen: Sudo: [http://www.courtesan.com/sudo/] [10] Onlinecalc: PPP-Statistiken: [http://www.adsl4linux.de/pub/misc/onlinecalc/] [11] Onlinecalc/PHP: [http://www.rootdir.de/online/] |
Copyright © 2001 Linux New Media AG
