Zurück Weiter Inhalt

8. Konfiguration des Kernels

Bevor mit der Arbeit der Konfiguration des Netzwerkes begonnen werden kann muß sichergestellt sein, daß der verwendete Kernel die gewünschten Netzwerkprotokolle und Hardware unterstützt. Der sicherste Weg hierfür besteht darin, sich seinen Kernel selber zu kompilieren. Dies ist generell anzuraten, da auf diese Weise nicht benötigte Treiber weggelassen werden können und der resultierende Kernel weniger Speicher belegt.

Vorausgesetzt, die Kernel-Quellen sind bereits an der richtigen Stelle entpackt und die benötigten Patches eingespielt worden, sollte zunächst ein Blick in die Datei /usr/src/linux/drivers/net/CONFIG geworfen werden. Sie enthält viele Kommentare, die bei der Auswahl der Optionen helfen, aber normalerweise sind keine Veränderungen notwendig. Wirklich notwendig sind Änderungen nur bei exotischen Ethernet-Karten oder bei solchen, die von den Treibern nicht automatisch erkannt werden. In diesem Fall können einige Einstellungen der Karte direkt im Code festgelegt werden. Ein Beispiel sind die (Fast-)nachbauten der WD-8013, hier muß die Adresse des Shared-Memory-Bereiches eingestellt werden, damit auch diese Karten korrekt erkannt und betrieben werden können. Ebenfalls in dieser Datei können einige Parameter für den PLIP-Treiber eingestellt werden, jedoch sind die Standard-Einstellungen außer für extrem langsame Rechner ausreichend.

Das Ethernet-HOWTO (http://sunsite.unc.edu/mdw/HOWTO/Ethernet-HOWTO) gibt genauere Informationen über diese Datei und darüber, wie sie das Verhalten der Treiber beeinflußt.

Ist die Konfigurationsdatei zufriedenstellend zusammengestellt, kann mit der eigentlichen Kernel-Kompilation begonnen werden. Der erste Schritt besteht darin, das Makefile im obersten Verzeichnis zu editieren um Sicherzustellen, daß die korrekten VAG-Einstellungen verwendet werden. Danach muß man das Kernel-Konfigurationsprogramm starten:

% cd /usr/src/linux
% make config

Nun werden eine ganze Reihe an Fragen gestellt. Sie gliedern sich in vier Hauptgruppen: Generelle Einstellungen, Netzwerk-Einstellungen, Netzwerk-Hardware-Unterstützung und Dateisysteme. Der komplexeste ist der Abschnitt ist die Hardware-Unterstützung für das Netzwerk, da hier die richtigen Geräte ausgewählt werden müssen, die hinterher unterstützt werden. Für die meisten anderen Einstellungen können die vorgegebenen Werte ohne große Bedenken verwendet werden. Der Ablauf wird in etwa so aussehen:

*
* General setup
*
 ...
 ...
Networking support (CONFIG_NET) [y] y
 ...
 ...

Im allgemeinen Abschnitt wird zunächst nur festgelegt, ob überhaupt Netzwerk-Unterstützung gewünscht ist. Selbstverständlich muß man darauf mit Ja antworten ;-)

*
* Networking options
*
TCP/IP networking (CONFIG_INET) [y] 
IP forwarding/gatewaying (CONFIG_IP_FORWARD) [n] 
IP multicasting (CONFIG_IP_MULTICAST) [n] 
IP firewalling (CONFIG_IP_FIREWALL) [n] 
IP accounting (CONFIG_IP_ACCT) [n] 
*
* (it is safe to leave these untouched)
*
PC/TCP compatibility mode (CONFIG_INET_PCTCP) [n] 
Reverse ARP (CONFIG_INET_RARP) [n] 
Assume subnets are local (CONFIG_INET_SNARL) [y] 
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n] 
The IPX protocol (CONFIG_IPX) [n] 
*

Die zweite Hälfte des Abschnittes Netzwerk-Optionen erlaubt es, einige seltsame Dinge an- oder abzuschalten. Die Standardeinstellungen sind hier immer die sichere Wahl. Was sie im einzelnen bedeuten, wird später noch erklärt. Doch wer andere als die Standard-Einstellung verwenden will sollte schon genau wissen, was er vorhat.

