Gentoo Logo

1.  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.

1.  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 1.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 1.1: 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.

1.  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 1.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.)

Seite aktualisiert 19. August 2011

Zusammenfassung: Hier lernt man wie die Konfiguration funktioniert. Sie werden dies brauchen, bevor Sie sich mit der modularen Netzwerkkonfiguration vertraut machen.

Donate to support our development efforts.

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