Gentoo Linux sparc Handbuch: Netzwerk-Konfiguration

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:SPARC/Full/Networking and the translation is 100% complete.



Der folgende Netzwerkteil des Handbuchs beschreibt die 'fortgeschrittene' Netzwerkkonfiguration für Systeme, die das OpenRC-Init-System mit netifrc als Netzwerkmanagementsystem verwenden.

Für Systeme, auf denen systemd läuft, sollten die Leser den Networking-Teil des systemd-Artikels durchlesen.

Erste Schritte

In diesem Netzwerkhandbuch wird davon ausgegangen, dass der Benutzer das System korrekt konfiguriert und den/die Namen der Netzwerkschnittstelle(n) der Hardware bestimmt hat. Der Name der Netzwerkschnittstelle wird auf der Grundlage der Busposition der Netzwerkkarte(n) im System erstellt. Aus diesem Grund gibt es potenzielle Varianten für Schnittstellennamen wie eno0, ens1, wlan0, enp1s0 usw. Jedes System kann einen etwas anderen Schnittstellennamen haben. Im Folgenden wird davon ausgegangen, dass der Name der zu konfigurierenden Schnittstelle eth0 ist, obwohl jeder der oben genannten Namen funktioniert.

Um mit der Konfiguration der Netzwerkkarte zu beginnen, geben Sie dem Gentoo RC System über sie Bescheid. Dies geschieht im Verzeichnis /etc/init.d dadurch die Erzeugung eines symbolischen Links auf net.lo mit dem Namen net.eth0 (oder wie auch immer die Netzwerkschnittstelle auf dem System heißt).

root #cd /etc/init.d
root #ln -s net.lo net.eth0

Gentoos RC System weiß nun dass es die Schnittstelle gibt. Es muss außerdem darüber Bescheid wissen, wie die neue Netzwerkschnittstelle zu konfigurieren ist. Alle Netzwerkschnittstellen werden in der /etc/conf.d/net Datei konfiguriert. Unten befindet sich eine Beispielkonfiguration für DHCP und statische Adressen.

DATEI /etc/conf.d/netBeispiel-Netzwerkkonfiguration
# Für DHCP
config_eth0="dhcp"
  
# Für statisches IP mit CIDR-Notation
config_eth0="192.168.0.7/24"
routes_eth0="default via 192.168.0.1"
dns_servers_eth0="192.168.0.1 8.8.8.8"
  
# Für statisches IP mit Netmask-Notation
config_eth0="192.168.0.7 netmask 255.255.255.0"
routes_eth0="default via 192.168.0.1"
dns_servers_eth0="192.168.0.1 8.8.8.8"
Hinweis
Wenn für eine Schnittstelle keine Konfiguration genannt ist, wird DHCP angenommen.
Hinweis
CIDR steht für Classless Inter-Domain Routing. Ursprünglich wurden die IPv4 Adressen in A, B oder C eingeteilt. Das frühe Einteilungssystem sah die starke Popularität des Internets nicht voraus und befindet sich in der Gefahr, dass ihm neue eindeutige Adressen ausgehen. CIDR ist ein Adressierungsschema das es erlaubt einer IP-Adresse viele IP-Adressen zuzuordnen. Eine CIDR IP-Adresse sieht wie eine gewöhnliche IP-Adresse aus mit dem Unterschied, dass sie mit einem Schrägstrich gefolgt von einer Nummer endet (beispielsweise 192.168.0.0/16). CIDR wird in RFC 1519 beschrieben.

Nun da die Schnittstelle konfiguriert ist, können wir sie über den folgenden Befehl starten und stoppen:

root #rc-service net.eth0 start
root #rc-service net.eth0 stop
Wichtig
Bei der Lösung von Netzwerkproblemen sollten Sie einen Blick in die Datei /var/log/rc.log werfen. Solange die rc_logger Variable in der Konfigurationsdatei /etc/rc.conf nicht auf NO eingestellt ist, werden Aktivitäten beim Booten in dieser Log-Datei gespeichert.

Nun da die Netzwerkschnittstelle erfolgreich angehalten und gestartet wurde, ist der nächste Schritt sie automatisch beim Booten von Gentoo starten zu lassen. Und So machen Sie das:

root #rc-update add net.eth0 default
root #rc
Hinweis
Der letzte Befehl rc weist Gentoo an, alle Skripte im aktuellen Runlevel die noch nicht gestartet wurden zu starten.





Erweiterte Konfiguration

Die Variable config_eth0 ist das Herzstück einer Schnittstellenkonfiguration. Sie ist eine übergeordnete Befehlsliste für die Konfiguration der Schnittstelle (in diesem Fall eth0). Jeder Befehl in der Befehlsliste wird der Reihe nach ausgeführt. Die Schnittstelle gilt als OK, wenn mindestens ein Befehl funktioniert.

Hier ist eine Liste von eingebauten Anweisungen:

Wert Beschreibung
null Nichts tun.
noop Wenn die Schnittstelle aktiv ist und eine Adresse vorhanden ist, wird die Konfiguration erfolgreich abgebrochen.
Eine IPv4 oder IPv6 Adresse Hinzufügen der Adresse zur Schnittstelle.
dhcp, adsl, oder apipa (oder ein benutzerdefinierter Wert aus einem Modul eines Drittanbieters) Ausführen des Moduls, das den Befehl bereitstellt. Zum Beispiel wird dhcp ein Modul starten, das DHCP bereitstellt, das von dhcpcd, dhclient oder pump bedient werden kann.

Wenn ein Befehl fehlschlägt, geben Sie einen Fallback-Wert an. Der Fallback-Wert muss genau mit der Konfigurationsstruktur übereinstimmen.

Es ist möglich diese Werte miteinander zu verknüpfen. Hier sind einige Beispiele aus der Praxis:

DATEI /etc/conf.d/netBeispiele für Konfiguration
# Hinzufügen von drei IPv4-Adressen
config_eth0="192.168.0.2/24
192.168.0.3/24
192.168.0.4/24"

# Hinzufügen einer IPv4-Adresse und zweier IPv6-Adressen
config_eth0="192.168.0.2/24
4321:0:1:2:3:4:567:89ab
4321:0:1:2:3:4:567:89ac"

# Behalten Sie unsere vom Kernel zugewiesene Adresse, es sei denn, die Schnittstelle geht
# aus, also weisen Sie eine anderen über DHCP zu. Wenn DHCP fehlschlägt, fügen Sie eine
# statische Adresse, die von APIPA ermittelt wird hinzu.
config_eth0="noop
dhcp"
fallback_eth0="null
apipa"
Hinweis
Wenn Sie das Modul ifconfig verwenden und mehr als eine Adresse hinzufügen werden für jede zusätzliche Adresse Schnittstellen-Aliase erstellt. In den beiden obigen Beispielen erhält der Benutzer also die Schnittstellen eth0, eth0:1 und eth0:2. Es ist nicht möglich, irgendetwas Spezielles mit diesen Schnittstellen zu tun, da der Kernel und andere Programme eth0:1 und eth0:2 einfach als eth0 behandeln.
Wichtig
Die Rückfallreihenfolge ist wichtig! Wenn die Option null nicht angegeben wurde, wird apipa nur ausgeführt, wenn noop fehlgeschlagen ist.

Netzwerkabhängigkeiten

