GästebuchIhr Eintrag in unser Gästebuch KontaktNehmen Sie Kontakt mit den Autoren auf ArchivAlle Unixwerk- Artikel seit 2003
15. Juli 2003

Einrichten von DSL unter Slackware 9.0

Inhalt

  1. Alles richtig verkabeln
  2.  Installation von PPPoE
  3.  Installation des pppd
  4.  Netzwerk-Interface aufsetzen
  5.  pppd konfigurieren
  6.  Testen der Verbindung
  7.  Unterstützung von PPP durch den Kernel
  8.  Starten des pppd

 

Dieses Dokument beschreibt die Einrichtung von T-DSL ohne den Kernel-PPPoE-Support (User Mode).

 

I. Alles richtig verkabeln

Voraussetzung für das Nutzen von DSL über PPPoE (PPP over Ethernet) ist eine Netzwerkkarte, die exklusiv für die Verbindung mit dem DSL-Modem zur Verfügung steht. Dies muss nicht die einzige Netzwerkkarte sein, die in den Rechner eingebaut ist.

Die Netzwerkkarte (100 MBit, RJ45) wird mit einem normalen (nicht gekreuzten) Cat-5-Kabel mit der LAN-Buchse des DSL-Modems verbunden. Auf der anderen Seite wird das DSL-Modem mit dem Splitter mit eben solchem Kabel verbunden.

Zu diesem Zeitpunkt sollten an dem DSL-Modem (im Falle eines Teledat 331 LAN) drei grüne Lämpchen leuchten:
- für Power
- für Status und
- für DSL.

 

II. Installation von PPPoE

Zunächst überzeugt man sich, ob das PPPoE-Paket installiert ist. Dies geschieht etwa so:

 darkstar# ls /var/adm/packages/ | grep rp-pppoe
 rp-pppoe-3.5-i386-1

Ist die Ausgabe wie oben, so ist das Paket bereits installiert. Wenn nicht, muss es nachinstalliert werden. Dazu wird die Slackware-CD eingelegt und in den Verzeichnisbaum eingehängt:

 darkstar# mount /dev/cdrom /cdrom
 darkstar# cd /cdrom/slackware
 darkstar# installpkg n/rp-pppoe-3.5-i386-1.tgz
 Installing package rp-pppoe-3.5-i386-1 ([optional])... 
 PACKAGE DESCRIPTION:
 rp-pppoe: rp-pppoe (Roaring Penguin PPPoE client)
 rp-pppoe:
 rp-pppoe: PPPoE (Point-to-Point Protocol over Ethernet) is a protocol used by
 rp-pppoe: many ADSL Internet Service Providers. Roaring Penguin has a free
 rp-pppoe: client for Linux systems to connect to PPPoE service providers.
 rp-pppoe:
 rp-pppoe: The client is a user-mode program and does not require any kernel
 rp-pppoe: modifications. It is fully compliant with RFC 2516, the official
 rp-pppoe: PPPoE specification.
 rp-pppoe:

Haben Sie die Slackware-CD nicht zur Hand, kann das Paket auch über ftp://ftp.slackware.com oder beispielsweise über den österreichischen Mirror ftp://ftp.slackware.at unter slackware-9.0/slackware/n bezogen werden.

 

III. Installation des pppd

Neben dem Roaring Penguin PPPoE client braucht man auch den ganz normalen pppd, der eigentlich für einen analogen Modem-Zugang verwendet wird.

 darkstar# ls /var/adm/packages | grep -w ppp
 ppp-2.4.1-i386-2

Falls (i.Ggs. zum obigen Beispiel) keine Ausgabe erscheint, muss dieser wie pppoe aus der n-Serie von Slackware nachinstalliert werden:

 darkstar# installpkg n/ppp-2.4.1-i386-2.tgz
 Installing package ppp-2.4.1-i386-2 ([optional])... 
 PACKAGE DESCRIPTION:
 ppp: ppp (Point-to-Point Protocol)
 ppp:
 ppp: The Point-to-Point Protocol (PPP) provides a method for transmitting
 ppp: data over serial links.  It's commonly used for connecting to the
 ppp: Internet using a modem.  This package includes the PPP daemon (pppd),
 ppp: which negotiates with the peer to establish the link and sets up the
 ppp: ppp network interface, and pppsetup, an easy-to-use utility for
 ppp: setting up your PPP daemon.
 ppp:

 

IV. Netzwerk-Interface aufsetzen

Wenn die Netzwerkkarte für die Verbindung mit dem DSL-Modem die einzige Netzwerkkarte im Rechner ist, kann das Slackware-Tool zur initialen Netzwerkkonfiguration genutzt werden:

 darkstar# netconfig

