![]() |
|
Linux - Wegweiser für NetzwerkerOnline-VersionCopyright © 2001
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 für Netzwerker oder wollen Sie es bestellen, dann klicken Sie bitte hier. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Die meisten Linux-Distributionen werden mit Boot-Disketten ausgeliefert, die mit allen gängigen Typen von PC-Hardware funktionieren. Der dabei verwendete Standard-Kernel ist in der Regel stark modularisiert und enthält nahezu alle existierenden Treiber. Das ist sicherlich sehr vorteilhaft für Boot-Disketten, für die alltägliche Anwendung ist solch ein Kernel jedoch weit überdimensioniert. Das bedeutet, daß die Kernel auf diesen Boot-Disketten neben einer RAM-Disk auch einen ganzen Schwung Treiber enthalten, die Sie gar nicht brauchen und die nur wertvollen Speicherplatz verschwenden. Deshalb sollten Sie auf jeden Fall einen auf Ihre Situation zugeschnittenen Kernel zusammenstellen, der nur die Treiber enthält, die Sie wirklich benötigen. Dadurch machen Sie nicht nur den Kernel kompakt, sondern verringern auch den Zeitbedarf, der zur Übersetzung eines neuen Kernels benötigt wird.
Wenn Sie ein Linux-System benutzen, sollten Sie bereits damit vertraut sein, wie man einen Kernel “baut”. Sehen Sie das bitte nicht als Zwang an, nach dem Motto: Au weia, ich “muß” jetzt einen Kernel übersetzen, sondern vielmehr als große Chance, die Ihnen nur freie Software bieten kann: “Ich habe den Code und kann mir endlich meinen Kernel nach meinen eigenen Wünschen zusammenstellen!” Außerdem handelt es sich bei der Kernel-Übersetzung im Grunde nur um eine Kernel-Optimierung! Die Grundlagen zur Übersetzung des Linux-Kernels werden unter anderem in dem Buch Linux – Wegweiser zur Installation und Konfiguration von Matt Welsh beschrieben, weswegen wir uns hier nur mit den Optionen befassen werden, die den Netzwerkteil betreffen.
Ein wichtiger Punkt, der hier nochmals erwähnt werden sollte, ist die Art und Weise, wie das Schema der Kernel-Versionsnummern funktioniert. Linux-Kernel werden folgendermaßen numeriert: 2.2.14
. Die erste Zahl bezeichnet die Major Number. Diese Zahl ändert sich nur, wenn umfangreiche, signifikante Änderungen im Kernel-Design vorgenommen wurden. So wurde zum Beispiel die Major Number des Kernels von 1 auf 2 heraufgesetzt, als der Linux-Kernel außer der Intel-Architektur erstmals auch andere Rechnertypen unterstützte. Die zweite Zahl ist die Minor Number. In vielfältiger Hinsicht ist sie die eigentlich wichtige Nummer, auf die man achten sollte. Die Linux-Entwicklergemeinde hat nämlich einen Standard eingeführt, nach dem gerade Minor Numbers für (stabile) Produktions-Kernel und ungerade Minor Numbers für (instabile) Entwickler-Kernel stehen. Für Ihre wichtigen Rechner sollten Sie immer nur stabile Kernel verwenden, da sie weitaus gründlicher getestet sind als die Entwickler-Kernel. Die Anwendung der neuesten Entwickler-Kernels ist nur dann angebracht, wenn Sie mit den allerneuesten Features von Linux experimentieren wollen. Bei ihnen kann es immer mal zu Problemen kommen, die analysiert und behoben werden müssen. Die dritte Nummer wird jeweils immer nur um eins hochgezählt, wenn eine neue Minor-Version des Kernels erscheint.1
Wenn Sie make menuconfig aufrufen, erscheint ein textorientiertes Auswahlmenü, das eine Liste mit diversen Konfigurationsfragen enthält. Sie werden zuerst nach allgemeinen Einstellungen gefragt, beispielsweise, ob Sie die Unterstützung zur Emulation eines mathematischen Co-Prozessors (Kernel Math Emulation)2 benötigen oder nicht. Unter anderem bietet Ihnen das Konfigurationsskript Unterstützung für TCP/IP-Networking an. Diese Frage müssen Sie mit Ja (y
) beantworten, um einen netzwerkfähigen Kernel zu erhalten.
Eine weitaus komfortablere Möglichkeit zur Kernel-Konfiguration bieten die Kommandos make menuconfig bzw. make xconfig. Beim ersten Befehl erscheint ein textorientiertes Auswahlmenü, in dem man mit einem Balken-Cursor bequem durch die Menüpunkte navigieren kann. Wenn Sie die grafische Benutzeroberfläche X Window (XFree86) verwenden, können Sie auch make xconfig ausführen. Es erscheint dann ein Auswahlfenster, in dem Sie die Konfigurationsdetails sehr komfortabel durch Anklicken mit der Maus festlegen können.
Wenn der Abschnitt mit den allgemeinen Optionen erledigt ist, wird die Konfiguration mit der Frage fortgesetzt, ob Kernel-Unterstützung für verschiedene Komponenten wie SCSI oder Soundkarten gewünscht ist. Der erscheinende Prompt zeigt an, welche Optionen jeweils verfügbar sind. Wenn Sie als Antwort ein ?
eingeben, erhalten Sie eine Beschreibung, was die aktuelle Option so alles bietet. Sie haben immer die Wahl zwischen “yes” (y
), um die Komponente statisch in den Kernel einzubinden, oder “no” (n
), um die Komponente aus dem Kernel auszuschließen. Bei Komponenten, die als Modul übersetzt werden können, das zur Laufzeit in den Kernel eingebunden werden kann, erscheint eine dritte Option, die Sie mit m
beantworten können. Solche Module müssen immer erst geladen werden, bevor man sie anwenden kann. Sie sind besonders nützlich als Gerätetreiber für Hardwarekomponenten, die Sie nur ab und zu verwenden wollen.
Die anschließenden Fragen beschäftigen sich mit der Netzwerkunterstützung. Der Umfang und die genaue Abfolge der Konfigurationsoptionen ist nicht festgelegt, sondern variiert abhängig von der fortlaufenden Entwicklung des Linux-Kernels. Das folgende Beispiel zeigt einige typische Konfigurationsoptionen der Kernel-Versionen 2.0 und 2.1:
* * Network device support * Network device support (CONFIG_NETDEVICES) [Y/n/?]
Diese Frage müssen Sie mit y
beantworten, wenn Sie auch nur irgendeinen Netzwerkgerätetyp verwenden wollen, egal, ob es sich dabei um Ethernet, SLIP, PPP oder was auch immer handelt. Wenn Sie die Frage mit y
beantworten, werden Ethernet-Geräte automatisch unterstützt. Wenn andere Netzwerkgerätetypen unterstützt werden sollen, sind weitere Fragen zu beantworten:
PLIP (parallel port) support (CONFIG_PLIP) [N/y/m/?] y PPP (point-to-point) support (CONFIG_PPP) [N/y/m/?] y * * CCP compressors for PPP are only built as modules. * SLIP (serial line) support (CONFIG_SLIP) [N/y/m/?] m CSLIP compressed headers (CONFIG_SLIP_COMPRESSED) [N/y/?] (NEW) y Keepalive and linefill (CONFIG_SLIP_SMART) [N/y/?] (NEW) y Six bit SLIP encapsulation (CONFIG_SLIP_MODE_SLIP6) [N/y/?] (NEW) y
Diese Fragen betreffen die verschiedenen Protokolle, die von Linux auf der Verbindungsebene (link layer) bereitgestellt werden. Sowohl PPP als auch SLIP ermöglichen es Ihnen, IP-Datagramme über serielle Leitungen zu transportieren. PPP ist eigentlich eine Ansammlung von Protokollen zum Übertragen von Daten über eine serielle Verbindung. Einige dieser Protokolle regeln die Art und Weise, wie Sie sich beim Dialin-Server zu authentifizieren haben, während andere für den Transport höherer Protokolle zuständig sind. PPP ist nämlich nicht nur auf TCP/IP-Datagramme beschränkt, sondern transportiert auch andere Protokolle wie z.B. IPX.
Wenn Sie die Frage nach der SLIP-Unterstützung mit y
oder m
beantworten, erscheinen darunter drei weitere Fragen. Die Option compressed headers stellt zusätzliche Unterstützung für CSLIP bereit, eine SLIP-Variante, die TCP/IP-Header auf bis zu drei Byte komprimieren kann. Es sei darauf hingewiesen, daß diese Kernel-Option CSLIP beim Verbindungsaufbau nicht automatisch aktiviert; sie stellt lediglich die notwendige Funktionalität zur Verfügung. Die Option Keepalive and linefill
bewirkt eine periodisch wiederkehrende Aktivität in den SLIP-Verbindungen. Dadurch wird verhindert, daß laufende Verbindungen nach einer gewissen Zeit der Inaktivität automatisch abgebrochen werden. Die Option Six bit SLIP encapsulation
ermöglicht es, SLIP mit Leitungen und Schaltkreisen zu verwenden, die die zu transportierenden 8-Bit-Datenpakete nicht direkt übertragen können. Das ist mit der Technik vergleichbar, die bei uuencode und binhex zur Übertragung binärer Dateien in E-Mails verwendet wird.
PLIP bietet die Möglichkeit, IP-Datagramme über parallele Verbindungen zu übertragen. Es wird häufig zur Kommunikation mit PCs verwendet, die unter DOS laufen. Auf gewöhnlicher PC-Hardware kann PLIP gegebenenfalls sogar schneller als PPP oder SLIP sein, benötigt dabei allerdings erheblich mehr CPU-Leistung, was zur Folge haben kann, daß zwar die Transferrate gut ist, aber die anderen Prozesse im Rechner deutlich langsamer laufen.
Die folgenden Fragen befassen sich mit Netzwerkkarten verschiedener Hersteller. Da ständig neue Treiber erscheinen, wird die Liste der Fragen in diesem Abschnitt mit der Zeit immer länger. Wenn Sie einen Kernel zusammenstellen wollen, der auf mehr als einer Maschine laufen soll, oder Ihre Maschine mehrere Typen von Netzwerkkarten hat, können Sie auch mehr als einen Treiber auswählen.
. . Ethernet (10 or 100Mbit) (CONFIG_NET_ETHERNET) [Y/n/?] 3COM cards (CONFIG_NET_VENDOR_3COM) [Y/n/?] 3c501 support (CONFIG_EL1) [N/y/m/?] 3c503 support (CONFIG_EL2) [N/y/m/?] 3c509/3c579 support (CONFIG_EL3) [Y/m/n/?] 3c590/3c900 series (592/595/597/900/905) "Vortex/Boomerang" support/ (CONFIG_VORTEX) [N/y/m/?] AMD LANCE and PCnet (AT1500 and NE2100) support (CONFIG_LANCE) [N/y/?] AMD PCInet32 (VLB and PCI) support (CONFIG_LANCE32) [N/y/?] (NEW) Western Digital/SMC cards (CONFIG_NET_VENDOR_SMC) [N/y/?] WD80*3 support (CONFIG_WD80x3) [N/y/m/?] (NEW) SMC Ultra support (CONFIG_ULTRA) [N/y/m/?] (NEW) SMC Ultra32 support (CONFIG_ULTRA32) [N/y/m/?] (NEW) SMC 9194 support (CONFIG_SMC9194) [N/y/m/?] (NEW) Other ISA cards (CONFIG_NET_ISA) [N/y/?] Cabletron E21xx support (CONFIG_E2100) [N/y/m/?] (NEW) DEPCA, DE10x, DE200, DE201, DE202, DE422 support (CONFIG_DEPCA) [N/y/m/?]/ (NEW) EtherWORKS 3 (DE203, DE204, DE205) support (CONFIG_EWRK3) [N/y/m/?] (NEW) EtherExpress 16 support (CONFIG_EEXPRESS) [N/y/m/?] (NEW) HP PCLAN+ (27247B and 27252A) support (CONFIG_HPLAN_PLUS) [N/y/m/?] (NEW) HP PCLAN (27245 and other 27xxx series) support (CONFIG_HPLAN) [N/y/m/?]/ (NEW) HP 10/100VG PCLAN (ISA, EISA, PCI) support (CONFIG_HP100) [N/y/m/?] (NEW) NE2000/NE1000 support (CONFIG_NE2000) [N/y/m/?] (NEW) SK_G16 support (CONFIG_SK_G16) [N/y/?] (NEW) EISA, VLB, PCI and on card controllers (CONFIG_NET_EISA) [N/y/?] Apricot Xen-II on card ethernet (CONFIG_APRICOT) [N/y/m/?] (NEW) Intel EtherExpress/Pro 100B support (CONFIG_EEXPRESS_PRO100B) [N/y/m/?]/ (NEW) DE425, DE434, DE435, DE450, DE500 support (CONFIG_DE4X5) [N/y/m/?] (NEW) DECchip Tulip (dc21x4x) PCI support (CONFIG_DEC_ELCP) [N/y/m/?] (NEW) Digi Intl. RightSwitch SE-X support (CONFIG_DGRS) [N/y/m/?] (NEW) Pocket and portable adaptors (CONFIG_NET_POCKET) [N/y/?] AT-LAN-TEC/RealTek pocket adaptor support (CONFIG_ATP) [N/y/?] (NEW) D-Link DE600 pocket adaptor support (CONFIG_DE600) [N/y/m/?] (NEW) D-Link DE620 pocket adaptor support (CONFIG_DE620) [N/y/m/?] (NEW) Token Ring driver support (CONFIG_TR) [N/y/?] IBM Tropic chipset based adaptor support (CONFIG_IBMTR) [N/y/m/?] (NEW) FDDI driver support (CONFIG_FDDI) [N/y/?] Digital DEFEA and DEFPA adapter support (CONFIG_DEFXX) [N/y/?] (NEW) ARCnet support (CONFIG_ARCNET) [N/y/m/?] Enable arc0e (ARCnet "Ether-Encap" packet format) (CONFIG_ARCNET_ETH)/ [N/y/?] (NEW) Enable arc0s (ARCnet RFC1051 packet format) (CONFIG_ARCNET_1051)/ [N/y/?] (NEW) . .
Im Abschnitt über Dateisysteme fragt das Konfigurationsskript Sie schließlich, ob Sie Unterstützung für NFS, das Netzwerk-Dateisystem (Network File System), wünschen. NFS ermöglicht es Ihnen, Dateisysteme an verschiedene Maschinen zu exportieren, so daß die Dateien auf diesen Rechnern erscheinen, als befänden sie sich auf einer ganz normalen lokalen Festplatte.
NFS file system support (CONFIG_NFS_FS) [y]
In Kapitel 14 Das Network File System, werden wir uns ausführlich mit NFS beschäftigen.
Linux 2.0.0 ist ein Meilenstein im Linux-Netzwerkdesign. Viele Features wie z.B. IPX, die sich bisher nur im experimentellen Stadium befanden, gehören nun standardmäßig zum Linux-Kernel. Eine Vielzahl neuer konfigurierbarer Optionen kam hinzu. Manche dieser Optionen sind so speziell, daß sie hier nicht im Detail behandelt werden; dafür sei auf die jeweils aktuellen Networking-HOWTOs verwiesen. In diesem Abschnitt beschäftigen wir uns nur mit einigen nützlichen Optionen.
Um TCP/IP-Networking zu benutzen, müssen Sie diese Frage mit Ja (y
) beantworten. Wenn Sie mit n
antworten, haben Sie aber immer noch die Möglichkeit, IPX-Unterstützung einzubinden.
Networking options ---> [*] TCP/IP networking
Diese Option müssen Sie einschalten, wenn Ihr System als Gateway zwischen zwei Netzen oder einem LAN und einer SLIP-Verbindung usw. dienen soll. Obwohl es nicht schadet, IP-Forwarding grundsätzlich bereitzustellen, möchten Sie vielleicht darauf verzichten, um Ihr System als sogenannten Firewall (wörtlich: Brandschutzmauer) zu konfigurieren. Firewalls sind Rechner, die an zwei oder mehrere Netze angeschlossen sind, aber keine Pakete vom einen ins andere routen. Sie werden häufig dazu benutzt, um beispielsweise Mitarbeitern einer Firma Zugang zum Internet zu bieten, aber gleichzeitig die Risiken für das firmeninterne Netz zu begrenzen. Benutzer können Internetdienste nutzen, aber alle anderen Maschinen im eigenen Netz sind vor Angriffen von außen geschützt, da hereinkommende Verbindungen nur bis zum Firewall gelangen (Firewalls werden ausführlich in Kapitel 9 TCP/IP-Firewall, behandelt).
[*] IP: forwarding/gatewaying
Mit diesen Optionen kann man einer einzelnen Schnittstelle mehrere IP-Adressen zuordnen. Das ist besonders dann von Vorteil, wenn Sie ein sogenanntes “Virtual Hosting” durchführen wollen. Dabei wird eine einzelne Maschine so konfiguriert, daß man den Eindruck hat, es handelt sich dabei um mehrere separate Maschinen, die jeweils eigene Netzwerkeigenschaften haben. Auf das IP Aliasing werden wir in Kürze näher eingehen.
[*] Network aliasing <*> IP: aliasing support
Ist diese Option aktiviert, wird ein Protokoll über den Umfang aller auf Ihrer Maschine hereinkommenden und ausgehenden IP-Pakete geführt. Auf die Details wird ausführlich in Kapitel 10 IP-Accounting, eingegangen.
[*] IP: accounting
Diese Option umgeht eine Inkompatibilität mit einigen Versionen von PC/TCP, einer kommerziellen TCP/IP-Implementierung für DOS-basierte PCs. Wenn Sie diese Option einschalten, können Sie immer noch mit normalen UNIX-Maschinen kommunizieren; allerdings kann der Durchsatz über langsame Verbindungen wie SLIP etwas darunter leiden.
--- (it is safe to leave these untouched) [*] IP: PC/TCP compatibility mode
Diese Funktion stellt RARP, das Reverse Address Resolution Protocol, bereit. RARP bedeutet soviel wie “umgekehrte Adreßauflösung” und wird von X-Terminals und ähnlichem benutzt, um beim Booten die eigene IP-Adresse herauszufinden. Sie sollten RARP nur dann einschalten, wenn Sie diese Art von Geräten bedienen wollen. Die Standard-Netzwerk-Utilities enthalten ein Programm names rarp, mit dem man Systeme in die RARP-Tabelle des Kernels eintragen kann.
<*> IP: Reverse ARP
Wenn Sie Daten über eine TCP-Verbindung transportieren, muß der Kernel sie erst in kleinere Pakete aufteilen, bevor er sie an die IP-Schicht weiterreicht. Die Größe dieser Pakete wird als “maximale Übertragungseinheit” bzw. Maximum Transmission Unit (MTU) bezeichnet. Für Hosts, die über ein lokales Netz (z.B. Ethernet) erreichbar sind, bietet sich als MTU die für Ethernets maximal mögliche Größe von 1.500 Bytes an. Wird IP dagegen über Wide Area Networks (z.B. das Internet) geroutet, ist es angebracht, kleinere Datagramme zu verwenden, um sicherzustellen, daß sie während ihrer Übertragung mittels IP-Fragmentation nicht in noch kleinere Pakete aufgeteilt werden müssen.3 Der Kernel ist standardmäßig dazu in der Lage, die kleinste MTU einer IP-Route selbst zu ermitteln und automatisch eine passende TCP-Verbindung zu konfigurieren. Wenn Sie die Frage mit Ja (y
) beantworten, wird dieses Feature abgeschaltet.
Wenn man es unbedingt möchte, kann man für die Daten, die an spezifische Hosts (z.B. über eine SLIP-Verbindung) verschickt werden, auch eine kleinere Paketgröße einstellen. Dies wird durch die Option mss des Kommandos route bewerkstelligt. Auf diesen Befehl wird kurz am Ende dieses Kapitels eingegangen.
[ ] IP: Disable Path MTU Discovery (normally enabled)
Das IP-Protokoll unterstützt eine besondere Eigenschaft namens Source Routing. Dieses Verfahren gestattet es Ihnen, die Route eines Datagramms zu spezifizieren, über die es übertragen werden soll. Dabei werden die Informationen über diese Route direkt im Datagramm selbst codiert. Das war vielleicht früher mal eine nützliche Methode, bevor sich Routing-Protokolle wie RIP und OSPF durchsetzten. Heutzutage wäre ein solches Protokoll jedoch ein Sicherheitsrisiko, da es von cleveren Hackern genutzt werden könnte, um diverse Arten von Firewalls zu durchbrechen, indem einfach die Routing-Tabellen der Router umgangen werden. Sicherlich werden Sie solche Datagramme aus Ihrem System herausfiltern wollen. Deshalb ist diese Option standardmäßig aktiviert.
[*] IP: Drop source routed frames
Diese Option stellt Unterstützung für IPX bereit, ein Protokoll, das in Novell-Netzwerken benutzt wird. Sie ist besonders nützlich, wenn Sie in Ihrem Netzwerk auch Novell-Fileserver haben, da Linux ziemlich gut als IPX-Router fungieren kann. IPX-Support wird auch für das NCP-Dateisystem benötigt. Wenn Sie Ihre Novell-Dateisysteme an Linux-Dateisysteme mounten wollen (bzw. umgekehrt), muß diese Option aktiviert sein. Mit IPX und dem NCP-Dateisystem beschäftigen wir uns in Kapitel 15 IPX und das NCP-Dateisystem.
<*> The IPX protocol
Diese Optionen stellen die drei von Linux unterstützten Amateurfunk-Protokolle zur Verfügung: AX.25, NetRom und Rose. Wir werden hier nicht näher darauf eingehen, sondern verweisen statt dessen auf das AX25-HOWTO.
<*> Amateur Radio AX.25 Level 2 <*> Amateur Radio NET/ROM <*> Amateur Radio X.25 PLP (Rose)
Linux unterstützt noch einen weiteren Treibertyp: den Dummy-Treiber. Die folgende Frage erscheint am Anfang des Abschnittes, in dem Sie die Treiber für die Netzwerkgeräte auswählen können:
<*> Dummy net driver support
Der Dummy-Treiber tut nicht besonders viel, wie der Name auch schon ahnen läßt, ist aber auf einem Rechner ohne Netzanbindung oder mit nur einer SLIP-Verbindung sehr nützlich. Er ist im wesentlichen ein maskiertes Loopback-Interface. Der Grund, eine solche Schnittstelle zu haben, ist folgender: Auf einer Maschine, die SLIP, aber kein Ethernet hat, wünscht man sich eine Schnittstelle, die die ganze Zeit Ihre IP-Adresse trägt, und nicht nur, wenn die SLIP-Verbindung aktiv ist. Wir werden auf dieses Thema noch etwas ausführlicher im Abschnitt Die Dummy-Schnittstelle in Kapitel 5 TCP/IP-Konfiguration, eingehen. Denselben Effekt erreichen Sie durch Anwendung eines IP-Alias, indem Sie Ihre IP-Adresse als Alias dem Loopback-Interface zuweisen.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Weitere Informationen zum Linux - Wegweiser für Netzwerker
Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center
© 2001, O'Reilly Verlag