Init-Skripte in /etc/init.d/ können von einer bestimmten Netzwerkschnittstelle oder einfach von "net" abhängen. Alle Netzwerkschnittstellen in Gentoo's Init-System bieten das, was "net" genannt wird.

Wenn in /etc/rc.conf die Variable rc_depend_strict auf YES gesetzt ist, dann müssen alle Netzwerkschnittstellen, die "net" bereitstellen, aktiv sein, bevor eine Abhängigkeit von "net" angenommen wird. Mit anderen Worten: Wenn ein System über net.eth0 und neth.eth1 verfügt und ein Init-Skript von "net" abhängig ist, müssen beide aktiviert sein.

Wenn hingegen rc_depend_strict="NO" gesetzt ist, wird die "net"-Abhängigkeit als aufgelöst markiert, sobald mindestens eine Netzwerkschnittstelle aktiviert ist.

Aber was ist mit net.br0, das von net.eth0 und net.eth1 abhängt? net.eth1 könnte ein drahtloses oder PPP-Gerät sein, das konfiguriert werden muss, bevor es zur Bridge hinzugefügt werden kann. Dies kann nicht in /etc/init.d/net.br0 erfolgen, da dies ein symbolischer Link zu net.lo ist.

Die Antwort ist, eine rc_net_{schnittstelle}_need Einstellung in /etc/conf.d/net zu definieren:

DATEI /etc/conf.d/netHinzufügen einer net.br0-Abhängigkeit
rc_net_br0_need="net.eth0 net.eth1"

Das allein ist jedoch nicht ausreichend. Gentoos Netzwerk-Init-Skripte verwenden eine virtuelle Abhängigkeit namens "net", um dem System mitzuteilen, wann ein Netzwerk verfügbar ist. Im obigen Fall sollte das Netzwerk nur als verfügbar markiert sein, wenn net.br0 verfügbar ist, nicht wenn die anderen verfügbar sind. Also müssen wir das auch in /etc/conf.d/net angeben:

DATEI /etc/conf.d/netAktualisieren der virtuellen Abhängigkeiten und Bestimmungen für die Vernetzung
rc_net_eth0_provide="!net"
rc_net_eth1_provide="!net"

Für eine detaillierte Diskussion über Abhängigkeiten lesen Sie bitte den Abschnitt über das Schreiben von Initskripten im Gentoo Handbuch. Weitere Informationen über /etc/rc.conf sind als Kommentare in dieser Datei verfügbar.

Variablennamen und -werte

Variablennamen sind dynamisch. Sie folgen normalerweise der Struktur von variable_${interface|mac|essid|apmac}. Zum Beispiel enthält die Variable dhcpcd_eth0 den Wert für dhcpcd-Optionen für eth0 und dhcpcd_essid enthält den Wert für dhcpcd-Optionen, wenn eine Schnittstelle mit der ESSID "essid" verbunden ist.

Es gibt jedoch keine feste Regel, die besagt, dass Schnittstellennamen ethx sein müssen. Tatsächlich haben viele drahtlose Schnittstellen Namen wie wlanx, rax oder auch ethx. Außerdem können einige benutzerdefinierte Schnittstellen wie z.B. Bridges, einen beliebigen Namen erhalten. Um das Leben interessanter zu machen, können drahtlose Zugangspunkte Namen mit nicht-alphanumerischen Zeichen haben - dies ist wichtig, weil Benutzer Netzwerkparameter pro ESSID konfigurieren können.

Der Nachteil von all dem ist, dass Gentoo Bash-Variablen für die Vernetzung verwendet- und Bash kann nichts außerhalb der englischen Alphanumerik verwenden. Um diese Einschränkung zu umgehen, ändern wird jedes Zeichen, dass keine englische Alphanumerik ist, in ein _ (Unterstrich) Zeichen.

Ein weiterer Nachteil der Bash ist der Inhalt von Variablen - einige Zeichen müssen mit einem Escape-Zeichen versehen werden. Dies kann erreicht werden, indem man das Zeichen \ (Backslash) vor das Zeichen setzt, das escaped werden muss. Die folgende Liste von Zeichen muss auf diese Weise escaped werden: ", ' und \.

In diesem Beispiel verwenden wir eine drahtlose ESSID, da sie die meisten Zeichen enthalten kann. Wir verwenden die ESSID Mein "\ NET:

DATEI /etc/conf.d/netVariablennamen
# Dies funktioniet zwar, aber die Domäne ist ungültig
dns_domain_My____NET="My \"\\ NET"

Die obige Einstellung setzt die DNS-Domäne auf Mein "\ NET, wenn eine drahtlose Karte eine Verbindung zu einem AP herstellt, dessen ESSID Mein \ NET ist:

Benennung der Netzwerkschnittstellen

Wie es funktioniert

Netzwerkschnittstellennamen werden nicht willkürlich gewählt: Der Linux-Kernel und der Gerätemanager (die meisten Systeme haben udev als Gerätemanager, obwohl auch andere verfügbar sind) wählen den Schnittstellennamen nach einem festen Regelwerk.

Wenn eine Schnittstellenkarte in einem System erkannt wird, sammelt der Linux-Kernel die notwendigen Daten über diese Karte. Dazu gehören:

  • Der onboard (auf der Schnittstelle selbst) registrierte Name der Netzwerkkarte, der später durch den Wert ID_NET_NAME_ONBOARD angezeigt wird.
  • Der Steckplatz, in dem die Netzwerkkarte eingesteckt ist, was später durch den ID_NET_NAME_SLOT Wert ersichtlich wird.
  • Der Pfad, über den auf das Netzwerkkartengerät zugegriffen werden kann, der später durch den Wert von ID_NET_NAME_PATH angezeigt wird.
  • Die (vom Hersteller bereitgestellte) MAC-Adresse der Karte, die später durch den Wert ID_NET_NAME_MAC angezeigt wird.

Auf der Grundlage dieser Informationen entscheidet der Gerätemanager, wie die Schnittstelle auf dem System benannt werden soll. Standardmäßig verwendet er den ersten Treffer der ersten drei oben genannten Variablen (ID_NET_NAME_ONBOARD, _SLOT oder _PATH). Wenn zum Beispiel ID_NET_NAME_ONBOARD gefunden und auf eno1 gesetzt wird, dann wird die Schnittstelle eno1 genannt.

Bei einem aktiven Schnittstellennamen können die Werte der angegebenen Variablen mit udevadm angezeigt werden:

root #udevadm test-builtin net_id /sys/class/net/enp3s0 2>/dev/null
ID_NET_NAME_MAC=enxc80aa9429d76
ID_OUI_FROM_DATABASE=Quanta Computer Inc.
ID_NET_NAME_PATH=enp3s0

Da der erste (und eigentlich einzige) Treffer der obersten drei Variablen ID_NET_NAME_PATH ist, wird sein Wert als Schnittstellenname verwendet. Wenn keine der Variablen Wert enthält, kehrt das System zu der vom Kernel bereitgestellten Benennung zurück (eth0, eth1, usw.)

Verwendung der Kernel-Benennung im alten Stil

Vor dieser Änderung wurden Netzwerkkarten vom Linux-Kernel selbst benannt, abhängig von der Reihenfolge, in der die Treiber geladen werden (neben anderen, möglicherweise noch obskureren Gründen). Dieses Verhalten kann immer noch durch Setzen des Bootparameters net.ifnames=0 im Bootloader aktiviert werden.

