Linux-Arbeitskreis Hamburg

T-DSL mit pppoE

Grundlagen

ADSL (Asymmetric Digital Subscriber Line) ist ein Verfahren, bei dem man Datenübertragungsraten von mehreren MBit/s über normale Telefonleitungen realisieren kann. Die mögliche Übertragungsrate ist aber stark von der Leitungsqualität und dem Abstand zur nächsten Vermittlungsstelle abhängig.

In Zukunft werden mehrere Telefonanbieter ADSL anbieten. Zur Zeit ist das am weitesten verbreitete Angebot das der Telekom, bei dem eine Verbindung zu T-Online aufgebaut wird.
Das ADSL-Angebot der Telekom nennt sich daher auch T-DSL. Hierbei wird von einem ISDN-Anschluss ausgehend eine Verteilerkästchen (Splitter) vor den NTBA gesetzt. Die beiden ISDN-Leitungen sind weiterhin voll nutzbar, sogar zeitgleich mit T-DSL. An den Splitter wird ein spezielle Modem angeschlossen, das die Telekom ebenfalls liefert.

Dieses T-DSL-Modem verfügt über einen Ethernet-Anschluss, der mit einer Netzwerkkarte im jeweiligen Rechner verbunden wird (PPP over Ethernet). Auf diesem Rechner steht dann einen Bandbreite vom etwa 768 kbit/s (im Download) zur Verügung.

Zum T-DSL-Angebot gehört eine T-Online Zugang Speed 50 (50 Freistunden im Monat). Alles zusammen kostet etwa 200 DM monatlich. Zieht man davon die ISDN-Grundgebühr ab (hätte man sonst ja auch gehabt), so fallen für die 50 Stunden Kosten von 150DM, also 3DM/h (5Pf/Min) an. Das ist kaum mehr, als man bei den üblichen ISDN-Zugängen bezahlt und das bei 12-facher Bandbreite.

Der Anschluss eines Linux-Servers mit einer aktuellen S.u.S.E. Version (>6.1) ist kein Problem und wird in dem folgenden Text beschrieben. Mit älteren Versionen (5.x) wurde die Installation nicht getestet. Zur T-DSL Installation gibt es auch einen Text von S.u.S.E und eine Sammlung von Beschreibungen.

Der folgende Text beschreibt eine Installation, wie sie von Bernd Burre und Uwe Debacher auf einem System mit S.u.S.E. 6.1 vorgenommen wurde.

Benötigte Software

Bei S.u.S.E. 6.3 sind alle benötigten Softwarekomponenenten auf der Distribution vorhanden. Bei älteren Versionen (bei mir 6.1) muss ein Kernel-Update gemacht werden und anschließend das Paket pppoe installiert werden.

Der Linux-Kernel muss sehr aktuell sein (mindesten 2.2.13) und spezielle Patches für das pppoe enthalten. Das Paket pppoe gilt als experimentell. Daher sollte man versuchenn eine möglichst aktuelle Version zu bekommen.
Bei dem S.u.S.E. 6.1 war auch der pppd zu alt  (Version 2.3.5) uns mußte aktualisiert werden.

Kernel-Update

Das rpm-Format wurde von Version zu Version leicht verändert, so dass für Updates das gz-Format zur Zeit vorzuziehen ist. Das grosse File wird irgendwo, z.B. im Ordner /tmp, auf dem Linux-Rechner abgelegt und folgendermaßen entpackt:

cd /usr/src
tar xvfz linux-2.2.13.SuSE.tgz

Danach muss der Softlink /usr/src/linux (falls vorhanden) auf das neue Verzeichnis gesetzt werden:

rm linux
ln -s linux-2.2.13.SuSE linux

Danach wird in diesen Ordner gewechselt und ordentlich aufgeräumt:

cd linux
make mrproper

Danach muß der Kernel konfiguriert werden. Leider kann man nicht einfach die alte .config Datei in den neuen Ordner kopieren, dann gingen die neuen Einstellmöglichkeiten verloren. Man kann sich die alte Konfigurationsdatei aber ausdrucken und dann die Einstellungen entsprechend übernehmen oder unser Datei nehmen und anpassen. Unsere Datei müßte man dann z.B. in den Ordner /tmp bringen und dann mittels:

cp /tmp/config /usr/src/linux/.config

in den neuen Ordner kopieren. Wichtig ist auch der Punkt vor dem Dateinamen.

Anschließend (oder auch gleich) muss man dann den Kenerl konfigurieren und kompilieren.

Einen kleinen Unterschied zu der dortigen Beschreibung besteht darin, dass man die Module erst mit dem neuen Kernel kompilieren sollte. Also folgender Ablauf:

Danach müßte sich das System mit dem neuen Kernel melden.

PPPoE installieren und konfigurieren

Für T-DSL muss der Linux-Rechner über eine Ethernet-Karte verfügen, die normal in das System eingebunden und funktionstüchtig ist. Sie muss also bei ifconfig als eth0 bzw. eth1 auftauchen. Die zugeordnete IP spielt keine Rolle.

Bei S.u.S.E. 6.3 befindet sich PPPoE 4.2 im Paket n2, das sollte aber laut Beschreibung von S.U.S.E. für T-Online nicht verwendet werden, muss also über Yast erst deinstalliert werden.

