Im Katalog suchen

Linux - Wegweiser zur Installation & Konfiguration, 3. Auflage

Online-Version

Copyright © 2000 by O'Reilly Verlag GmbH & Co.KG

Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser zur Installation & Konfiguration oder wollen Sie es bestellen, dann klicken Sie bitte hier.


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel

PPP über ISDN-Leitungen

Seit vielen Jahren ermöglicht ISDN schnelle und bequeme Datenverbindungen, wenn auch gewöhnlich zu einem etwas höheren Preis. ISDN ist besonders in Europa beliebt, wo der Preis und die Vermarktung mehr für ISDN sprechen als in den USA. ISDN integriert Daten- und Sprachübertragungen auf einer einzigen Leitung, baut Verbindungen sehr viel schneller auf und bringt auch einen viel besseren Durchsatz als traditionelle Modems.

ISDN-Leitungen können 64 KBits pro Sekunde übertragen, und im Gegensatz zu analogen Leitungen schaffen Sie das auch immer, weil ihre Übertragung nicht von den vielen Unwägbarkeiten der analogen Technik abhängt, wie beispielsweise das Übersprechen bei verschiedenen Störgeräuschen. Ein neues Protokoll namens ASDL (Asymmetric Digital Subscriber Line) schlägt ISDN hinsichtlich der Geschwindigkeit noch einmal, aber ISDN hat derzeit doch noch eine deutlich größere Verbreitung.

In diesem Abschnitt werden wir beschreiben, wie Sie die Einwahl zu Ihrem Internet-Provider über eine ISDN-Leitung einrichten. Wir konzentrieren uns dabei auf den am häufigsten verwendeten Verbindungstyp, synchrones PPP; nicht auf den besonderen Modus namens Raw IP über ISDN. Außerdem gehen wir hier nur auf interne ISDN-Steckkarten ein, die ganz anders eingerichtet werden, als es im letzten Abschnitt für Modems beschrieben wurde. Externe ISDN-Geräte, die sogenannten ISDN-Modems Fußnoten 1, werden auf ähnliche Weise konfiguriert, wie im vorigen Abschnitt beschrieben, weil sich diese Geräte dem Computer und dem Betriebssystem gegenüber wie ein normales Modem mit zusätzlichen Befehlen, schnellerem Verbindungsaufbau und höherem Durchsatz verhalten.

In gewisser Hinsicht ist das Einrichten von ISDN-Verbindungen viel einfacher als das von analogen Verbindungen, weil viele der Probleme analoger Leitungen (schlechte Leitungsqualität, lange Aufbauzeiten und so weiter) bei digitalen Leitungen einfach nicht auftreten können. Sobald Sie einmal die Nummer gewählt haben, ist die Verbindung in Millisekunden aufgebaut. Das kann aber auch zu Problemen führen. Weil die Verbindungen so schnell auf- und wieder abgebaut werden, kann ein falsch konfiguriertes System, das immer wieder eine Verbindung aufbaut, ein Vermögen kosten. Das gilt insbesondere für interne ISDN-Karten, weil man hier nicht einmal - wie bei Modems - etwas klicken und pfeifen hört und es auch keine Lämpchen gibt, die Sie über den Status der Verbindung informieren. Sie können den Status Ihrer ISDN-Verbindung allerdings mit einigen einfachen Programmen kontrollieren.

Das Einrichten einer PPP-Wählverbindung über ISDN geschieht in zwei Schritten:

1. Konfigurieren der ISDN-Hardware
2. Konfigurieren und Starten des PPP-Dämons und Anpassen der Routing-Tabelle, so daß die ISDN-Verbindung verwendet wird.

Diese Schritte werden in den beiden folgenden Abschnitten behandelt.

Konfigurieren der ISDN-Hardware

Als erstes müssen Sie Ihre ISDN-Hardware dem Kernel zugänglich machen. Wie bei jeder anderen Hardware brauchen Sie einen Gerätetreiber, der mit den passenden Parametern für Ihre ISDN-Karte konfiguriert werden muß.