Verwendung eigener Namen

Die Idee hinter der Namensänderung ist nicht, die Leute zu verwirren, sondern das Ändern der Namen zu erleichtern. Nehmen wir an, ein System hat zwei Schnittstellen, die anders als eth0 und eth1 bezeichnet werden. Eine ist für den drahtgebundenen Zugriff auf das Netzwerk gedacht, die andere für den drahtlosen Zugriff. Mit der Unterstützung für die Benennung von Schnittstellen können Benutzer diese als lan0 (kabelgebunden) und wifi0 (drahtlos) bezeichnen - es ist am besten, die bisher bekannten Namen wie eth* und wlan* zu vermeiden, da diese immer noch mit den vorgeschlagenen Namen kollidieren können.

Finden Sie heraus, welche Parameter für die Karten gelten, und verwenden Sie diese Informationen, um eine benutzerdefinierte eigene Benennungsregel aufzustellen:

root #udevadm test-builtin net_id /sys/class/net/eth0 2>/dev/null
ID_NET_NAME_MAC=enxc80aa9429d76
ID_OUI_FROM_DATABASE=Quanta Computer Inc.
root #vim /etc/udev/rules.d/70-net-name-use-custom.rules
# Die erste verwendet MAC-Informationen und die 70-er Nummer, um vor anderen Netzregeln zu sein
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="c8:0a:a9:42:9d:76", NAME="lan0"
root #vim /etc/udev/rules.d/76-net-name-use-custom.rules
# Second one uses ID_NET_NAME_PATH information, and 76- number to be between
# 75-net-*.rules and 80-net-*.rules
SUBSYSTEM=="net", ACTION=="add", ENV{ID_NET_NAME_PATH}=="enp3s0", NAME="wifi0"

Da die Regeln vor der Standardregel ausgelöst werden (die Regeln werden in alphanumerischer Reihenfolge ausgelöst d.h. 70 kommt vor 80), werden die in der Regeldatei angegebenen Namen anstelle der Standardnamen verwendet. Die der Datei zugewiesenen Nummer sollte zwischen 76 und 79 liegen (die Umgebungsvariablen werden durch eine Regel definiert, die mit 75 beginnt, und die Fallback-Benennung wird in einer Regel mit der Nummer 70 vorgenommen).





Netzwerkmodule

Netifrc-Skripte unterstützen jetzt modulare Netzwerkskripte, was bedeutet, dass die Unterstützung für neue Schnittstellentypen und Konfigurationsmodule leicht hinzugefügt werden kann, während die Kompatibilität mit den bestehenden erhalten bleibt.

Module werden standardmäßig geladen, wenn das für sie erforderliche Paket installiert ist. Wenn Benutzer hier ein Modul angeben, dessen Paket nicht installiert ist, erhalten sie eine Fehlermeldung mit dem Hinweis, welches Paket sie installieren müssen. Idealerweise wird die Moduleinstellung nur verwendet, wenn zwei oder mehr Pakete installiert sind, die denselben Dienst bereitstellen, und eines dem anderen vorgezogen werden muss.

Hinweis
Alle hier besprochenen Einstellungen werden in /etc/conf.d/net gespeichert, sofern nicht anders angegeben.
DATEI /etc/conf.d/netModul-Definitionen
# ifconfig über iproute2 bevorzugen
modules="ifconfig"
  
# Sie können auch andere Module für eine Schnittstelle bevorzugen
# In diesem Fall bevorzugen wir dhclient gegenüber dhcpcd
modules_eth0="dhclient"
  
# Sie können auch angeben, welche Module nicht verwendet werden sollen - zum Beispiel könen Sie
# zum Beispiel einen Supplicant oder linux-wlan-ng verwenden, um die drahtlose Konfiguration zu steuern, aber Sie möchten trotzdem die Netzwerkeinstellungen pro ESSID konfigurieren, die mit einem Supplicant verbunden ist.
modules="!iwconfig"

Schnittstellen-Handler

Wir bieten derzeit zwei Schnittstellen-Handler an: ifconfig und iproute2. Für jede Art von Netzwerkkonfiguration wird nur einer von ihnen benötigt.

Beide werden standardmäßig als Teil des Systemprofils installiert. iproute2 ist das leistungsfähigere und flexiblere Paket.

Da sowohl ifconfig als auch iproute2 sehr ähnliche Dinge tun, erlauben wir, dass ihre Grundkonfiguration miteinander funktioniert. Zum Beispiel funktionieren die beiden untenstehenden Codeschnipsel unabhängig davon, welches Modul der Benutzer verwendet.

DATEI /etc/conf.d/netBeispiel für verschiedene Ansätze zur Konfiguration
config_eth0="192.168.0.2/24"
config_eth0="192.168.0.2 netmask 255.255.255.0"

# Wir können auch Broadcast angeben  
config_eth0="192.168.0.2/24 brd 192.168.0.255"
config_eth0="192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255"

DHCP

DHCP ist ein Mittel zum Abrufen von Netzwerkinformationen (IP-Adresse, DNS-Server, Gateway usw.) von DHCP-Server. Das heißt, wenn ein DHCP-Server im Netz läuft, muss der Benutzer nur jedem Client sagen, dass er DHCP verwenden soll, und das Netz richtet sich von selbst ein. Natürlich muss der Benutzer andere Dinge wie drahtlose Verbindungen, PPP oder andere Dinge konfigurieren, bevor er DHCP verwenden kann.

DHCP kann von dhclient oder dhcpcd bereitgestellt werden. Jedes DHCP-Modul hat seine Vor- und Nachteile - hier ist eine kurze Zusammenfassung:

DHCP-Modul Paket Pro Kontra
dhclient net-misc/dhcp Entwickelt von ISC, den gleichen Leuten, die auch die BIND-DNS-Software entwicklen. Sehr konfigurierbar Die Konfiguration ist übermäßig komplex, die Software ist ziemlich aufgebläht, kann keine NTP-Server über DHCP beziehen, sendet standardmäßig keinen Hostnamen. Wird nicht mehr upstream gewartet
dhcpcd net-misc/dhcpcd Lange Zeit Gentoo-Standard, keine Abhängigkeit von externen Tools, aktiv von Gentoo entwickelt Kann manchmal langsam sein, noch keine Daemonisierung, wenn Lease unendlich ist

Wenn mehr als eine DHCP-Client installiert ist, geben Sie an, welcher verwendet werden soll - andernfalls wird standardmäßig dhcpcd verwendet, falls verfügbar.

Um bestimmte Optionen an das DHCP-Modul zu senden, verwenden Sie module_eth0="..." (ändern Sie module in das verwendete DHCP-Modul - d.h. dhcpcd_eth0).

Wir versuchen, DHCP relativ unabhängig zu machen - daher unterstützen wir die folgenden Befehle, indem wir die Variable dhcp_eth0 verwenden. Die Voreinstellung ist, keinen dieser Befehle zu setzen:

release
Gibt die IP-Adresse zur Wiederverwendung frei.
nodns
/etc/resolv.conf nicht überschreiben
nontp
/etc/ntp.conf nicht überschreiben
nonis
/etc/yp.conf nicht überschreiben
DATEI /etc/conf.d/netBeispiel einer DHCP-Konfiguration
# Nur erforderlich, wenn Sie mehr als ein DHCP-Modul installiert haben
modules="dhcpcd"
  
