Außderdem ist PPP im Gegensatz zu SLIP ein definierter Standard ( RFC 1661) und wird von den meisten Internet-Providern wie auch vom Universitäts-Rechenzentrum (für alle Angehörigen der Universität) und vom Informatik-Rechenzentrum (nur für Mitarbeiter) als Einwahlmöglichkeit angeboten.
make config die folgenden Antworten gegeben werden
(Network device support und PPP support sind notwendig, SLIP
muß nicht, kann aber bei Bedarf
auch mit in dem Kernel eingebunden werden):
fairport# make config ... * * Network device support * Network device support (CONFIG_NETDEVICES) [Y/n/?] y Dummy net driver support (CONFIG_DUMMY) [Y/m/n/?] y SLIP (serial line) support (CONFIG_SLIP) [N/y/m/?] n PPP (point-to-point) support (CONFIG_PPP) [Y/m/n/?] y ... fairport# make dep; make clean fairport# make zlilo
nkita, nkitb
und ppp nötig.
Wenn ein eigener Nameserver aufgesetzt werden soll,
muß auch das Paket bind installiert sein.
Allerdings stimmen bei der November-Version vom S.u.S.E.-Linux die PPP-Dokumentation und zumindest die Pfadnamen der beschriebenen Programme nicht überein, was in einer Fußnote mit einer geänderten PPP-Version erklärt wird.
S.u.S.E. 4.2 enthät eine hinreichend aktuelle PPP-Version.
Slackware 3.1 hat einen Fehler im PPP-Paket (behoben ab 19.8.):
``Nach der Installation des ppp-Pakets hat man ein
Shell-Script /usr/sbin/pppd, das in Abhängigkeit
von der Linuxversion z.B. pppd-2.2 startet. Dummerweise
ist pppd-2.2 ein Link auf pppd ... Der
Fehler liegt vermutlich im Installscript, ein pppd ist
im Paket ppp.tgz jedenfalls enthalten und
und von Hand entpackt funktioniert der dann auch.''
(Danke an Oliver Gerschewski für den Hinweis).
Unter S.u.S.E. November 1995 sollte man eine
aktuelle PPP-Version benutzen, ggfs. muß
man halt die mit der eigenen Linux-Distribution gelieferte
Version ersetzen.
Für ``stabile'' Kernel wie 1.2.13 ist die Version 2.1.4d
ausreichend, die in der S.u.S.E.-Linux-Version vom
November 1995 bereits enthalten ist.
Für Entwickler-Kernel ab 1.3.45 sollte man schon die neueste
Version 2.2.0e installieren.
Beide sind auf unserem FTP-Server
ftp.informatik.uni-hamburg.de im Directory
/pub/os/linux/system/Network/serial zu finden,
ppp-2.2.0c.tar.gz auch auf der zweiten S.u.S.E.-CD in
der Datei sunsite/system/Network/serial.
Bei der Neuinstallation von PPP müssen unter Umständen
- je nach Kernel-Version - auch einige Dateien in den
Kernel-Quellen aktualisiert werden. Dies wird von dem
make kernel in der folgenden Kommandofolge
zum Übersetzen und Installieren der PPP-Quellen getan:
fairport# tar xpzf /cdrom/sunsite/system/Network/serial/ppp-2.2.0c.tar.gz fairport# cd ppp-2.2.0c fairport# ./configure fairport# make kernel fairport# make fairport# make install
/etc anpassen:
/etc/host.conf ist anzugeben, daß
die Umsetzung von Hostnamen in IP-Adressen und umgekehrt über
die lokale Datei /etc/hosts und, falls ein Name lokal
nicht gefunden wird, über einen Nameserver in der
Universität erfolgen soll:
fairport# cat /etc/host.conf order hosts, bind multi on
/etc/resolv.conf wird angegeben, welchen
Nameserver man nutzen will und wie der eigene Namensraum heißt.
Für den Zugang über die Informatik trage man hier ein:
fairport# cat /etc/resolv.conf domain informatik.uni-hamburg.de nameserver 134.100.9.61für den Zugang über das Universitäts-Rechenzentrum jedoch:
fairport# cat /etc/resolv.conf domain public.uni-hamburg.de nameserver 134.100.33.240
/etc/hosts einzutragen. Für den
Zugang über das Informatik-Rechenzentrum sind dies etwa die
folgenden Rechner (fairport ist der Name meines
eigenen Linux-Rechners):
fairport# cat /etc/hosts 127.0.0.1 fairport localhost 134.100.8.220 portmaster.informatik.uni-hamburg.de portmaster 134.100.8.221 dialup1.informatik.uni-hamburg.de dialup1 134.100.8.222 dialup2.informatik.uni-hamburg.de dialup2 134.100.8.223 dialup3.informatik.uni-hamburg.de dialup3 134.100.8.224 dialup4.informatik.uni-hamburg.de dialup4 134.100.8.225 dialup5.informatik.uni-hamburg.de dialup5 134.100.8.226 dialup6.informatik.uni-hamburg.de dialup6 134.100.9.7 rzdspc77.informatik.uni-hamburg.de rzdspc77 www 134.100.9.60 rzdspc0.informatik.uni-hamburg.de rzdspc0 134.100.9.61 rzdspc1.informatik.uni-hamburg.de rzdspc1 134.100.9.62 rzdspc2.informatik.uni-hamburg.de rzdspc2 134.100.9.64 rzdspc4.informatik.uni-hamburg.de rzdspc4 ftp 134.100.33.37 rzsun02.rrz.uni-hamburg.de rzsun02 newsoder für den Zugang über das Universitäts-Rechenzentrum:
fairport# cat /etc/hosts 127.0.0.1 fairport localhost 134.100.3.34 ftp.rrz.uni-hamburg.de ftp 134.100.33.15 www.rrz.uni-hamburg.de www 134.100.33.37 news.rrz.uni-hamburg.de news.uni-hamburg.de news 134.100.41.1 public.uni-hamburg.de public 134.100.41.253 rzmax.public.uni-hamburg.de rzmax
setserial die Leitung mit dem Parameter
spd_vhi auf höheren Durchsatz schalten. Dies wird
in der Datei /sbin/init.d/serial getan:
fairport# vi /sbin/init.d/serial
...
${SETSERIAL} /dev/cua1 ${AUTO_IRQ} skip_test autoconfig spd_vhi
...
Bei Slackware 3.0 und S.u.S.E. November 1995 wird stattdessen die
Datei /etc/rc.d/rc.serial verwendet; allerdings muß
man in der Datei /etc/rc.d/rc.S noch ein Kommentarzeichen
# entfernen, damit rc.serial überhaupt
ausgeführt wird.
dev/cua1, also die zweite
serielle Schnittstelle) und dem Telefonanschluß in der Universität
her. Wenn die Verbindung steht, wickelt chat noch
das Einloggen beim Server ab und übergibt dann die Kontrolle wieder
dem PPP-Daemon. Dieser initiiert anschließend das PPP-Protokoll.
Der Aufruf von PPP kann mit dem folgenden Shell-Skript
/usr/sbin/ppp-on
geschehen (Der Parameter debug in der Environment-Variable
$PPPFLAGS kann nach erfolgreichem Test entfernt werden):
fairport# cat /usr/sbin/ppp-on #!/bin/sh -x # ppp-on # Set up a PPP link # LOCALIP=0.0.0.0 REMOTEIP= DEVICE=cua2 PPPFLAGS="38400 modem debug defaultroute" LOCKDIR=/var/spool/uucp if [ -f $LOCKDIR/LCK..$DEVICE ] then echo "/dev/$DEVICE is locked" 2>&1 exit 1 fi chown root /dev/$DEVICE chmod 666 /dev/$DEVICE exec /usr/sbin/pppd lock connect \ '/usr/sbin/chat -v -f /etc/ppp/ppp.chat' \ /dev/$DEVICE $PPPFLAGS $LOCALIP:$REMOTEIPBei manchen Linux-Distributionen stehen die Programme pppd und chat in anderen Directories als
/usr/sbin,
z.B. in /usr/etc. In diesem Fall muß man das obige Skript
entsprechend anpassen.
Die Argumente für das Programm chat habe ich der
Übersichtlichkeit halber in eine externe Konfigurationsdatei
/etc/ppp/ppp.chat
geschrieben. Sie könnten auch direkt
als Argumente von chat angegeben werden; dann könnte
allerdings ein Dritter mit dem Kommando ps nachsehen,
welche Prozesse gerade ablaufen und dabei das PPP-Loginpaßwort
mitlesen.
In /etc/ppp/ppp.chat
wird spezifiziert, wie die Modemverbindung
von chat aufgebaut werden soll und vor allem, welche
Telefonnummer angerufen wird,
5494-19 in der Informatik oder 41532 im Universitäts-Rechenzentrum.
Beides sind Sammelrufnummern, die den Anruf auf einen freien Anschluß
schalten. Weiter müssen die Userid, wie z.B. Pin5z999 in der
vorletzten Zeile nach dem \q und in der letzten Zeile
das dazugehörige Passwort (meines ist natürlich nicht
TopScret!) zum Einloggen am Modemserver angegeben werden:
fairport# cat /etc/ppp/ppp.chat ABORT "NO CARRIER" ABORT BUSY ABORT "NO DIALTONE" ABORT ERROR "" +++ATZ OK ATDT04041532 CONNECT "" ogin:--ogin: \qPin5z999 word: TopScretSind alle Dateien richtig konfiguriert, so reicht nun der Aufruf von
/usr/sbin/ppp-on,
um die PPP-Verbindung aufzubauen.
Der Verbindungsaufbau wird über den Syslog-Daemon
mitprotokolliert. Das Protokoll kann z.B. in der Datei
/var/adm/messages, in /var/log/messages
oder in /var/log/ppp-log stehen.
Welche Protokolldatei verwendet wird, ist je nach Linux-Distribution
verschieden und kann in der Datei /etc/syslog.conf nachgesehen
bzw. geändert werden.
Ansehen kann man sich dann den Aufbau der PPP-Verbindung und eventuelle
Fehlermeldungen mit z.B. dem Kommando
fairport# tail -f /var/log/messagesin einem extra Terminal-Fenster. Außerdem kann man mit den Programmen ifconfig und netstat prüfen, ob die PPP-Leitung konfiguriert und ein Routing-Eintrag für das PPP-Interface definiert ist, etwa bei einer Verbindung über das Universitäts-Rechenzentrum:
fairport# ifconfig -a
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0
ppp0 Link encap:Point-Point Protocol
inet addr:134.100.43.157 P-t-P:134.100.41.253 Mask:255.255.0.0
UP POINTOPOINT RUNNING MTU:1524 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0
TX packets:9 errors:0 dropped:0 overruns:0
fairport# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
134.100.41.253 0.0.0.0 255.255.255.255 UH 1524 0 0 ppp0
127.0.0.0 0.0.0.0 255.0.0.0 U 3584 0 0 lo
0.0.0.0 134.100.41.253 0.0.0.0 UG 1524 0 0 ppp0
oder in die Informatik:
fairport# ifconfig -a
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0
ppp0 Link encap:Point-Point Protocol
inet addr:134.100.8.224 P-t-P:134.100.8.220 Mask:255.255.0.0
UP POINTOPOINT RUNNING MTU:1500 Metric:1
RX packets:89 errors:1 dropped:1 overruns:0
TX packets:118 errors:0 dropped:0 overruns:0
fairport# /tmp# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
134.100.8.220 0.0.0.0 255.255.255.255 UH 1500 0 0 ppp0
127.0.0.0 0.0.0.0 255.0.0.0 U 3584 0 0 lo
0.0.0.0 134.100.8.220 0.0.0.0 UG 1500 0 0 ppp0
/usr/sbin/ppp-off:
#!/bin/sh
DEVICE=ppp0
#
# If the ppp0 pid file is present then the program is running. Stop it.
if [ -r /var/run/$DEVICE.pid ]; then
kill -INT `cat /var/run/$DEVICE.pid`
#
# If unsuccessful, ensure that the pid file is removed.
#
if [ ! "$?" = "0" ]; then
echo "removing stale $DEVICE pid file."
rm -f /var/run/$DEVICE.pid
exit 1
fi
#
# Success. Terminate with proper status.
#
echo "$DEVICE link terminated"
exit 0
fi
#
# The link is not active
#
echo "$DEVICE link is not active"
exit 1