SuSE GmbH

SuSE Support-Datenbank

Titel: Checklist PPP-Verbindung zum Provider analog

----------

Übersicht o Stichwortsuche o History o Versionen o Kategorien o Alle Artikel

----------

Checklist PPP-Verbindung zum Provider analog

Bezieht sich auf

SuSE Linux: Versionen ab 6.0

Anliegen:

Sie möchten ein Verbindung mit dem Modem zu Ihrem Internet Provider herstellen doch es klappt nicht so recht. Dieser Artikel stellt eine kleine Checkliste für auftretende Probleme dar.

Vorgehen:

Modem
Als erstes muss Ihr Modem angesprochen werden können. In YaST können Sie unter Hardware in das System integrieren den symbolischen Link /dev/modem erzeugen. Dieser zeigt dann auf /dev/ttyS0 für COM1.
Der Befehl cat /dev/modem darf keinen IO Error bringen, sonst haben Sie ein Problem mit der seriellen Schnittstelle. Überprüfen Sie in dem Fall ob das Modul serial.o geladen ist:
/sbin/lsmod
Module                  Size  Used by
serial                 18196   0 (autoclean)
Im SuSE Kernel ist der serielle Treiber als Modul konfiguriert, wenn Sie einen eigenen Kernel haben ist er eventuell fest einkompiliert oder Sie haben Ihn vergessen.
Wenn Sie ein internes Modem haben so lesen Sie bitte den SDB Artikel Internes Modem und Terminaladapter.
Beachten Sie auch die Problematik der Winmodems.
Es gibt ein sehr gutes englisches Modem-HOWTO

Wählprogramm
Jedes Wählprogramm (Dialer) ist ein mehr oder (meist) weniger intelligentes Frontend zum pppd. Dieser wird vom Dialer mit verschiedenen Optionen aufgerufen und die Verbindung hergestellt.
Die Chat-Prozedur (das eigentliche anwählen) erledigen die Programme meist selbst, obwohl der pppd ein eigenes Chat-Programm mitliefert. Mit diesem Programm wird das Modem initialisiert und die Verbindung hergestellt. Die geht mit den meisten analogen Modems gut, ISDN Terminaladapter brauchen aber eine spezielle Behandlung in Form von Initstrings. Dies kann nicht jeder Dialer korrekt umsetzen.

Der Anwahlvorgang geht folgendermassen vor sich:

Das Modem wird mit den angegebenen Initstrings initialisiert. Dann wird der Befehl zum wählen gegeben und auf CONNECT vom Modem gewartet. Jetzt wird bei PAP/CHAP Authentifizierung der pppd gestartet. Bei einem Terminallogin wie zum Beispiel bei Compuserve oder einigen Uni's wird im Textmodus der Login mit Benutzername und Passwort durchlaufen. Danach wird mit einer Befehlssequenz das PPP Protokoll gestartet. Diese ganze Prozedur müssen Sie bei Ihrem Provider erfragen.
Viele Fehler bei der Anwahl sind auf unpassende Modeminitialisierungen zurückzuführen. Wenn das Modem unter Windows funktioniert dann lesen Sie unseren Artikel Modem-Initialisierungssequenz aus Windows
Ist auf der Gegenseite das PPP Protokoll gestartet wurden (PAP/CHAP automatisch, Terminallogin mit Befehl) so wird auch auf Ihrem Rechner der pppd gestartet.
Dazu ruft der Dialer den pppd mit verschiedenen Verbindungsrelevanten Optionen auf. Der pppd liest aber zusätzlich noch einige Optionsdateien ein die vom Dialer intelligenterweise völlig ignoriert werden :(
Diese sind im einzelnen:

/etc/ppp/options          (immer, Datei muss da sein)
~/.ppprc
/etc/ppp/options.ttyname  (Ist die Schnittstelle)
Erst dann werden die Optionen an der Kommandozeile abgearbeitet. Folgende Optionen müssen/sollten bei einer normalen Providerverbindung da sein:
Modemspezifisch:
/dev/modem           Schnittstelle festlegen
38400                Portspeed festlegen
crtscts              Hardwareflowcontrol
lock                 Gerät blockieren
modem                
idle 1200            nach X Sekunden auflegen

TCP/IP spezifisch
noipdefault          
defaultroute         Defaultroute nach draussen setzen
noipx                kein IPX über Modem zulassen
ipcp-accept-local    vom Provider eigene IP zuweisen lassen
ipcp-accept-remote   vom Provider IP für Gegenstelle zuweisen lassen
usepeerdns           DNS Server vom Provider anfordern,
                     muss extra gehandelt werden

Authorisierung
user arcor           entsprechender User aus der pap-secrets oder 
                     chap-secrets
noauth               Gegenstelle soll nicht nicht bei uns anmelden
hide-password        Passwort nicht ins Log schreiben

debug                Meldungen ins syslog /var/log/messages schreiben
detach               pppd sofort in den Hintergrund stellen
nodetach             pppd nicht in den Hintergrund schicken,
                     bleibt an der Console
Diese Optionen müssen mindestens verwendet werden. Oft sind in den genannten Dateien noch andere Optionen aktiv. Diese muss man mit einer Raute # auskommentieren.
Folgende Optionen machen Probleme:
proxyarp             Ethernet bezogen, für Einwahlserver interessant
ipx*                 IPX über PPP ist möglich aber kaum verbreitet
Um zu überprüfen welche Optionen aktiv sind gibt man den Befehl
grep -v ^# /etc/ppp/options | grep -v ^$

ein. Dies listet alle aktiven Optionen auf. Die Dateien ~/.ppprc und /etc/ppp/options.ttyXX existieren meist nicht und sind nur für Einwahlserver interessant.
Nach erfolgreicher Authentifizierung wird dann /etc/ppp/ip-up ausgeführt. Hier kann man die erhaltene IP und DNS IP's auswerten und verarbeiten.
Dann werden noch die PPP Module ppp_deflate und bsd_comp geladen und die Verbindung läuft mit Kompression ab. In der /etc/conf.modules müssen folgende Zeilen stehen:
alias ppp-compress-21          bsd_comp
alias ppp-compress-24          ppp_deflate
alias ppp-compress-26          ppp_deflate
Zum beenden der Verbindung schickt man dem pppd ein SIGINT:
DEVICE=ppp0
kill -INT `cat /var/run/$DEVICE.pid`
Hat man die Option "nodetach" angegeben reicht ein STRG+c zum abbrechen.

Beachten Sie das das Dummy Device nicht aktiv sein sollte, es "stiehlt" Ihnen die Defaultroute:
/sbin/ifconfig
Stoppen können Sie es mit
 
/sbin/init.d/dummy stop 
Wenn Sie in der /etc/rc.config die Variable SETUPDUMMYDEV="no" setzen wird es beim nächsten Reboot auch nicht neugestartet.

Zugriffsrechte
Man möchte nicht (nie!) als Root arbeiten. Um einem Benutzer das wählen zu ermöglichen muss man ihn den Gruppen dialout und uucp hinzufügen. In der Benutzerverwaltung von YaST geschieht das automagisch wenn man die entsprechende Option "darf Modem benutzen" ankreuzt. Zum anzeigen der aktuellen Gruppenzugehörigkeiten benutzt man den Befehl `id':
id
uid=500(olaf) gid=100(users) Gruppen=100(users),14(uucp),16(dialout)
Weiterhin müssen noch einige andere Dateien und Verzeichnisse entsprechende Zugriffsrechte haben:
Siehe SDB Artikel Kommunikations-Programme als Benutzer ausführen


$ ls -l /dev/modem 
lrwxrwxrwx  1 root root        10 Sep 26 03:42 /dev/modem - /dev/ttyS0
$ ls -lL /dev/modem 
crw-rw-- --  1 root uucp    4,  64 Sep 20 00:51 /dev/modem
$ ls -alL /etc/ppp/      
-rwxr-x---  1 root dialout    469 Mar  6  1998 auth-down
-rwxr-x---  1 root dialout    469 Mar  6  1998 auth-up
-rw-------  1 root dialout     78 Jul 30 00:51 chap-secrets
-rw-r-----  1 root dialout    283 May 29  1997 ioptions
-rw-r-----  1 root dialout   1369 Oct 27  1997 ioptions.YaST
-rwxr-x---  1 root dialout   4524 Jul 29 16:57 ip-down
-rwxr-x---  1 root dialout   4524 Jul 29 16:57 ip-up
-rw-r-----  1 root dialout   5870 Jul 30 00:51 options
-rw-r-----  1 root dialout   1371 Sep 17 20:20 options.ippp0
-rw-------  1 root dialout   1119 Sep 28 16:12 pap-secrets
drwxr-x---  2 root dialout   4096 Sep 28 16:26 peers
$ ls -alL /etc/ppp/peers/
-rw-r-----  1 root dialout    289 Sep 28 16:26 arcor
-rw-r-----  1 root dialout    141 Sep 28 16:13 arcor.chat
-rw-r-----  1 root dialout    301 Sep 28 16:24 cisv2
-rw-r-----  1 root dialout    252 Sep 28 16:21 cisv2.chat
-rw-r-----  1 root dialout    289 Sep 28 16:25 compuserve
-rw-r-----  1 root dialout    241 Sep 28 16:15 compuserve.chat
-rw-r-----  1 root dialout     19 Sep  3 07:53 wvdial
$ ls -alL /usr/sbin/pppd
-rwsr-sr--  1 root dialout 135636 Jul 30 00:51 /usr/sbin/pppd
$ ls -alL /usr/bin/wvdial*
-rwxr-xr-x  1 root root    109376 Sep  3 07:53 /usr/bin/wvdial
-rwxr-x---  1 root dialout   3278 Sep  3 07:53 /usr/bin/wvdial-write-section
-rwxr-xr-x  1 root root     27588 Sep  3 07:53 /usr/bin/wvdial.lxdialog
-rwxr-x---  1 root dialout  28584 Sep  3 07:53 /usr/bin/wvdial.tcl
-rwxr-xr-x  1 root root     67744 Sep  3 07:53 /usr/bin/wvdialconf
$ ls -alL /var/lock/      
drwxrwxr-x  3 root uucp      4096 Sep 26 03:43 .
drwxr-xr-x  3 root root      4096 Sep 25 16:49 subsys
$ ls -alL /var/run/ 
drwxrwxr-x  3 root uucp      4096 Sep 28 14:53 .
-rw-rw-r--  1 root tty      19200 Sep 28 14:57 utmp

Ein einfaches Setup für Arcor Internet by Call sieht zum Beispiel so aus (PAP Authorisierung):
/etc/ppp/pap-secrets
arcor	*	internet
/etc/ppp/peers/arcor
#
# Dial to Arcor Internet by Call, 01070 0192070 
# user arcor
# pass internet
#
connect '/usr/sbin/chat -f /etc/ppp/peers/arcor.chat'
user arcor

/dev/modem
38400
crtscts
lock
modem

noipdefault
defaultroute
noipx
ipcp-accept-local
ipcp-accept-remote
usepeerdns

#detach
nodetach

debug
/etc/ppp/peers/arcor.chat
TIMEOUT 40
ABORT "NO CARRIER"
ABORT BUSY
ABORT "NO DIALTONE"
ABORT ERROR
ABORT BLACKLISTED
"" +++ATZ0
TIMEOUT 44
OK AT&FX3
OK ATDT0010700192070
CONNECT
Die Nameserver bei Arcor sind 145.253.2.11, siehe unsere Liste in IBC Anbietern

Wie startet man die Verbindung nun? Mit der Version 2.3.x der pppd ist das ganz einfach:
/usr/sbin/pppd call arcor
Die Option arcor ist eine Optionsdatei in /etc/ppp/peers. Der Name ist beliebig. In dieser Datei steht noch der Befehl
connect '/usr/sbin/chat -f /etc/ppp/peers/arcor.chat'
Dieser lässt den pppd das eigene Chatprogramm verwenden und die Werte aus der angegebenen Datei lesen. Wenn Sie -vf statt -f verwenden wird der Anwahlvorgang ins syslog geschrieben. Dann sehen Sie ob hier eventuell schon etwas schief läuft.

----------

Stichwörter: ANALOG, PPP, MODEM, PROVIDER, ISP

----------

Kategorien: PPP

----------

Übersicht o Stichwortsuche o History o Versionen o Kategorien o Alle Artikel

----------

SDB-olh_ppp_check, Copyright SuSE GmbH, Nuremberg, Germany - Version: 28. Sep 1999
SuSE GmbH - Zuletzt generiert: 18. Nov 1999 23:25:01 by olh with sdb_gen 1.00.0