config_eth0="dhcp"
dhcpcd_eth0="-t 10" # Timeout nach 10 Sekunden
dhcp_eth0="release nodns nontp nonis" # Nur eine Adresse erhalten
Hinweis
dhcpcd sendet standardmäßig den aktuellen Hostnamen an den DHCP-Server, so dass dieser nicht mehr angegeben werden muss.
DATEI /etc/conf.d/netSample DHCPv6 configuration
# Only needed if more than one DHCP module is installed
modules="dhclient"
  
config_eth0="dhcpv6"
# To use both DHCPv4 and DHCPv6 on a dual-stack network, remove the above line and uncomment the following lines
#config_eth0="dhcp
#dhcpv6"
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# To pass runtime arguments to dhclient for DHCPv6
dhclientv6_eth0="-t 10" # Timeout after 10 seconds
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Set generic DHCPv6 options
dhcpv6_eth0="release nodns nontp nonis nogateway nosendhost"

ADSL mit PPPoE/PPPoA

Installieren Sie zunächst die ADSL-Software:

root #emerge --ask net-dialup/ppp

Zweitens erstellen Sie das PPP-Netzskript und das Netzskript für die Ethernet-Schnittstelle, die von PPP verwendet werden soll:

root #ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
root #ln -s /etc/init.d/net.lo /etc/init.d/net.eth0

Stellen Sie sicher, dass Sie rc_depend_strict in /etc/rc.conf auf YES setzen.

Nun müssen wir /etc/conf.d/net konfigurieren.

DATEI /etc/conf.d/netEine grundlegende PPPoE-Einrichtung
config_eth0=null (Geben Sie die Ethernet-Schnittstelle an)
config_ppp0="ppp"
link_ppp0="eth0" (Geben Sie die Ethernet-Schnittstelle an)
plugins_ppp0="pppoe"
username_ppp0='benutzer'
password_ppp0='passwort'
pppd_ppp0="
noauth
defaultroute
usepeerdns
holdoff 3
child-timeout 60
lcp-echo-interval 15
lcp-echo-failure 3
noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp"
  
rc_net_ppp0_need="net.eth0"

Es ist möglich, das Passwort in /etc/ppp/pap-secrets zu setzen.

DATEI /etc/ppp/pap-secretsBeispiel pap-secrets
# Das * ist wichtig
"benutzername"  *  "passwort"

Wenn PPPoE mit einem USB-Modem verwendet wird, stellen Sie sicher, dass Sie br2684ctl emergen. Bitte lesen Sie /var/db/repos/gentoo/net-dialup/speedtouch-usb/files/README für Informationen über die richtige Konfiguration.

Wichtig
Lesen Sie bitte sorgfältig den Abschnitt über ADSL und PPP in /usr/share/doc/netifrc-*/net.example.bz2. Er enthält viele detaillierte Erklärungen zu allen Einstellungen, die für eine bestimmte PPP-Einrichtung wahrscheinlich erforderlich sind.

APIPA (Automatic Private IP Addressing/Automatische Private IP-Adressierung)

APIPA versucht, eine freie Adresse im Bereich 169.254.0.0-169.254.255.255 zu finden, indem es eine zufällige Adresse in diesem Bereich an die Schnittstelle sendet. Wenn keine Antwort gefunden wird, wird der Schnittstelle diese Adresse zugewiesen.

Dies ist nur für LANs sinnvoll, in denen es keinen DHCP-Server gibt und das System nicht direkt mit dem Internet verbunden ist und alle anderen Computer APIPA verwenden.

Um APIPA-Unterstützung zu erhalten, emergen Sie net-misc/iputils mit dem arping USE-Flag oder net-analyzer/arping.

DATEI /etc/conf.d/netAPIPA-Konfiguration
# Es zuerst mit DHCP versuchen - wenn das fehlschlägt, auf APIPA zurückgreifen
config_eth0="dhcp"
fallback_eth0="apipa"
  
# Einfach APIPA verwenden
config_eth0="apipa"

Bonding

Bonding wird eingesetzt, um die Netzwerkbandbreite zu erhöhen oder die Ausfallsicherheit bei Hardwarefehlern zu verbessern. Wenn ein System über zwei Netzwerkkarten verfügt, die an dasselbe Netzwerk angeschlossen sind, kann der Administrator diese miteinander verbinden, so dass die Anwendungen nur eine Schnittstelle sehen, aber in Wirklichkeit beide Netzwerkkarten nutzen.

Es gibt viele Möglichkeiten, Bonding zu konfigurieren. Einige davon, wie z.B. der 802.3ad-LACP-Modus, erfordern die Unterstützung und zusätzliche Konfiguration des Netzwerk-Switches. Eine Referenz der einzelnen Optionen finden Sie in der lokalen Kopie von /usr/src/linux/Documentation/networking/bonding.txt.

Löschen Sie zunächst die Konfiguration der beteiligten Schnittstellen:

DATEI /etc/conf.d/netLöschen der Schnittstellenkonfiguration
config_eth0="null"
config_eth1="null"
config_eth2="null"

Als nächstes definieren Sie die Verbindung zwischen den Schnittstellen:

DATEI /etc/conf.d/netDefinieren der Bindung
slaves_bond0="eth0 eth1 eth2"
config_bond0="192.168.100.4/24"
# Wählen Sie den richtigen Modus und zusätzliche Konfigurationsoptionen, die Ihren Bedürfnissen entsprechen
mode_bond0="balance-alb"

Entfernen Sie die net.eth*-Dienste aus den Runlevels, erstellen Sie einen net.bond0-Dienst und fügen Sie diesen dem richtigen Runlevel hinzu.

Bridging (802.1d Unterstützung)

Bridging wird verwendet, um Netzwerke miteinander zu verbinden. Ein System kann zum Beispiel einen Server haben, der über ein ADSL-Modem mit dem Internet verbunden ist, und eine drahtlose Zugangskarte, die es anderen Computern ermöglicht, über das ADSL-Modem eine Verbindung zum Internet herzustellen. Es ist möglich, eine Brücke zu erstellen, um die beiden Schnittstellen miteinander zu verbinden.

DATEI /etc/conf.d/netKonfiguration der Brücke
# Konfigurieren der Brücke - "man brctl" für weitere Details
bridge_forward_delay_br0=0
bridge_hello_time_br0=200
bridge_stp_state_br0=1
  
# So fügen Sie Ports zur Brücke br0 hinzu
bridge_br0="eth0 eth1"
  
# Sie müssen die Ports auf Nullwerte konfigurieren, damit dhcp nicht gestartet wird 
config_eth0="null"
config_eth1="null"
  
# Schließlich geben Sie der Brücke eine Adresse - Sie können auch DHCP verwenden
config_br0="192.168.0.1/24"
  
# Abhängig von eth0 und eth1, da diese möglicherweise eine zusätzliche Konfiguration erfordern
rc_net_br0_need="net.eth0 net.eth1"
Wichtig
Für die Verwendung einiger Brückenkonfigurationen konsultieren Sie die Dokumentation der Variablennamen.
Wichtig
Bei der Überbrückung mit IPv6 muss bei SLAAC STP auf 1 gesetzt werden, wie im obigen Beispiel zu sehen ist.