Linux unterstützt eine große Anzahl von ISDN-Karten. Wir können hier nicht jede einzelne Karte besprechen, aber das Verfahren ist für alle mehr oder weniger das gleiche. Wenn Ihre Karte hier nicht behandelt wird, dann sollten Sie die Dokumentation zu Ihrer Karte im Verzeichnis Documentation/isdn des Linux-Kernels lesen.

Wir konzentrieren uns hier auf die Karten, die den HiSax-Treiber verwenden. Dieser Gerätetreiber arbeitet mit den meisten Karten zusammen, die den HSCX-Chipsatz von Siemens verwenden. Dazu gehören beispielsweise die USR Sportster internal TA und die bekannten Teles-, ELSA- und Fritz-Karten. Andere Karten werden ähnlich konfiguriert.

Zunächst müssen Sie ISDN-Unterstützung in den Kernel einbauen. Es ist ratsam, alles, was mit ISDN zusammenhängt, in Form von Modulen zu kompilieren, insbesondere, wenn Sie mit der Konfiguration noch herumexperimentieren. Sie benötigen die folgenden Module:

Icon

Kapitel 7

Kompilieren und installieren Sie die Module, wie in Kapitel 7 beschrieben. Jetzt können Sie anfangen, Ihre ISDN-Hardware zu konfigurieren. Bei manchen Distributionen wie SuSE ist das Einrichten von ISDN-Verbindungen sehr einfach. Wir behandeln hier aber, wie man alles selbst macht, falls Ihre Distribution nicht so anwenderfreundlich ist, falls die automatische Konfiguration nicht funktioniert oder Sie einfach nur wissen wollen, was hinter den Kulissen passiert.

Als nächstes müssen Sie das Gerätetreibermodul mit modprobe laden. Damit werden die anderen Module ebenfalls automatisch geladen. Alle Gerätetreibermodule erwarten eine Reihe von Modulparametern, das hisax-Modul kennt unter anderem folgende Parameter:

id=kartenid
Legt einen Bezeichner für die ISDN-Karte fest. Sie können hier einen beliebigen Namen verwenden, dürfen aber nicht den gleichen Namen für mehr als eine Karte im System verwenden.
type=kartentyp
Gibt die genaue Kartenmarke und den Kartentyp an. Beispielsweise wählt ein Wert von 16 für kartentyp die Unterstützung für das USR Sportster internal TA. Lesen Sie dazu die Dokumentation in Documentation/isdn/README.hisax in den Kernel-Quellen; dort finden Sie auch die vollständige Liste der Kartentypen.
protocol=protokolltyp
Wählt ein ISDN-Subprotokoll. Zulässige Werte sind 1 für das alte deutsche 1TR6-Protokoll, 2 für das heute (zumindest in Europa) gängige EDSS1-Protokoll und 3 für semipermanente Verbindungen.
irq=irqnr
Gibt die zu verwendende Interrupt-Leitung an. Nicht alle Karten benötigen diese Angabe.
io=adr
Gibt die zu verwendende I/O-Adresse an. Nicht alle Karten benötigen diese Angabe, aber manche benötigen auch zwei I/O-Adressen. In diesem Fall sind die Parameter io0 und io1 zu verwenden.

Ein Beispiel: Der folgende Befehl lädt den HiSax-Treiber zur Verwendung mit einer Teles 16.3-Karte, Euro-ISDN, I/O-Adresse 0x280 und IRQ-Leitung 10 (ein sehr häufiger Anwendungsfall):

tigger # modprobe hisax type=3 protocol=2 io=0x280 irq=10

In der Datei Documentation/isdn/README.HiSax oder der entsprechenden Datei für Ihre Karte finden Sie weitere Informationen.

Das Modul ist nicht gerade geschwätzig; wenn der Befehl modprobe nichts ausgibt, dann ist es ziemlich wahrscheinlich, daß alles gutgegangen ist. Außerdem könnten Sie einen Blick in Ihr Systemprotokoll in /var/log/messages werfen. Sie sollten dann einige Zeilen sehen, die mit HiSax: (oder dem Namen des Treibers, den Sie verwenden) starten; als letzte dieser Zeilen sollte dort stehen:

HiSax: module installed