*
*
* Network device support
*
Network device support? (CONFIG_NETDEVICES) [y] 
Dummy net driver support (CONFIG_DUMMY) [n] 
SLIP (serial line) support (CONFIG_SLIP) [y] 
 CSLIP compressed headers (CONFIG_SLIP_COMPRESSED) [y] 
 16 channels instead of 4 (SL_SLIP_LOTS) [n] 
PPP (point-to-point) support (CONFIG_PPP) [y] 
PLIP (parallel port) support (CONFIG_PLIP) [n] 
Do you want to be offered ALPHA test drivers (CONFIG_NET_ALPHA) [n] 
Western Digital/SMC cards (CONFIG_NET_VENDOR_SMC) [y] 
WD80*3 support (CONFIG_WD80x3) [y] 
SMC Ultra support (CONFIG_ULTRA) [n] 
AMD LANCE and PCnet (AT1500 and NE2100) support (CONFIG_LANCE) [n] 
3COM cards (CONFIG_NET_VENDOR_3COM) [n] 
Other ISA cards (CONFIG_NET_ISA) [n] 
EISA, VLB, PCI and on board controllers (CONFIG_NET_EISA) [n] 
Pocket and portable adaptors (CONFIG_NET_POCKET) [n] 
*

Dieser Abschnitt ist der wichtigste. Hier wird eingestellt, welche Hardware-Unterstützung eingebunden werden soll. Im obenstehenden Beispiel sind Unterstützung für SLIP mit komprimierten Heraderdateien, für PPP und der WD80*3-Treiber ausgewählt, und sonst alles andere abgeschaltet. Weitere Optionen können auftauchen, je nachdem, welche Antworten man gibt. So taucht z.B. die Frage nach dem komprimierten SLIP und den 16 Kanälen nicht auf, wenn man bei der Frage für SLIP... mit n antwortet. Generell sollte man bei all den Dingen, mit denen man herumspielen will, mit y antworten und alle anderen mit n abschalten.

*
* Filesystems
*
 ...
 ...
/proc filesystem support (CONFIG_PROC_FS) [y] 
NFS filesystem support (CONFIG_NFS_FS) [y] 
 ...
 ...

Wer einen NFS-Klienten aufbauen will, um Dateisysteme von anderen Rechnern zu importieren, der muß auf die Frage nach Unterstützung für NFS mit y antworten. Meist ist es auch notwendig, das /proc-Filesystem einzubinden, da es von einigen Netzwerkprogrammen benutzt wird.

Nach vollendeter Konfiguration verbleibt es nur noch, den Kernel auch wirklich zu kompilieren:

% make dep
% make

Geht alles glatt, darf man ein abschließendes make zlilo nicht vergessen, damit der neue Kernel auch installiert wird.

8.1 Was bedeuten denn alle diese Netzwerk-Optionen ?

Die neueren Kernels haben eine Vielzahl an Konfigurations-Optionen, die bei einem make config abgefragt werden. Normalerweise müssen sie Standard-Einstellungen nicht verändert werden, doch einige Optionen können unter Umständen hilfreich sein.

TCP/IP Netzwerk

Dies ist offensichtlich: Damit wird eingestellt, ob der Kernel das TCP/IP-Protokoll unterstützt. Wer dieses HOWTO liest, wird mit ziemlicher Sicherheit mit y darauf antworten.

Dummy Networking Device

Dies ist ein Pseudo-Gerät. Es wurde eingeführt, damit SLIP und PPP-Nutzer ihren Rechner auch dann auf eine Netzwerkadresse konfigurieren können, wenn gerade keine serielle Verbindung zum Provider besteht. Es stellt weiterhin eine sehr einfache Möglichkeit dar, einen Linux-Rechner mit zwei verschiedenen Adressen zu versehen.

IP forwarding/gatewaying