MAC-Adresse

Es ist auch möglich, die MAC-Adresse der Schnittstellen über die Netzwerkkonfigurationsdatei zu ändern.

DATEI /etc/conf.d/netBeispiel für Änderung dre MAC-Adresse
# Festlegen der MAC-Adresse der Schnittstelle
mac_eth0="00:11:22:33:44:55"
  
# Um nur die letzten 3 Bytes zu randomisieren
mac_eth0="random-ending"
  
# Um zwischen den gleichen physikalischen Verbindungstypen (z.B. Glasfaser, Kupfer, drahtlos) alle Anbieter
mac_eth0="random-samekind"
  
# Zur Zufallsauswahl zwischen beliebigen physikalischen Verbindungstypen (z.B. Glasfaser, Kupfer, drahtlos), alle Anbieter
mac_eth0="random-anykind"
  
# Vollständige Zufallsgenerierung - WARNUNG: einige der dadurch erzeugten MAC-Adressen können NICHT wie erwartet funktionieren
mac_eth0="random-full"

Tunneln

Für das Tunneln muss keine zusätzliche Software installiert werden, da der Interface Handler dies übernehmen kann.

DATEI /etc/conf.d/netTunneling-Konfiguration
# Für GRE-Tunneln
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"
  
# Für IPIP-Tunnel
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"
  
# Konfigurieren der Schnittstellen
config_vpn0="192.168.0.2 peer 192.168.1.1"

VLAN (802.1q Unterstützung)

Für die VLAN-Unterstützung stellen Sie sicher, dass sys-apps/iproute2 installiert ist und dass iproute2 als Konfigurationsmodul und nicht ifconfig verwendet wird.

Ein virtuelles LAN ist eine Gruppe von Netzwerkgeräten, die sich so verhalten, als ob sie an ein einziges Netzwerksegment angeschlossen wären - auch wenn sie es nicht sind. VLAN-Mitglieder können nur Mitglieder desselben VLANs sehen, auch wenn sie dasselbe physische Netzwerk nutzen.

Um VLANs zu konfigurieren, geben Sie zunächst die VLAN-Nummern in /etc/conf.d/net wie folgt an:

DATEI /etc/conf.d/netFestlegen von VLAN-Nummern
vlans_eth0="1 2"

Als nächstes konfigurieren Sie die Schnittstelle für jedes VLAN:

DATEI /etc/conf.d/netSchnittstellenkonfiguration für jedes VLAN
config_eth0_1="172.16.3.1 netmask 255.255.254.0"
routes_eth0_1="default via 172.16.3.254"
  
config_eth0_2="172.16.2.1 netmask 255.255.254.0"
routes_eth0_2="default via 172.16.2.254"

VLAN-spezifische Konfigurationen werden von vconfig wie folgt gehandhabt:

DATEI /etc/conf.d/netKonfigurieren der VLANs
vlan1_name="vlan1"
vlan1_ingress="2:6 3:5"
eth0_vlan1_egress="1:2"
Wichtig
Für die Verwendung einer VLAN-Konfigurationen konsultieren Sie die Dokumentation der Variablennamen.





Einleitung

Drahtlose Netzwerke unter Linux sind in der Regel recht einfach. Es gibt drei Möglichkeiten, WLAN zu konfigurieren: grafische Clients, Textmodus-Schnittstellen und Befehlszeilen-Schnittstellen.

Der einfachste Weg ist die Verwendung eines grafischen Clients, sobald eine Desktop-Umgebung installiert ist. Die meisten grafischen Clients, wie z.B. NetworkManager, sind ziemlich selbsterklärend. Sie bieten eine praktische Zeigen-und-Klicken-Oberfläche, mit der Benutzer in wenigen Sekunden in ein Netzwerk eingebunden werden können.

Hinweis
NetworkManager bietet neben der grafischen Oberfläche auch Textmodus- oder Befehlszeilenprogramme. Emergen Sie das Paket net-misc/networkmanager mit ncurses. Das Dienstprogramm nmtui ist besonders nützlich für Leute, die keine X- oder Wayland-basierte Desktop-Umgebung verwenden, aber dennoch ein einfach zu bedienendes Werkzeug wünschen, das keine manuelle Bearbeitung von Konfigurationsdateien erfordert.

Wireless kann auch über die Befehlszeile konfiguriert werden, indem einige Konfigurationsdateien bearbeitet werden. Dies nimmt etwas mehr Zeit in Anspruch, erfordert aber auch die wenigsten Pakete, die heruntergeladen und installiert werden müssen. Da die grafischen Clients größtenteils selbsterklärend sind (mit hilfreichen Bildschirmfotos auf ihren Homepages), konzentrieren wir uns auf die Befehlszeilenalternativen.

Es gibt drei Tools, die befehlszeilengesteuerte Wireless-Konfigurationen unterstützten: net-wireless/iw, net-wireless/wireless-tools, und net-wireless/wpa_supplicant. Von diesen drei ist net-wireless/wpa_supplicant das bevorzugte Paket. Wichtig ist, dass drahtlose Netzwerke auf globaler Basis und nicht auf Schnittstellenbasis konfiguriert werden.

Die Software net-wireless/iw, der Nachfolger von net-wireless/wireless-tools, unterstützt fast alle Karten und Treiber, kann aber keine Verbindung zu reinen WPA Access Points herstellen. Wenn die Netze nur WEP-Verschlüsselung bieten oder völlig offen sind, dann ist net-wireless/iw dem anderen Paket in Sachen Einfachheit überlegen.

Einige WLAN-Karten sind standardmäßig deaktiviert. Um sie zu aktivieren, konsultieren Sie bitte die Dokumentation der Hardware. Einige dieser Karten können mit der Anwendung rfkill entsperrt werden. Wenn dies der Fall ist, verwenden Sie rfkill list, um die verfügbaren Karten anzuzeigen, und rfkill unblock INDEX, um die drahtlose Funktionalität zu aktiveren. Ist dies nicht der Fall, muss die WLAN-Karte möglicherweise über eine Taste, einen Schalter oder eine spezielle Tastenkombination am Laptop entsperrt werden.

WPA supplicant

Das WPA supplicant Projekt stellt ein Paket zur Verfügung, mit dem sich Benutzer mit WPA-fähigen Zugangspunkten verbinden können.

root #emerge --ask net-wireless/wpa_supplicant
Wichtig
Es ist notwendig, dass CONFIG_PACKET im Kernel aktiviert ist, damit wpa_supplicant funktioniert. Um zu sehen, ob es im aktuellen Kernel aktiviert ist, versuchen Sie:
root #zgrep CONFIG_PACKET /proc/config.gz
root #grep CONFIG_PACKET /usr/src/linux/.config
Hinweis
Abhängig von den USE-Flags kann wpa_supplicant eine in Qt5 geschriebene grafische Oberfläche installieren, die sich gut in KDE integrieren lässt. Um sie zu erhalten, verwenden Sie qt5 für das Paket net-wireless/wpa_supplicant.

Als nächstes konfigurieren Sie /etc/conf.d/net so, dass das Modul wpa_supplicant gegenüber wireless-tools bevorzugt wird (wenn beide installiert sind, ist wireless-tolls der Standard).

