Gentoo Logo

Haftungsausschluss: Dieses Handbuch wurde durch eine neuere Version ersetzt und wird nicht länger gepflegt.


[ << ] [ < ] [ Hauptseite ] [ > ] [ >> ]


2. Fortgeschrittene Konfiguration

Inhalt:

2.a. Erweiterte Konfiguration

Das Herz der Konfiguration der Schnittstellen ist die Variable config_eth0. Es ist eine hochsprachliche Anweisungsliste zur Konfiguration der Schnittstelle (in diesem Fall eth0). Die Anweisungen in der Liste werden der Reihe nach abgearbeitet. Wenn mindestens eine Anweisung korrekt ausgeführt wird, wird von einer erfolgreichen Konfiguration der Schnittstelle ausgegangen.

Hier ist eine Liste der eingebauten Anweisungen.

Anweisung Beschreibung
null Nichts machen
noop Wenn die Schnittstelle aktiviert ist und eine Adresse vorhanden ist, beende die Konfiguration erfolgreich.
eine IPv4 oder IPv6 Adresse Die angegebene Adresse zur Schnittstelle hinzufügen
dhcp, adsl or apipa (oder ein spezielles Kommando von einem externen Modul) Das Modul ausführen, das das Kommando bereitstellt. Beispielsweise ruft dhcp ein Modul auf, das DHCP bereitstellt - das kann entweder dhcpcd, dhclient oder pump sein.

Schlägt eine Anweisung fehl, können sie eine andere Anweisung als Ausweichlösung angeben. Dieses muss der Konfigurationsstruktur genau folgen.

Sie können die verschiedenen Anweisungen aneinanderhängen. Es folgen einige Beispiele aus der Praxis.

Befehlsauflistung 1.1: Konfigurationsbeispiel

# Drei IPv4 Adressen hinzufügen
config_eth0="192.168.0.2/24
192.168.0.3/24
192.168.0.4/24"

# Eine IPv4 und zwei IPv6 Adressen hinzufügen
config_eth0="192.168.0.2/24
4321:0:1:2:3:4:567:89ab
4321:0:1:2:3:4:567:89ac"

# Die vom Kernel zugewiesene Adresse so lange behalten wie die Schnittstelle
# aktiviert ist. Danach wird eine neue per DHCP zugewiesen.
# Schlägt DHCP fehl, füge eine statische IP Adresse per APIPA hinzu.
config_eth0="noop
dhcp"

fallback_eth0="null
apipa"

Notiz: Wenn Sie das ifconfig Modul benutzen und mehr als eine Adresse hinzufügen, wird für jede neue Adresse ein Alias erstellt. Mit obigem Beispiel erhalten Sie zum Beispiel die Schnittstellen eth0, eth0:1 und eth0:2. Sie können damit nichts weiter anfangen, da der Kernel und andere Programme eth0:1 und eth0:2 einfach als eth0 behandeln werden.

Wichtig: Die Reihenfolge in den Anweisungen der Ausweichlösung ist wichtig! Würden wir nicht die null Option hinzufügen, würde apipa nur ausgeführt, wenn noop fehlschlagen würde.

Notiz: APIPA und DHCP werden später im Detail behandelt.

2.b. Netzwerk-Abhängigkeiten

Initskripte in /etc/init.d können von einer speziellen Netzwerkschnittstelle abhängen oder einfach von net. Alle Netzwerkschnittstellen in Gentoos Init-System stellen net bereit.

Falls in /etc/rc.conf rc_depend_strict="YES" gesetzt ist, müssen alle Netzwerkschnittstellen, die net bereitstellen, aktiv sein, bevor eine Abhängigkeit auf "net" als gegeben angenommen wird. In anderen Worten, falls Sie ein net.eth0 und net.eth1 sowie ein Init-Skript haben, das von "net" abhängt, müssen beide Schnittstellen aktiviert sein.

Andernfalls, wenn Sie rc_depend_strict="NO" gesetzt haben, dann wird die "net"-Abhängigkeit als gegeben angenommen, sobald mindestens eine Netzwerkschnittstelle aktiv ist.

Was aber, wenn net.br0 von net.eth0 und net.eth1 abhängt? net.eth1 könnte eine drahtlose oder Wählverbindung sein, die vor dem Hinzufügen zur Bridge konfiguriert werden muss. Das kann nicht in /etc/init.d/net.br0 erfolgen, da es sich um einen symbolischen Link auf net.lo handelt.

Die Antwort darauf lautet, dass Sie eine rc_need_ Einstellung in /etc/conf.d/net definieren.

Befehlsauflistung 2.1: net.br0 Abhängigkeit in /etc/conf.d/net

rc_need_br0="net.eth0 net.eth1"

Das allein reicht aber nicht aus. Gentoos Init-Skripte verwenden eine virtuelle Abhängigkeit namens net, die dem System mitteilt, wann Netzwerkfunktionalität vorhanden ist. In obigem Beispiel sollte die Netzwerkfunktionalität aber offensichtlich erst als vorhanden gesehen werden, wenn net.br0 gestartet wurde, nicht wenn die anderen gestartet wurden. Wir müssen dies ebenfalls in /etc/conf.d/net angeben:

Befehlsauflistung 2.2: Aktualisieren der virtuellen Abhängigkeiten und Voraussetzungen für Netzwerkfunktionalität

rc_net_lo_provide="!net"
rc_net_eth0_provide="!net"
rc_net_eth1_provide="!net"

Weitere Details zu Abhängigkeiten gibt es im Kapitel Schreiben von Initskripten des Gentoo Handbuchs. Weitere Informationen zur /etc/rc.conf finden Sie als Kommentare innerhalb der Datei.

2.c. Variablennamen und ihre Werte

Variablennamen sind dynamisch. Normalerweise gehorchen sie der Struktur variable_${interface|mac|essid|apmac}. Zum Beispiel verwaltet die Variable dhcpcd_eth0 die Werte für dhcpcd Optionen für eth0 und dhcpcd_essid verwaltet die Werte der dhcpcd Optionen, wann immer sich eine Schnittstelle zur ESSID "essid" verbindet.

Nichtsdestotrotz gibt es keine harte Regel, die angibt, das Schnittstellen dem Schema ethx folgen müssen. In der Tat besitzen viele drahtlose Schnittstellen die Namen wlanx, rax oder auch ethx. Einige benutzerdefinierte Schnittstellen wie Bridges können frei wählbare Namen gegeben werden, etwa foo. Um das ganze noch etwas interessanter zu gestalten, können drahtlose Zugangspunkte Namen mit nicht alphanumerischen Zeichen haben - das ist wichtig, da Netzwerkparameter per ESSID eingestellt werden können.

Der Nachteil dessen ist aber, das dadurch Konflikte auftreten, denn Gentoo benutzt bash Variablen - die dürfen allerdings nur englische alphanumerische Zeichen enthalten. Um diese Beschränkung zu umgehen, ersetzen wir alle Zeichen, die keine englischen alphanumerischen Zeichen sind, durch ein _ Zeichen.

Ein weiterer Nachteil der bash ist der Variableninhalt - einige Zeichen müssen escaped (durch umgekehrten Schrägstrich geschützt) werden. Dazu setzt man ein \ Zeichen vor das Zeichen, das escaped werden muss. Die folgende Liste von Zeichen muss auf diese Weise escaped werden: ", ' und \.

In diesem Beispiel benutzen wir eine drahtlose ESSID, da diese den größten Bereich an Zeichen zulässt. Gehen wir davon aus, dass wir die ESSID My "\ NET verwenden:

Befehlsauflistung 3.1: Beispiel für Variablennamen

(Dies funktioniert, aber die Domäne ist ungültig)
dns_domain_My____NET="My \"\\ NET"

(Obige Anweisung setzt die DNS-Domain auf My "\ NET, wenn eine drahtlose
Netzwerkkarte sich mit dem Zugangspunkt mit der ESSID My "\ NET verbindet.)

[ << ] [ < ] [ Hauptseite ] [ > ] [ >> ]


Drucken

Alles ansehen

Seite aktualisiert 19. August 2011

Diese Übersetzung wird nicht länger gepflegt

Zusammenfassung: Hier lernen Sie, wie die Konfiguration funktioniert - Sie benötigen dieses Wissen bevor wir über modulare Netzwerknutzung sprechen können.

Sven Vermeulen
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Gentoo x86 Entwickler

Tavis Ormandy
Gentoo Alpha Entwickler

Jason Huebel
Gentoo AMD64 Entwickler

Guy Martin
Gentoo HPPA Entwickler

Pieter Van den Abeele
Gentoo PPC Entwickler

Joe Kallar
Gentoo SPARC Entwickler

John P. Davis
Bearbeiter

Pierre-Henri Jondot
Bearbeiter

Eric Stockbridge
Bearbeiter

Rajiv Manglani
Bearbeiter

Jungmin Seo
Bearbeiter

Stoyan Zhekov
Bearbeiter

Jared Hudson
Bearbeiter

Colin Morey
Bearbeiter

Jorge Paulo
Bearbeiter

Carl Anderson
Bearbeiter

Jon Portnoy
Bearbeiter

Zack Gilburd
Bearbeiter

Jack Morgan
Bearbeiter

Benny Chuang
Bearbeiter

Erwin
Bearbeiter

Joshua Kinard
Bearbeiter

Tobias Scherbaum
Bearbeiter

Xavier Neys
Bearbeiter

Grant Goodyear
Korrektor

Gerald J. Normandin Jr.
Korrektor

Donnie Berkholz
Korrektor

Ken Nowack
Korrektor

Lars Weiler
Mitarbeiter

Tobias Scherbaum
Übersetzer

Jens Schittenhelm
Übersetzer

Patrick Sudowe
Übersetzer

Torsten Veller
Übersetzer

Michael Frey
Übersetzer

Markus Nigbur
Übersetzer

Boris Ruppert
Übersetzer

Jan Hendrik Grahl
Übersetzer

Christian Hartmann
Korrektor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.