Diese Einstellung legt fest, was der Linux-Kernel mit einem Datagramm macht, das an keines der konfigurierten Geräte adressiert ist. Ist sie abgeschaltet, so ignoriert der Kernel solche Pakete. Wer seinen Rechner als Router verwenden will, muß diese Option aktivieren. Dies gilt z.B. auch für SLIP und PPP Server.

IP multicasting

Dabei handelt es sich um eine experimentelle Unterstützung von Anwendungen wie `Internet Talk Radio' oder `Live Video'. Es ist jedoch eine reine Kernel-Unterstützung für die benötigten Protokolle, um sie zu benutzen sind spezielle Anwendungsprogramme nötig.

IP Firewalling

Diese Einstellung ermöglicht es, sehr flexible Sicherheitsschranken für das Linux-Netzwerk zu konfigurieren. So können z.B. TCP/IP-Verbindungen auf der Basis der Netzwerkadressen erlaubt und abgeschaltet werden. Es sind aber auch zusätzliche Programme nötig, um diese Möglichkeiten zu nutzen.

IP Accounting

Diese Option kann von Leuten benutzt werden, die mit ihrem Linux-Rechner Internet-Verbindungen auf kommerzieller Basis anbieten wollen, z.B. über einen SLIP-Server. Sie erlaubt es, ein- und ausgehende Datagramme nach Adresse oder serieller Verbindung zu zählen. Mit der geeigneten Software können so detaillierte Rechnungen für jeden Nutzer des Netzwerkes aufgestellt werden.

PC/TCP Compatibility Mode

Dieser Modus bietet eine Umgehung von Problemen, die auftauchen, wenn PC/TCP-Netzwerk-Programme mit dem Linux-Rechner kommunizieren wollen: Es gibt einen Fehler im PC/TCP-Protokoll, der wiederum einen schwer zu beseitigenden Fehler auf der Linux-Seite hervorruft. Diese Option verhindert, daß solche Probleme auftreten. Normalerweise wird sie nicht benötigt und bleibt ausgeschaltet. Wer jedoch in seinem Netz Benutzer hat, die PC/TCP verwenden, sollte diesen Modus aktivieren, um Problemen vorzubeugen.

Reverse ARP

Damit kann das Protokoll zur umgekehrten Adress-Auflösung (RARP) in den Kernel aufgenommen werden. Es wurde eingeführt, damit Sun-3 Systeme booten können. Für andere Rechner ist es normalerweise nicht sinnvoll.

Assume subnets are local

Hiermit wird eingestellt, ob das gesamte Unter-Netzwerk direkt an den Linux-Rechner angeschlossen ist, oder ob es noch weiter unterteilt und z.B. durch Bridges (Brücken) verbunden ist. Es macht für gewöhnlich keinen Unterschied, ob man die Standard-Einstellung verwendet oder nicht.

Disable NAGLE algorithm

Der NAGLE-Algorithmus legt fest, wann ein Datagramm losgeschickt werden kann. Die Standard-Einstellung ist auf optimalen Datendurchsatz für die meisten Situationen eingestellt und sollte so belassen werden, da andernfalls die Leistungsfähigkeit der Netzverbindung abnimmt. Da die Verwendung des NAGLE-Algorithmus auch von einem Programm aus über eine Socket-Option verändert werden kann fährt man normalerweise besser, sie standardmäßig zu aktivieren und ihn für Fälle, in denen Programme eine besonders schnelle Reaktionszeit über das Netz benötigen, aus diesem Programm heraus temporär zu deaktivieren.

The IPX protocol

Legt fest, ob das IPX-Protokoll vom Kernel unterstützt werden soll. Es handelt sich dabei um Inter-Netzwerk-Protokoll ähnlich wie IP und ist eines der von Novell verwendeten Protokolle.

Amateur Radio AX.25 Level2

Damit aktiviert man die Unterstützung für das AX.25-Protokoll von Amateur Radio. Dadurch werden eine Reihe zusätzlicher Sockets zur Programmierung freigegeben. Das AX.25-Protokoll wird vorrangig für Packet Radio verwendet.


Zurück Weiter Inhalt