DATEI /etc/conf.d/netErzwingen der Verwendung von wpa_supplicant
# Bevorzugen von wpa_supplicant gegenüber wireless-tools
modules="wpa_supplicant"
Hinweis
Bei der Verwendung des host-ap-Treibers ist es notwendig, die Karte in den Managed Mode zu versetzen, bevor sie mit wpa_supplicant korrekt verwendet werden kann. Dies kann durch Setzen von iwconfig_eth0="mode managed" in /etc/conf.d/net erreicht werden.

Als nächstes konfigurieren Sie wpa_supplicant selbst (was je nach Sicherheit der Access Points etwas komplizierter ist). Das folgende Beispiel wurde vereinfacht aus /usr/share/doc/wpa_supplicant-<Version>/wpa_supplicant.conf.gz übernommen, das mit wpa_supplicant ausgeliefert wird.

DATEI /etc/wpa_supplicant/wpa_supplicant.confEtwas vereinfachtes Beispiel
# Die untere Zeile darf nicht geändert werden, sonst funktioniert wpa_supplicant nicht
ctrl_interface=/var/run/wpa_supplicant
  
# Sicherstellen, dass nur root die WPA-Konfiguration lesen kann
ctrl_interface_group=0
  
# Überlassen Sie wpa_supplicant das Scannen und die AP-Auswahl
ap_scan=1
  
# Einfacher Fall: WPA-PSK, PSK als ASCII-Passphrase, alle gültigen Chiffren erlauben
network={
  ssid="simple"
  psk="very secret passphrase"
  # Je höher die Priorität, desto eher werden wir gematcht
  priority=5
}
  
# Wir zuvor, aber SSID-spezifisches Scannen anfordern (für APs, die die Broadcast SSID ablehnen)
network={
  ssid="second ssid"
  scan_ssid=1
  psk="very secret passphrase"
  priority=2
}
  
# Es wird nur WPA-PSK verwendet. Jede gültige Verschlüsselungskombination wird akzeptiert
network={
  ssid="example"
  proto=WPA
  key_mgmt=WPA-PSK
  pairwise=CCMP TKIP
  group=CCMP TKIP WEP104 WEP40
  psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
  priority=2
}
  
# Klartextverbindung (kein WPA, kein IEEE 802.1X)
network={
  ssid="plaintext-test"
  key_mgmt=NONE
}
  
# Verbindung mit gemeinsamen WEP-Schlüssel (kein WPA, kein IEEE 802.1X)
network={
  ssid="static-wep-test"
  key_mgmt=NONE
  # Schlüssel in Anführungszeichen sind ASCII-Schlüssel
  wep_key0="abcde"
  # Ohne Anführungszeichen angegebene Schlüssel sind Hex-Schlüssel
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
}
  
# Schlüssel in Anführunszeichen sind ASCII-Schlüssel
# Gemeinsame WEP-Schlüsselverbindung (kein WPA, kein IEEE 802.1X) unter Verwendung von Shared Key IEEE 702.11-Authentifizierung
network={
  ssid="static-wep-test2"
  key_mgmt=NONE
  wep_key0="abcde"
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
  auth_alg=SHARED
}
  
# IBSS/Ad-hoc-Netzwerk mit WPA-None/TKIP
network={
  ssid="test adhoc"
  mode=1
  proto=WPA
  key_mgmt=WPA-NONE
  pairwise=NONE
  group=TKIP
  psk="secret passphrase"
}

Wireless-Tools

Ersteinrichtung und verwalteter Modus

Das Wireless-Tools Projekt bietet eine allgemeine Möglichkeit zur Konfiguration grundlegender drahtloser Schnittstellen bis hin zur WEP-Sicherheitsstufe. Obwohl WEP eine schwache Sicherheitsmethode ist, ist sie immer noch weit verbreitet in der Welt.

Die Konfiguration der Wireless-Tools wird durch einige wenige Hautpvariablen gesteuert. Die unten stehende Beispielkonfigurationsdatei sollte alles beschreiben, was benötigt wird. Eine Sache, die Sie beachten sollten, ist, dass keine Konfiguration "mit dem stärksten unverschlüsselten Zugangspunkt verbinden" bedeutet - Wireless-Tolls wird immer versuchen, das System mit etwas zu verbinden.

root #emerge --ask net-wireless/wireless-tools
Hinweis
Obwohl net-wireless/iw das aktuelle Tool für den Wireless-Stack ist, funktioniert net-misc/netifrc vor Version 0.6.0 nicht mit den neuen Befehlen. net-wireless/wireless-tools muss mit netifrc mit früheren Version verwendet werden. Weitere Informationen finden Sie in der Dokumentation der Variablennamen.
DATEI /etc/conf.d/netBeispiel einer iwconfig-Einrichtung
# iwconfig gegenüber wpa_supplicant bevorzugen
modules="iwconfig"
  
# Konfigurieren des WEP-Schlüssels für Access Points namens ESSID1 und ESSID2
# Sie können bis zu 4 WEP-Schlüssel konfigurieren, aber nur 1 kann gleichzeitig aktiv sein.
# Wir geben also einen Standardindex von [1] an, um den Schlüssel [1] zu setzen und dann
# um den aktiven Schlüssel wieder auf [1] zu ändern.
# Wir tun dies für den Fall, dass Sie andere ESSIDs definieren, um andere WEP-Schlüssel als 1 zu verwenden
#
# Wird dem Schlüssel ein s vorangestellt, handelt es sich um einen ASCII-Schlüssel, ansonsten um eine Hex-Schlüssel
#
# enc open specified open security (am sichersten)
# enc restricted specified restricted security (am wenigsten sicher)
key_ESSID1="[1] s:yourkeyhere key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"
  
# Die folgenden Angaben funktionieren nur, wenn wir nach verfügbaren Access Points suchen
  
# Manchmal ist mehr als ein Access Point sichtbar, daher müssen wir eine bevorzugte Reihenfolge für die Verbindung festlegen
preferred_aps="'ESSID1' 'ESSID2'"

Feinabstimmung der AP-Auswahl

Es ist möglich, einige zusätzliche Optionen zur Feinabstimmung der AP-Auswahl hinzuzufügen, aber diese sind nicht erforderlich.

Eine Möglichkeit besteht darin, das System so zu konfigurieren, dass es sich nur mit bevorzugten APs verbindet. Wenn alles Konfigurierte fehlgeschlagen ist und wireless-tools eine Verbindung zu einen unverschlüsselten Access Point herstellen kann, wird es dies standardmäßig tun. Dies kann über eine Variable associate_order gesteuert werden. Hier ist eine Tabelle der Werte und wie sie dies steuern.

Wert Beschreibung
any Standardverhalten
preferredonly Verbindung nur mit sichtbaren APs in der bevorzugten Listel
forcepreferred Erzwigen der Verbindung zu APs in der bevorzugten Reihenfolge, wenn sie bei einem Scan nicht gefunden werden.
forcepreferredonly Nicht nach APs scannen, sondern versuchen einfach, sich nacheinander mit jedem einzelnen zu verbinden.
forceany Wie forcepreffered + Verbindung zu jedem anderen verfügbaren AP.

Es gibt auch die Auswahl blacklist_aps und unique_ap. blacklist_aps funktioniert ähnlich wie preferred_aps. unique_ap ist ein yes- oder no-Wert, der angibt, ob eine zweite drahtlose Schnittstelle eine Verbindung mit demselben Access Point wie die erste Schnittstelle herstellen kann.