Wenn dieses Modul nicht geladen werden kann, können Sie die Anzahl wahrscheinlich auch in /var/log/messages finden. Das häufigste Problem ist ein falsch angegebener IRQ oder eine falsche I/O-Adresse oder aber ein falsch gewählter Kartentyp. Wenn Sie gar nicht weiterkommen und auf dem gleichen Rechner Windows installiert haben, dann booten Sie Windows und schauen Sie nach, was dort für die IRQ- und I/O-Adresse gemeldet wird.

Sie sollten eine weitere Überprüfung vornehmen, bevor Sie zum nächsten Abschnitt übergehen, nämlich sich selbst anrufen. Das funktioniert, da Sie bei ISDN immer zwei Leitungen zur Verfügung haben. Eine Leitung wird also für den abgehenden »Anruf« und die andere für den eingehenden verwendet.

Damit Ihr ISDN-Subsystem auch meldet, was auf Ihren Telefonleitungen passiert, müssen Sie es dafür konfigurieren, mehr Meldungen als normal auszugeben. Dies geschieht mit drei Hilfsprogrammen, die Sie alle im Paket isdn4k-utils finden, das Sie auf Ihrem freundlichen Linux-FTP-Server um die Ecke finden.

Dieses Paket enthält unter anderem die drei folgenden Hilfsprogramme: hisaxctrl zum Konfigurieren des Gerätetreibers, isdnctrl zum Konfigurieren der höheren Schichten des ISDN-Subsystems und isdnlog, ein sehr nützliches Werkzeug, das alles protokolliert, was auf Ihren ISDN-Leitungen vor sich geht. hisaxctrl und isdnctrl können Sie ohne jede Konfiguration verwenden, aber für isdnlog müssen Sie eine kleine Konfigurationsdatei schreiben. Wir begnügen uns hier mit einer schnellen Lösung, aber sobald Ihre ISDN-Verbindung steht, sollten Sie isdnlog genauer konfigurieren, um zu sehen, wohin Ihr Geld geht. Im Moment können Sie aber eine der Beispiel-Konfigurationsdateien, die im isdnlog-Paket enthalten sind, nach /etc/isdn/ isdn.conf kopieren. Sie müssen dann zumindest folgende Zeilen editieren:

COUNTRYCODE=
Geben Sie hier den Vorwahlcode Ihres Landes an, beispielsweise 49 für Deutschland oder 46 für Schweden und so weiter.
AREAPREFIX=
Wenn in Ihrem Land den Vorwahlen ein Präfix vorangestellt wird, dann geben Sie dieses hier an. Für die meisten europäischen Länder ist das 0, in Finnland 9 und nichts in den USA, Dänemark und Norwegen.
AREACODE=
Geben Sie hier Ihre Vorwahlnummer an. Wenn Sie im letzten Schritt eine Ziffer für AREAPREFIX angegeben haben, dann wiederholen Sie diese hier nicht. Beispielsweise hat Stockholm in Schweden die Vorwahl 08; Sie würden dann 0 bei AREAPREFIX und 8 bei AREACODE eintragen.

Wenn Sie diese Angaben gemacht haben, dann führen Sie die folgenden Befehle aus, um Ihr ISDN-System etwas geschwätziger zu machen:

tigger # /sbin/hisaxctrl boardid 1 4 tigger # /sbin/isdnctrl verbose 3 tigger # /sbin/lsdnlog /dev/isdnctrl0 &

Wenn Sie einen anderen Treiber als HiSax verwenden, müssen Sie wahrscheinlich auch einen anderen Befehl verwenden. Beispielsweise gibt es für den PCBit-Treiber im Paket isdn4k-utils einen Befehl pcbitctl.

Jetzt können Sie sich anrufen. Sie sollten alle Ihre MSNs (Multiple Subscriber Numbers; Ihre ISDN-Telefonnummern) ausprobieren, um zu sehen, ob die Karte auch alle erkennt. Sehen Sie sich nach jedem Anruf /var/log/messages an. Sie sollten etwa folgende Zeilen sehen:

Mar 16 18:34:22 tigger kernel: isdn_net: call from 4107123455,1,0 -> 123456 Mar 16 18:34:33 tigger kernel: isdn_net: Service-Indicator not 7, ignored

Was hier steht, ist, daß der Kernel einen Sprachanruf von der Telefonnummer 123455 im Vorwahlbereich (0)4107 an die MSN 123456 erkannt hat (die Dienstekennung ist 0).