Bei allen Versionen muss das aktuelle Paket wie folgt installiert werden (die Beschreibung bezieht sich auf das Paket 0.42 (s.o.), welches auch von S.u.S.E. angeboten wird als rpm). Wir gehen wieder davon aus, dass das Archiv in /tmp liegt.

cd /tmp
tar xvfz pppoed-0.42.tgz 
cd pppoed-0.42
make
cp pppoed  /usr/sbin

Nun wird das zugehörige das Device /dev/pppox0 eingerichtet mittels

mknod /dev/pppox0 c 144 0

Die letzten beiden Schritte kann man auch ersetzen durch

make install

Sollte es schon ein Device /dev/pppox0 geben (von der S.u.S.E. Installation), so wird dieses durch make realclean beseitigt.

Und noch die /etc/modules/conf um die Zeile

alias char-major-144 pppox

erweitert.

Soweit die Installation. Zur Konfiguration müssen noch die Dateien

/etc/ppp/options
/etc/ppp/pap-secrets

für den T-Online-Zugang eingerichtet werden.

Der T-Online Loginname

Der Aufbau des Loginnamens für T-Online ist etwas kryptisch. Er setzt sich zusammen aus:

Zuerst kommt die Anschlusskennung, das ist eine 12-stellige Zahl, die auf dem Schreiben von T-Online eine Zeile vor dem Kennwort steht. Danach folgt die Anschlussnummer (inclusive Vorwahl). Falls der Zugang nicht an eine Telefonnummer gebunden ist, heußt dies auch T-Online-Nummer. Es ist die erste, meist 12-stellige Zahl auf dem Formular. Falls die Anschlussnummer kürzer ist als 12 Stellen, dann muß noch die Mitbenutzernummer in der Form #001 folgen. Man sollte die Mitbenutzernummer immer einfach anhängen, auch bei 12 stelligen Anschlussnummern.

Das notwendige Kennwort ist auch auf dem Schreiben von T-Online zu finden, eine 8stellige Zahl.

Beispiel:
Anschlusskennung: 000412345678
Anschlussnummer: 040 4711

ergibt: 0004123456780404711#001

/etc/ppp/options

# File: /etc/ppp/options
# Date: 8.2.2000
##########################################
# this is a must
user "<loginname>#0001@t-online.de"
sync
local
nocrtscts
noauth
usepeerdns
mru 1490
mtu 1490
# this is recommended
defaultroute
hide-password
nodetach
noipdefault
ipcp-accept-local
ipcp-accept-remote
asyncmap 0
noproxyarp
noipx
#
# switch off all compressions
# this is a must
noaccomp
nopcomp
# this is recommended
novj
novjccomp
nobsdcomp
nodeflate
noccp
# debug
idle 900

/etc/ppp/pap-secrets

# File	:	/etc/ppp/pap-secrets
# Date	:	8.02.2000
# Subj.	:	Secrets for authentication using PAP
##############################################################################
# client	server	secret			IP addresses
"<loginname>#0001@t-online.de"	*	"<Kennwort>"

PPP aktualisieren

Beim Versuch den PPPoE zu starten bekamen wir eine Fehlermeldung vom pppd, der mit dem Schalter sync in der Datei Options nichts anfangen konnte. Wir haben dann einfach eine aktuelle Version des PPPD installiert. Dazu geht man folgendermaßen vor (Archiv wieder in /tmp):

cd /tmp
tar xvfz ppp-2.3.10.tar.gz
cd ppp-2.3.10
./configure
make
make install

Danach steht dann das aktualisierte Programm zur Verfügung.

Verbindung starten

Gestartet wird die Verbindung mittels

/usr/sbin/pppoed -I eth0  (oder -I eth1 je nach Hardware)

Gestoppt wird er durch

killall -TERM pppoed

Zumindest beim ersten Verbindungsaufbau sollte man auf einer zweiten Konsole mittels

tail -f /var/log/messages

verfolgen, ob der Verbindungsaufbau klappt. Eventuell kann es für die Initialisierung Netzwerkkarte nach Anschluss des T-DSL Modems wichtig sein das Netzwerk mittels

init 1 
init 2

neu zu starten, oder den Rechner gar neu zu starten.

Wir haben uns für den Verbindungsab und -aufbau das übliche Script /root/bin/winshuttle angepasst, so dass die Verbindung auch mit den Webtools geschaltet werden kann.

#!/bin/sh
# File: /root/bin/winshuttle
# Date: 9.2.2000
###############################################

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/root/bin
INTERFACE="eth0"
test=`/sbin/route -n | grep " ppp0"`
test="$?"
case $1 in
        start)
                if [ $test -ne 0 ]
                then echo "T-DSL wird gestartet"
                pppoed -I $INTERFACE
                fi
        ;;
        stop)
                echo "T-DSL wird gestoppt"
                killall pppoed
        ;;
        *)
                echo "Benutze $0 start/stop"
        ;;
esac
exit 0

Und nun auf ins Netz, Downloads mit 60kByte/s bringen deutlich mehr Spass, als solche mit 7kByte/s.


Kritik, Anregungen und Ergänzungen willkommen. Zusammengestellt von Uwe Debacher, letzte Änderung am 27.01.2006