Einrichten von DSL unter Slackware 9.0
Inhalt
- Alles richtig verkabeln
- Installation von PPPoE
- Installation des pppd
- Netzwerk-Interface aufsetzen
- pppd konfigurieren
- Testen der Verbindung
- Unterstützung von PPP durch den Kernel
- 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
/etc/ppp/pap-secrets
/etc/ppp/options
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 :-)