netconfig fragt nacheinander alle wichtigen Punkte ab. Tragen Sie folgendes ein:

  1. hostname:     was Ihnen gefällt, z.B. darkstar
  2. domain name:     ebenfalls frei nach Gusto, z.B. home.de
  3. type of network connection:     static IP
  4. IP address:     irgendeine nicht vergebene, z.B. 192.168.25.2
  5. netmask:     255.255.255.0
  6. gateway address:     leer lassen
  7. Primary name server:     Den Nameserver des Providers, bei freenet z.B. 194.97.3.83

Ist bereits eine Netzwerkkarte für ein lokales LAN in Verwendung, sollte nicht das Slackware-Tool genutzt werden, sondern das Netzwerk-Startskript /etc/rc.d/rc.inet1 angepasst werden. Dort ist bereits alles für eine zweite Netzwerkkarte vorbereitet; gemäß den Beispielen von oben tragen Sie folgendes (fett dargestellt) ein:

 /etc/rc.d/rc.inet1 (Ausschnitt)
 # Edit these values to set up your second Ethernet card (eth1),
 # if you have one.  Otherwise leave it configured to 127.0.0.1,
 # or comment it out, and it will be ignored at boot.
 IPADDR2="192.168.25.2"  # REPLACE with YOUR IP address!

 NETMASK2="255.255.255.0" # REPLACE with YOUR netmask!
 # Or, uncomment the following lines to set up eth1 using DHCP:
 #USE_DHCP2=yes
 # If your provider requires a DHCP hostname, uncomment and edit below:
 #DHCP_HOSTNAME2="CCHOSTNUM-A"

Der Nameserver des Providers muss in die Datei /etc/resolv.conf eingetragen werden:

 /etc/resolv.conf
 search home.de
 nameserver 194.97.3.83

Die Einträge sind wieder dem obigen Beispiel entlehnt.

Es wird das Netzwerk neu gestartet:

 darkstar# /etc/rc.d/rc.inet1

Zu diesem Zeitpunkt muss dann auch das vierte Lämpchen am DSL-Modem leuchten, das für die 100MBit-Verbindung zur Netzwerkkarte steht.

 

V. pppd konfigurieren

Zwei Konfigurationsdateien müssen für den Betrieb des DSL-Modems angepasst werden

  1. /etc/ppp/pap-secrets
  2. /etc/ppp/options
ad 1.
In die Datei /etc/ppp/pap-secrets werden Benutzername und Passwort eingetragen. Beides entnehmen Sie bitte den Unterlagen Ihres Providers. Bei freenet ergibt sich der Benutzername aus Realm und Mitgliedername, das Passwort aus PIN und Passwort, andere Provider verwenden andere Schemata. So siehts aus:

 /etc/ppp/pap-secrets
 "Benutzername" * "Passwort"

ad 2.
Die Optionen für den pppd werden in die Datei /etc/ppp/options geschrieben. Die mitgelieferte kann komplett durch das Beispiel unten ersetzt werden, da sich diese auf ein normales analoges Modem bezieht.

 /etc/ppp/options
 # Dial on Demand:
 #demand

 connect /bin/true

 ipcp-accept-remote
 ipcp-accept-local

 # DNS-Server vom Provider beziehen
 #usepeerdns

 # Auflegen nach 180s (3min)
 idle 180

 # IP-Adresse vom Provider beziehen
 noipdefault

 # Default-Route vom Provider beziehen
 defaultroute

 # Benutzername aus /etc/ppp/pap-secrets

 user "Benutzername"
 hide-password

 # Modem-Kompression abschalten
 noaccomp
 nopcomp
 novj
 novjccomp
 nobsdcomp
 nodeflate
 noccp

 # Handshake aus
 nocrtscts

 local
 noauth

 lcp-echo-interval 10
 lcp-echo-failure 3

 lock

 # Debug-Modus. Schreibt viel nach /var/log/messages.
 # Zum Testen einschalten, danach raus.
 #debug

 # Verhindert, dass sich der pppd automatisch in den Hintergrund setzt.
 # Zum Testen einschalten, danach raus.
 #nodetach

 

VI. Testen der Verbindung

Dieser Schritt ist optional und kann zunächst übersprungen werden. Falls aber unter VIII. etwas schief geht, sollte dieser Test nachgeholt werden.

a. Test der Verkabelung:
Geben Sie den Befehl unten ein, um die korrekte Verkabelung von Splitter und DSL-Modem zu testen. Ersetzen Sie eth1 mit eth0, falls Sie nur eine Netzwerkkarte haben.

Es sollte eine Ausgabe wie diese erscheinen:

 darkstar# pppoe -I eth1 -A
 Access-Concentrator: BERX16-erx
 Got a cookie: b5 10 98 e9 86 1e f7 80 33 5d 5a 5b 47 c9 24 d9
 AC-Ethernet-Address: 00:90:1a:10:27:55
 --------------------------------------------------