Achten Sie darauf, wie die Nummer angegeben wird; Sie werden diese Information später noch benötigen. Die Nummer wird in manchen Telefonnetzen mit Vorwahl, in anderen ohne geschickt. Aber unabhängig davon: Herzlichen Glückwunsch, wenn Sie soweit gekommen sind. Ihre ISDN-Hardware ist jetzt korrekt konfiguriert.

Synchrones PPP einrichten

Auch das Einrichten des PPP-Dämons besteht aus mehreren Schritten. Unter Linux werden ISDN-Karten wie Netzwerkschnittstellen behandelt, die Sie mit speziellen Befehlen konfigurieren müssen. Außerdem müssen Sie den Benutzernamen und das Paßwort angeben, die Ihr Internet-Provider Ihnen zugewiesen hat. Wenn alles konfiguriert ist, starten Sie den Dämon ipppd, der im Hintergrund darauf lauert, daß eine Verbindung aufgebaut werden soll.

Konfigurieren wir jetzt als erstes die »Netzwerkschnittstelle«. Dazu sind eine Reihe von Befehlen notwendig, die die meisten Systemadministratoren einfach in ein Skript schreiben, dem sie einen Namen wie /sbin/pppon geben. Hier kommt eine Beispieldatei, die Sie Ihren Bedürfnissen entsprechend anpassen können.

/sbin/isdnctrl addif ippp0 /sbin/isdnctrl addphone ippp0 out 0123456789 /sbin/isdnctrl dialmax ippp0 2 /sbin/isdnctrl eaz ippp0 123456 /sbin/isdnctrl huptimeout ippp0 100 /sbin/isdnctrl l2_prot ippp0 hdlc /sbin/isdnctrl l3_prot ippp0 trans /sbin/isdnctrl encap ippp0 syncppp /sbin/ifconfig ippp0 1.1.1.1 pointopoint 123.45.67.89 metric 1

Gehen wir diese Befehle Schritt für Schritt durch:

isdnctrl addif ippp0
Diese Zeile teilt dem Kernel mit, daß eine neue ISDN-Schnittstelle mit dem Namen ippp0 verwendet werden soll. Verwenden Sie immer Namen, die mit ippp anfangen.
isdnctrl addphone ippp0 out 0123456789
Teilt der ISDN-Schnittstelle mit, welche Telefonnummer zu verwenden ist. Hier tragen Sie die Telefonnummer ein, mit der Sie sich bei Ihrem Internet-Provider einwählen. Wenn Sie bisher einen analogen Zugang verwendet haben, dann halten Sie Rücksprache mit Ihrem Provider, da die Telefonnummer für den ISDN-Zugang eine andere sein könnte.
isdnctrl dialmax ippp0 2
Gibt an, wie oft der Kernel versuchen soll, sich einzuwählen, bevor er aufgibt, wenn die Verbindung nicht aufgebaut werden konnte.
isdnctrl eaz ippp0 123456
Geben Sie hier eine Ihrer eigenen MSNs an. Dies ist ein sehr wichtiger Schritt; ohne wird nicht viel funktionieren. Falls Ihr Internet-Provider Ihren Zugang über Ihre Telefonnummer verifiziert, stellen Sie sicher, daß Sie hier die MSN angeben, die Sie bei Ihrem Provider registriert haben.
isdnctrl huptimeout ippp0 100
Gibt die Anzahl von Sekunden an, die keine Daten über die Leitung gehen dürfen, bevor der Kernel die Verbindung abbricht. Dieser Befehl ist optional, kann Ihnen aber viel Geld sparen, wenn Sie keinen Pauschalbetrag für Ihren Zugang bezahlen. Wenn Sie also vergessen, die Verbindung zu schließen, dann tut der Kernel das für Sie.
isdnctrl l2_prot ippp0 hdlc
Gibt das zu verwendende Schicht-2-Protokoll an. Mögliche Werte sind hier hdlc, x75i, x75ui und x75bui. Die meisten Provider verwenden hdlc; wenn Sie sich unsicher sind, dann fragen Sie bei Ihrem Provider nach.
isdnctrl l3_prot ippp0 trans
Gibt das zu verwendende Schicht-3-Protokoll an. Derzeit steht nur trans zur Verfügung.
isdnctrl encap ippp0 syncppp
Gibt die zu verwendende Kapselung an. Hier sind eine ganze Reihe von Werten zulässig, aber wenn Sie synchrones PPP verwenden wollen (oder Ihr Provider das voraussetzt), müssen Sie hier syncppp angeben. Ein anderer oft verwendeter Wert ist rawip. Allerdings ist damit nur eine sehr schwache Autheizierung möglich, weswegen nur wenige Provider diese Möglichkeit verwenden, auch wenn man wegen des geringeren Verwaltungsaufwands einen etwas besseren Durchsatz bekommt.
ifconfig ippp0 1.1.1.1 pointopoint 123.45.67.89 metric 1
Erzeugt die neue Netzwerkschnittstelle. Wenn Ihre IP-Adresse nicht dynamisch zugewiesen wird (ist bei den meisten Einwählverbindungen der Fall), müssen Sie hier Ihre IP-Adresse anstelle von 1.1.1.1 angeben. Außerdem müssen Sie die 123.45.67.89 in die IP-Adresse Ihres Einwähl-Servers ändern.