DATEI /etc/conf.d/netblacklist_aps und unique_ap Beispiel
# Manchmal möchten Sie nie eine Verbindung zu bestimmten Zugangspunkten herstellen
blacklist_aps="'ESSID3' 'ESSID4'"

# Wenn Sie mehr als eine WLAN-Karte haben, können Sie angeben, ob Sie
# erlauben wollen, sich mit demselben Access Point zu verbinden oder nicht
# Werte sind "yes" und "no"
# Standard ist "yes"
unique_ap="yes"

Ad-hoc- und Master-Modi

Um das System als Ad-hoc-Knoten einzurichten, wenn es keine Verbindung zu einem Access Point im verwalteten Modus herstellen kann, verwenden Sie dies als Fallback:

DATEI /etc/conf.d/netRückfall in den Ad-hoc-Modus
adhoc_essid_eth0="Dieser Adhoc-Knoten"

Es ist auch möglich, eine Verbindung zu Ad-hoc-Netzen herzustellen oder das System im Master-Modus zu betreiben, so dass es selbst zum Zugangspunkt wird.

DATEI /etc/conf.d/netBeispiel für eine Ad-hoc-/Master-Konfiguration
# Einstellen des Modus - kann managed (Standard), ad-hoc oder master sein 
# Nicht alle Treiber unterstützen alle Modi
mode_eth0="ad-hoc"

# Setzen der ESSID der Schnittstelle
# Im managed-Modus erzwingt dies, dass die Schnittstelle versucht, eine Verbindung mit der angegebenen ESSID herzustellen und nichts anderes
essid_eth0="Dieser Adhoc-Knoten"

# Wir verwenden Kanal 3, wenn Sie keinen angeben
channel_eth0="9"
Wichtig
Eine wichtige Quelle zur Kanalauswahl ist die BSD wavelan-Dokumentation, die man in der NetBSD-Dokumentation findet. Es sind 14 Kanäle möglich; uns wurde gesagt, dass die Kanäle 1-11 für Nordamerika, die Kanäle 1-13 für den größten Teil Europas, die Kanäle 10-13 für Frankreich und nur der Kanal 14 für Japan zulässig sind. Im Zweifelsfall sehen Sie bitte in der Dokumentation nach, die mit der Karte oder dem Zugangspunkt geliefert wurde. Vergewissern Sie sich, dass der gewählte Kanal derselbe ist, auf dem sich der Zugangspunkt (oder die andere Karte in einem Ad-hoc-Netzwerk) befindet. Die Standardeinstellung für in Nordamerika und den meisten europäischen Ländern verkauften Karten ist 3; die Standardeinstellung für in Frankreich verkaufte Karten ist 11, und die Standardeinstellung für in Japan verkaufte Karten ist 14.

Fehlersuche bei drahtlosen Tools

Es gibt noch einige weiter Variablen, die helfen können, das WLAN aufgrund von Treiber- oder Umgebungsproblemen zum Laufen zu bringen. Hier ist eine Tabelle mit anderen Dingen, die ausprobiert werden können.

Variablennamen Standardwert Beschreibung
iwconfig_eth0 In der Manpage von iwconfig finden Sie Einzelheiten darüber, was Sie iwconfig senden müssen.
iwpriv_eth0 In der Manpage von iwpriv finden Sie Einzelheiten darüber, was Sie an iwpriv senden müssen.
sleep_scan_eth0 0 Die Anzahl an Sekunden, die vor dem Scanversuch gewartet wird. Dies ist erforderlich, wenn der Treiber/die Firmware mehr Zeit benötigt, um aktiv zu werden, bevor er/sie verwendet werden kann.
sleep_associate_eth0 5 Die Anzahl an Sekunden, die gewartet wird, bis sich die Schnittstelle mit dem Access Point verbunden hat, bevor die nächste Schnittstelle aufgerufen wird.
associate_test_eth0 MAC Einige Treiber setzen die MAC-Adresse, die mit einer ungültigen MAC-Adresse verbunden ist, nicht zurück, wenn sie die Verbindung verlieren oder versuchen, sie herzustellen. Einige Treiber Qualitätsstufe nicht zurück, wenn sie die Verbindung verlieren oder versuchen, sie herzustellen. Gültige Einstellungen sind MAC, quality und all.
scan_mode_eth0 Einige Treiber müssen im Ad-hoc-Modus scannen. Wenn das Scannen fehlschlägt, versuchen Sie hier, Ad-hoc einzustellen.
iwpriv_scan_pre_eth0 Sendet vor dem Scannen einige iwpriv-Befehle an die Schnittstelle. Weitere Einzelheiten finden Sie in der Manpage von iwpriv.
iwpriv_scan_post_eth0 Sendet nach dem Scannen einige iwpriv-Befehle an die Schnittstelle. Weitere Einzelheiten finden Sie in der Manpage von iwpriv.

Netzwerkkonfiguration pro ESSID festlegen

In diesem Abschnitt wird gezeigt, wie Sie die Netzwerkeinstellungen auf der Grundlage der ESSID konfigurieren. Konfigurieren Sie z.B. für das drahtlose Netzwerk mit der ESSID ESSID1 eine statische IP-Adresse, während die ESSID ESSID2 DHCP verwendet.

Hinweis
Dies funktioniert sowohl mit wpa_supplicant als auch mit wireless-tools
Wichtig
Bitte konsultieren Sie die Dokumentation der Variablennamen.
DATEI /etc/conf.d/netNetzwerkeinstellungen pro ESSID außer Kraft setzen
config_ESSID1="192.168.0.3/24 brd 192.168.0.255"
routes_ESSID1="default via 192.168.0.1"
  
config_ESSID2="dhcp"
fallback_ESSID2="192.168.3.4/24"
fallback_route_ESSID2="default via 192.168.3.1"

# Wir können auch Nameserver und andere Dinge definieren
# HINWEIS: DHCP überschreibt diese Einstellungen, es sei denn, es wird ihm gesagt, dass es das nicht tun soll
dns_servers_ESSID1="192.168.0.1 192.168.0.2"
dns_domain_ESSID1="some.domain"
dns_search_domains_ESSID1="search.this.domain search.that.domain"

# Sie überschreiben durch die MAC-Adresse des Access Points
# Dies ist praktisch, wenn Sie verschiedene Standorte mit der gleichen ESSID ansteuern
config_001122334455="dhcp"
dhcpcd_001122334455="-t 10"
dns_servers_001122334455="192.168.0.1 192.168.0.2"






Standard Funktionshooks

Vier Funktionen können in /etc/conf.d/net definiert werden, die vor und nach der start/stop Operationen aufgerufen werden. Die Funktionen werden mit vorangestelltem Schnittstellennamen aufgerufen, so dass eine Funktion mehrere Adapter kontrollieren kann.

Der Rückgabewert der preup() und predown() Funktionen sollte 0 sein (Erfolg) um anzuzeigen, dass die Konfiguration und De-Konfiguration der Schnittstelle fortgesetzt werden kann. Wenn preup() einen Wert ungleich null zurückliefert, wird die Konfiguration der Schnittstellen abgebrochen. Wenn predown() einen Wert ungleich null zurückgibt, ist es der Schnittstelle nicht gestatten die De-Konfiguration fortzusetzen.