b. Test der Antwort:
Zum Testen, ob eine Antwort übermittelt wird, kann folgender Befehl abgesetzt werden:

 darkstar# pppoe -T20 -I eth1 -D /tmp/pppoe.log > /dev/null
 darkstar# tail /tmp/pppoe.log 

 00:00:11.937 RCVD PPPoE Discovery (8863) PADT sess-id 4675 length 0
 SourceAddr 00:90:1a:10:27:55 DestAddr 00:40:f4:77:11:53

 00:00:11.937 SENT PPPoE Discovery (8863) PADT sess-id 4675 length 47
 SourceAddr 00:40:f4:77:11:53 DestAddr 00:90:1a:10:27:55
 02 03 00 17 52 65 63 65 69 76 65 64 20 50 41 44   ....Received PAD
 54 20 66 72 6f 6d 20 70 65 65 72 01 04 00 10 b5   T from peer.....
 10 98 e9 86 1e f7 80 33 5d 5a 5b 47 c9 24 d9      .......3]Z[G.$.

Gibt es keinen Fehler, ist alles ok.

 

VII. Unterstützung von PPP durch den Kernel

Einleitend wurde gesagt, dass dieses Dokument den Einsatz vn PPPoE im User-Mode, also ohne einen Kernel-Treiber, beschreibt. Dennoch muss der Kernel das Point-to-Point-Protokoll (PPP) als solches unterstützen. Sollte dies nicht der Fall sein, gibt's beim Start des pppd eine Fehlermeldung:

 darkstar# pppd pty "/usr/sbin/pppoe -I eth1"
 pppd: This system lacks kernel support for PPP.  This could be because
 the PPP kernel module could not be loaded, or because PPP was not
 included in the kernel configuration.  If PPP was included as a
 module, try `/sbin/modprobe -v ppp'.  If that fails, check that
 ppp.o exists in /lib/modules/`uname -r`/net.
 See README.linux file in the ppp distribution for more details.

Die Fehlermeldung weist auf den fehlenden Kernel-Support hin; die Vorschläge zur Problembehebung sollten Sie aber nicht allzu wörtlich nehmen, da sie sich noch auf 2.2er-Kernel beziehen.

Stattdessen suchen Sie in den Boot-Meldungen nach der PPP-Kernelunterstützung:

 darkstar# dmesg | grep -i -w ppp
 PPP generic driver version 2.4.2

Falls i.Ggs. zum obigen Beispiel keine Ausgabe erscheint, sollten die Module nachgeladen werden (falls Sie einen eigenen Kernel kompiliert haben, müssen Sie die Kernelkonfiguration um diese Module erweitern):

 darkstar# modprobe ppp_generic
 darkstar# modprobe ppp_async  
 darkstar# modprobe ppp_synctty

Um die Module nicht jedes Mal von Hand laden zu müssen, können Sie diese in der Datei /etc/rc.d/rc.modules einschalten. Dazu entfernen Sie das Kommentarzeichen vor den entsprechenden Einträgen in der PPP-Sektion der Datei:

 /etc/rc.d/rc.modules (Ausschnitt)
 ## Load PPP:
 ## Check kernel version to determine module names to use
 #if [ "`uname -r | cut -f 1,2 -d .`" = "2.2" ]; then
 #  # This module is for PPP support:
 #  /sbin/modprobe ppp
 #else # assume 2.4 or newer
 #  # This module is for PPP support:
 /sbin/modprobe ppp_generic
 #  # This PPP plugin supports PPP over serial lines:
 /sbin/modprobe ppp_async
 #  # Use this plugin instead for HDLC (used for high-speed leased lines like T1/E1)

 /sbin/modprobe ppp_synctty
 #fi
 ## This module provides compression for PPP (optional):
 ##/sbin/modprobe ppp_deflate

Nun werden die Module automatisch beim Systemstart geladen.

 

VIII. Starten des pppd

Nun kann's losgehen.

Eine eventuell vorhandene Default-Route muss vor dem Start des pppd gelöscht werden, da der pppd den Gateway vom Provider erhält. Haben Sie keine Default-Route definiert (vgl. IV./netconfig), können Sie diesen Teil auslassen.

So wird PPPoE gestartet (Ersetzen Sie ggf. eth1 wieder durch eth0):

 darkstar# route del default
 darkstar# pppd pty "/usr/sbin/pppoe -I eth1"
 Serial connection established.
 Using interface ppp0
 Connect: ppp0 <--> /dev/pts/4
 local  IP address 80.184.110.95
 remote IP address 62.104.190.11
 primary   DNS address 194.97.3.83
 secondary DNS address 62.104.64.3

So - nun sind Sie drin :-)