Uff! Aber wir sind noch nicht ganz fertig. Als nächstes müssen Sie den ipppd-Dämon selbst konfigurieren. Dies geschieht in der Datei /etc/ppp/ioptions. Sie können auch für jeden ipppd-Dämon eine eigene Konfigurationsdatei verwenden, aber das ist nur nötig, wenn Sie verschiedene ISDN-Verbindungen verwenden wollen, also mehrere Einwählzugänge haben.

Icon

ipppd(8)

Im folgenden sehen Sie eine ioptions-Datei, die generisch genug ist, um mit den meisten Providern zu funktionieren. Sie erreichen damit nicht den maximal möglichen Durchsatz, sollten aber eine ziemlich stabile Verbindung bekommen. Wenn Sie die Verbindung optimieren wollen, dann fragen Sie Ihren Provider nach den möglichen Einstellungen und lesen Sie die Manpage zu ipppd.

debug /dev/ippp0 user ihrbenutzername name ihrbenutzername mru 1500 mtu 1500 ipcp-accept-local ipcp-accept-remote noipdefault -vj -vjccomp -ac -pc -bsdcomp defaultroute

Sie müssen hier nur zwei Dinge ändern: Ersetzen Sie ihrbenutzername in der dritten und vierten Zeile durch den Benutzernamen, den Ihr Provider Ihnen für die Einwahl zugewiesen hat. Wir werden hier nicht alle Optionen besprechen; lesen Sie die Manpage, wenn Sie mehr wissen wollen.

ISDN verwendet die gleichen Sicherheitseinstellungen wie eine analoge Einwahlverbindung. Im Abschnitt »PAP und CHAP« weiter vorn in diesem Kapitel finden Sie Hinweise, wie Sie Ihre Datei pap-secrets und chap-secrets so gestalten können, wie es von Ihrem Internet-Provider verlangt wird.

Jetzt haben wir alles Notwendige beisammen und können endlich loslegen! Starten Sie zuerst den ipppd-Dämon:

tigger # /sbin/ipppd pidfile /var/run/ipppd.ippp0.pid file /etc/ppp/ioptions &

Der ipppd-Dämon wartet jetzt auf Verbindungsanforderungen. Weil wir ihn noch nicht dafür konfiguriert haben, automatisch Verbindungen aufzubauen, müssen wir das manuell auslösen. Dies geschieht mit dem folgenden Befehl:

tigger # isdnctrl dial ippp0

Sie sollten jetzt in der Datei /var/log/messages nachsehen. Hier sollten viele Meldungen stehen, die mit ipppd anfangen. Die letzten beiden dieser Meldungen sollten die Wörter local IP address und remote IP address und die jeweiligen IP-Adressen enthalten. Wenn Sie diese Meldungen sehen, haben Sie es geschafft. Weil wir in der Datei ioptions die Option defaultroute verwendet haben, hat der Kernel automatisch eine Default-Route auf unsere ISDN-Verbindung gelegt, und Sie sollten jetzt unmittelbar in der Lage sein, in die weite, weite Welt des Internets zu gelangen. Versuchen Sie als erstes, einen ping-Befehl auf die IP-Adresse Ihres Providers abzusetzen. Wenn Sie fertig sind und die Verbindung beenden wollen, geben Sie ein:

tigger # isdnctrl hangup ippp0

Und wenn es nun nicht funktioniert?

Wenn Sie keine Verbindung bekommen, obwohl Ihre Hardware korrekt erkannt wurde und Sie alles wie oben beschrieben eingerichtet haben, dann sollten Sie sich wieder einmal an die Datei /var/log/messages wenden. Es ist ziemlich wahrscheinlich, daß Sie die Ursache des Problems hier finden, auch wenn dieses etwas versteckt sein kann.

Der häufigste Fehler ist ein fehlerhaftes Angeben des Paßwortes oder des Benutzernamens. Sie wissen, daß Ihr Problem in diesem Bereich liegt, wenn Sie eine Zeile wie die folgende sehen:

PAP autheication failed

oder:

CHAP autheication failed

Überprüfen Sie dann sorgfältig die Dateien chap-secrets oder pap-secrets. Möglicherweise kann auch Ihr Provider anhand seiner Protokolldateien sehen, was bei der Autheizierung schiefgegangen ist.

Natürlich könnte es auch sein, daß Ihr Provider kein synchrones PPP unterstützt, auch wenn die meisten das heutzutage tun. Wenn dies der Fall ist, fragen Sie Ihren Provider nach den richtigen Einstellungen.

Wenn es immer noch nicht funktioniert, fragen Sie Ihren Provider. Ein guter Internet-Provider bietet eine telefonische Unterstützung und kann Ihnen helfen, eine Verbindung von Ihrem Linux-Rechner aufzubauen. Wenn Ihr Provider Ihnen sagt, daß er »nur Windows unterstützt«, dann sollten Sie schlicht und einfach den Provider wechseln. Es gibt viele Linux-freundliche Provider. Oft verwenden die Leute vom Telefon-Support selbst Linux und können Ihnen weiterhelfen, selbst wenn der Provider Linux offiziell nicht unterstützt.

Wenn Sie aus irgendwelchen Gründen bei einem nicht kooperationsbereiten Provider festhängen, dann versuchen Sie, andere Kunden dieses Providers zu finden, die Linux verwenden. Das Einrichten der Verbindung kann in Sonderfällen bedeuten, daß Sie mit den Optionen und Parametern des ISDN-Subsystems und des ipppd-Dämons herumspielen müssen, und wenn jemand anderes bereits herausgefunden hat, was zu tun ist, dann müssen Sie das nicht tun.

Und wie geht es weiter?

Wenn Ihre ISDN-Verbindung einmal funktioniert und Sie ins Internet kommen, dann möchten Sie sich die Sache vielleicht etwas bequemer machen oder andere Anpassungen vornehmen. Hier sind einige Vorschläge:

Icon

Wann immer der Kernel jetzt ein IP-Paket an eine IP-Adresse schicken möchte, für die keine besondere Route konfiguriert ist, wird er den ipppd-Dämon auffordern, eine Verbindung aufzubauen. Verwenden Sie dieses Verfahren aber nur, wenn Sie auch die Option huptimeout angegeben haben, da Sie ansonsten ein Vermögen an Ihre Telefongesellschaft zahlen könnten (es sei denn, Sie bezahlen einen Pauschalpreis).

Weil es Programme gibt, die von Zeit zu Zeit selbständig versuchen, Internetverbindungen aufzubauen (Netscape ist einer dieser Kandidaten), kann diese Einstellung gefährlich für Ihre Brieftasche sein. Kontrollieren Sie den Zustand der Verbindung in diesem Fall regelmäßig (weiter unten lesen Sie, wie das geschieht).
 Fußnoten 1
Dieser Ausdruck ist eigentlich ein Oxymoron, weil es keine Modulation und Demodulation gibt.


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel


Weitere Informationen zum Linux - Wegweiser zur Installation & Konfiguration

Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center


O'Reilly Home | O'Reilly-Partnerbuchhandlungen | Bestellinformationen | Kontaktieren Sie uns
International | Über O'Reilly | Tochterfirmen

© 2000, O'Reilly Verlag