Die Rückgabewerte der postup() und postdown() Funktionen werden ignoriert da es nichts weiter zu tun gibt, wenn sie einen Fehler anzeigen.

${IFACE} ist auf das Interface gesetzt, das gestartet/ gestoppt wird. ${IFVAR} ist ${IFACE} in einen Variablennamen umgesetzt, den bash gestattet.

DATEI /etc/conf.d/netpre/post up/down Funktionsbeispiele
preup() {
  # Überprüft die Existenz eines Links auf die Schnittstelle vor
  # der Aktivierung. Dies funktioniert nur mit einigen
  # Netzwerk-Adaptern und benötigt ein installiertes ethtool Paket.
  if ethtool ${IFACE} | grep -q 'Link detected: no'; then
    ewarn "No link on ${IFACE}, aborting configuration"
    return 1
  fi
  
  # Denken Sie daran 0 bei Erfolg zurückzugeben
  return 0
}
  
predown() {
  # Der Standard im Script ist auf NFS root zu prüfen und in diesem
  # Fall das Stoppen der Schnittstelle zu unterbinden. Beachten Sie,
  # dass Sie diese Logik überschreiben, wenn Sie eine predown()
  # Funktion angeben. Hier ist sie für den Fall, dass Sie sie dennoch
  # wollen ...
  if is_net_fs /; then
    eerror "root filesystem is network mounted -- can't stop ${IFACE}"
    return 1
  fi
  
  # Denken Sie daran 0 bei Erfolg zurückzugeben
  return 0
}
  
postup() {
  # Diese Funktion könnte beispielsweise genutzt werden, um sich bei
  # einem DNS Service zu registrieren. Eine weitere Möglichkeit würde
  # das Senden/Empfangen von Mails nach dem Start einer Schnittstelle
  # sein.
       return 0
}
  
postdown() {
  # Diese Funktion ist hauptsächlich der Vollständigkeit halber
  # hier... Ich habe bisher noch nicht darüber nachgedacht etwas
  # Raffiniertes damit anzustellen ;-D
  return 0
}
Hinweis
Für weitere Informationen zum Schreiben von Funktionen lesen Sie bitte /usr/share/doc/netifrc-*/net.example.bz2.

Wireless Tools Funktionshook

Hinweis
Dies wird mit WPA Supplicant nicht funktionieren - aber die Variablen ${ESSID} und ${ESSIDVAR} sind in der Funktion postup() verfügbar.

Zwei Funktionen können in /etc/conf.d/net definiert werden, die vor und nach der start/stop Operationen aufgerufen werden. Die Funktionen werden mit vorangestelltem Schnittstellennamen aufgerufen, so dass eine Funktion mehrere Adapter kontrollieren kann.

Die Rückgabewerte der Funktion preassociate() sollte 0 sein (Erfolg) um anzuzeigen, dass die Konfiguration oder De-Konfiguration der Schnittstelle fortgesetzt werden kann. Wenn preassociate() einen Wert ungleich Null zurückgibt, wird die Schnittstellen-Konfiguration abgebrochen.

Der Rückgabewert der Funktion postassociate() wird ignoriert, weil es nicht zu tun gibt wenn er Fehler anzeigt.

${ESSID} wir auf die exakte ESSID des Access Points (AP) gesetzt zu dem sich das System verbindet. ${ESSIDVAR} ist ${ESSID} in einen Variablennamen umgewandelt, den bash erlaubt.

DATEI /etc/conf.d/netpre/post Verbindungs-Funktionen
preassociate() {
  # Das Untere fügt zwei Konfigurations-Variablen leap_user_ESSID und
  # leap_pass_ESSID hinzu. Wenn beide für die ESSID konfiguriert sind
  # zu der sie verbunden sind, führen wir das CISCO LEAP Script aus.

  local user pass
  eval user=\"\$\{leap_user_${ESSIDVAR}\}\"
  eval pass=\"\$\{leap_pass_${ESSIDVAR}\}\"
  
  if [[ -n ${user} && -n ${pass} ]]; then
    if [[ ! -x /opt/cisco/bin/leapscript ]]; then
      eend "For LEAP support, please emerge net-misc/cisco-aironet-client-utils"
      return 1
    fi
    einfo "Waiting for LEAP Authentication on \"${ESSID//\\\\//}\""
    if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then
      ewarn "Login Failed for ${user}"
      return 1
    fi
  fi
  
  return 0
}
  
postassociate() {
  # Diese Funktion ist hauptsächlich der Vollständigkeit halber
  # hier... Ich habe bisher noch nicht darüber nachgedacht etwas
  # Raffiniertes damit anzustellen ;-D
  
  return 0
}
Hinweis
${ESSID} und ${ESSIDVAR} sind in den Funktionen predown() und postdown() nicht verfügbar.
Hinweis
Schauen Sie sich bitte /usr/share/doc/netifrc-*/net.example.bz2 an, um weitere Informationen zum Schreiben von angepassten Funktionen zu erhalten.





Netzwerkverwaltung

Mit Laptops können Systeme immer in Bewegung sein. Daraus resultiert, dass am System nicht immer ein Ethernet Kabel angeschlossen sein kann oder ein Access Point verfügbar ist. Außerdem möchte der Benutzer möglicherweise, dass das Netzwerk automatisch funktioniert, wenn ein Ethernet Kabel eingesteckt wird oder ein Access Point gefunden wird.

In diesem Kapitel behandeln wir, wie dies erreicht werden kann.

Hinweis
Dieses Dokument spricht nur über ifplugd, aber es gibt Alternativen wie netplug. netplug ist eine leichtgewichtige Alternative zu ifplugd, aber es verlässt sich darauf, dass die Kernel Netzwerktreiber korrekt arbeiten und viele Treiber tun dies nicht.

ifplugd

ifplugd ist ein Dienst der Schnittstellen startet und stoppt, wenn ein Netzwerkkabel eingesteckt oder abgezogen wird. Es kann ebenfalls die Zuordnung von Access Points handhaben oder wenn neue in Reichweite kommen.

root #emerge --ask sys-apps/ifplugd

Die Konfiguration von ifplugd ist außerdem ziemlich geradlinig. Sie befindet sich in /etc/conf.d/net. Führen Sie man ifplugd aus, um Details zu den verfügbaren Variablen zu erhalten. Sehen Sie sich außerdem /usr/share/doc/netifrc-*/net.example.bz2 für weitere Beispiele an.

DATEI /etc/conf.d/netBeispiel Konfiguration ifplug
# Ersetzen Sie eth0 mit der zu überwachenden Schnittstelle
ifplugd_eth0="..."
  
# Um eine drahtlose Schnittstelle zu überwachen
ifplugd_eth0="--api-mode=wlan"

Zusätzlich zur Verwaltung mehrerer Netzwerkverbindungen möchten die Nutzer vielleicht ein Tool hinzufügen, das den Umgang mit mehreren DNS Servern und Konfigurationen vereinfacht. Das ist sehr praktisch, wenn das System seine IP-Adresse über DHCP empfängt.

root #emerge --ask net-dns/openresolv

Werfen Sie einen Blick auf man resolvconf, um mehr über seine Funktionen zu lernen.



Warning: Display title "Gentoo Linux sparc Handbuch: Netzwerk-Konfiguration" overrides earlier display title "Handbuch:SPARC/Komplett/Netzwerk".