Gentoo Logo

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


3. Modulare Vernetzung

Inhalt:

3.a. Netzwerkmodule

Wir unterstützen nun auch modulare Netzwerk-Skripte, sodass wir leicht Unterstützung für neue Schnittstellen-Typen und Konfigurations-Module hinzufügen können, während die Kompatibilität mit bereits vorhandenen erhalten bleibt.

Module werden standardmäßig geladen, wenn das Paket, das sie benötigen, installiert ist. Wenn Sie hier ein Modul angeben, dessen Paket nicht installiert ist, erhalten Sie eine Fehler, der Ihnen mitteilt, welche Pakete installiert werden müssen. Im besten Fall verwenden Sie nur die Modul-Einstellungen, wenn Sie zwei oder mehr Pakete installiert haben, die den gleichen Dienst zur Verfügung stellen, und geben so einem Paket den Vorzug.

Notiz: Alle besprochenen Einstellungen werden in /etc/conf.d/net gespeichert, sofern nicht anders angegeben.

Befehlsauflistung 1.1: Modul-Präferenz

# Ziehen Sie ifconfig dem Modul iproute2 vor
modules="ifconfig"

# Sie können auch andere Module als Schnittstelle angeben
# Im folgenden Fall bevorzugen wir pump vor dhcpcd
modules_eth0="pump"

# Sie können auch angeben, welche Module nicht verwendet werden sollen
#- beispielsweise könnten Sie supplicant oder linux-wlan-ng verwenden um
#die Drahtlos-Konfiguration zu steuern, möchten aber die Netzwerk-Einstellungen
#trotzdem per verbundener ESSID konfigurieren.
modules="!iwconfig"

3.b. Schnittstellen-Handler

Wir liefern aktuell zwei Schnittstellen: ifconfig und iproute2. Sie benötigen eine von diesen, um irgendeine Netzwerk-Konfiguration machen zu können.

ifconfig ist standardmäßig installiert (das Paket net-tools ist Bestandteil des Systemprofils). iproute2 ist mächtiger und flexibler, aber nicht standardmäßig enthalten.

Befehlsauflistung 2.1: Installation von iproute2

# emerge sys-apps/iproute2

# Um ifconfig vor iproute2 den Vorzug zu geben, falls beide installiert sind, da openrc
# ansonsten iproute2 bevorzugt
modules="ifconfig"

Da ifonfig und iproute2 beide sehr ähnlich funktionieren, erlauben wir eine Zusammenarbeit beider Basis-Konfigurationen. Zum Beispiel funktionieren die folgenden beiden Code-Abschnitte unabhängig vom verwendeten Modul.

Befehlsauflistung 2.2: Beispiele für ifconfig und iproute2

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"

3.c. DHCP

DHCP ist eine Möglichkeit, Netzwerk-Informationen (IP-Adresse, DNS-Server, Gateways, etc.) von einem DHCP-Server zu erhalten. Wenn es in Ihrem Netzwerk einen DHCP-Server gibt, bedeutet dies, dass die Clients nur DHCP verwenden müssen und der DHCP-Server für das richtige Setup sorgt. Natürlich müssen Sie andere Dinge, wie Drahtlosnetzwerke, PPP, und so weiter, wenn nötig, selbst konfigurieren, bevor Sie DHCP verwenden können.

DHCP kann durch dhclient, dhcpcd oder pump zur Verfügung gestellt werden. Jedes DHCP-Modul hat seine Vor- und Nachteile - hier ein kurzer Überblick.

DHCP-Modul Paket Vorteile Nachteile
dhclient net-misc/dhcp Kommt von ISC, die gleichen Leute, aus deren Feder die BIND DNS-Software stammt. In hohem Maße konfigurierbar. Die Konfiguration ist allzu komplex, die Software ist ziemlich überladen, kann keine NTP-Server über DHCP erhalten, sendet standardmäßig den Hostnamen nicht.
dhcpcd net-misc/dhcpcd Seit langem der Standard unter Gentoo, keine Abhängigkeiten zu anderen Tools und wird aktiv von Gentoo weiterentwickelt. Kann manchmal etwas langsam sein und funktioniert nicht als Daemon, wenn das Lease unendlich ist.
pump net-misc/pump Leichtgewicht, keine Abhängigkeiten von fremden Tools Wird nicht mehr gepflegt, unzuverlässig, insbesondere über Modems, kann keine NIS-Server über DHCP erhalten.

Wenn Sie mehr als einen DHCP-Client installiert haben, müssen Sie angeben, welcher verwendet werden soll - anderenfalls verwenden wir, wenn verfügbar, dhcpcd als Standard.

Verwenden Sie module_eth0="..." um dem Modul bestimmte Optionen zu übergeben. (ändern Sie module zu dem DHCP-Modul, dass Sie verwenden - z.B. dhcpcd_eth0).

Wir versuchen DHCP relativ unwissend zu machen - deswegen unterstützen wir die folgenden Befehle mit Hilfe der dhcp_eth0 Variable. Der Normalfall ist, keine davon zu setzen:

  • release - gibt die IP-Adresse für die Wiederverwendung frei
  • nodns - /etc/resolv.conf nicht überschreiben
  • nontp - /etc/ntp.conf nicht überschreiben
  • nonis - /etc/yp.conf nicht überschreiben

Befehlsauflistung 3.1: Beispiel-DHCP-Konfiguration in /etc/conf.d/net

# Wird nur benötigt, wenn mehr als ein DHCP-Module installiert ist.
modules="dhcpcd"

config_eth0="dhcp"
dhcpcd_eth0="-t 10" # Timeout nach 10 Sekunden
dhcp_eth0="release nodns nontp nonis" # Nur eine Adresse anfordern

Notiz: dhcpcd und pump senden im Normalfall den aktuellen Hostnamen zum DHCP-Server, sodass Sie ihn nicht mehr angeben müssen.

3.d. ADSL mit PPPoE/PPPoA

Zunächst müssen wir die ADSL-Software installieren.

Befehlsauflistung 4.1: Das ppp-Paket installieren

# emerge net-dialup/ppp

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

Befehlsauflistung 4.2: Erzeugen des PPP Netzwerkskripts

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

Stellen Sie sicher, dass rc_depend_strict in /etc/rc.conf auf "YES" gesetzt ist.

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

Befehlsauflistung 4.3: Eine grundlegende PPPoE-Konfiguration

config_eth0=null (Geben Sie Ihre Ethernet-Schnittstelle an)
config_ppp0="ppp"
link_ppp0="eth0" (Geben Sie Ihre Ethernet-Schnittstelle an)
plugins_ppp0="pppoe"
username_ppp0='user'
password_ppp0='password'
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_need_ppp0="net.eth0"

Ihr Kennwort können Sie auch in /etc/ppp/pap-secrets angeben.

Befehlsauflistung 4.4: Beispiel einer /etc/ppp/pap-secrets

# Der * ist wichtig
"username"  *  "password"

Wenn Sie PPPoE mit einem USB-Modem verwenden werden Sie br2684ctl emergen müssen. Bitte lesen Sie hierzu /usr/portage/net-dialup/speedtouch-usb/files/README für weitere Informationen zur korrekten Konfiguration.

Wichtig: Bitte lesen Sie den Abschnitt zu ADSL und PPP in /usr/share/doc/openrc-0.8.3-r1/net.example.bz2 sorgfältig durch. Dort sind viel detailliertere Erklärungen zu allen Einstellungen enthalten, die Sie für Ihre spezielle PPP-Einrichtung wahrscheinlich nutzen können. Natürlich müssen Sie 0.8.3-r1 durch Ihre OpenRC-Version ersetzen.

3.e. APIPA (Automatic Private IP Addressing)

APIPA versucht, freie Adressen im Bereich 169.254.0.0-169.254.255.255 durch Ansprechen einer zufälligen Adresse aus diesem Bereich über die Schnittstelle mit Hilfe von arping zu finden. Wenn darauf keine Antwort erfolgt, wird diese Adresse der Schnittstelle zugewiesen.

Das ist nur für LANs sinnvoll, in dem sich kein DHCP-Server befindet, Sie sich nicht direkt mit dem Internet verbinden und alle anderen Computer ebenfalls APIPA verwenden.

Für APIPA-Unterstützung muss net-misc/iputils oder net-analyzer/arping emerged werden.

Befehlsauflistung 5.1: APIPA-Konfiguration in /etc/conf.d/net

# Versuchen Sie zuerst DHCP - schlägt das fehl, greifen Sie auf APIPA zurück
config_eth0="dhcp"
fallback_eth0="apipa"

# Nur APIPA verwenden
config_eth0="apipa"

3.f. Bonding

Zum Bonding/Trunking von Links muss net-misc/ifenslave emerged werden.

Bonding wird zur Erhöhung der Netzwerk-Bandbreite verwendet. Wenn Sie zwei Netzwerkkarten im gleichen Netzwerk verwenden, können Sie beide Karten so verbinden, dass Ihre Anwendungen nur eine Schnittstelle sehen, aber tatsächlich beide Karten nutzen.

Befehlsauflistung 6.1: Bonding-Konfiguration in /etc/conf.d/net

# Um Schnittstellen zu verbinden
slaves_bond0="eth0 eth1 eth2"

# Weisen Sie einer verbundenen Schnittstelle keine IP-Adresse zu
config_bond0="null"

# Von eth0, eth1 and eth2 abhängen, da sie möglicherweise weitere Konfiguration benötigen
rc_need_bond0="net.eth0 net.eth1 net.eth2"

3.g. Bridging (802.1d-Unterstützung)

Für Bridging-Unterstützung muss net-misc/bridge-utils emerged werden.

Bridging wird verwendet, um Netzwerke zusammenzufügen. Zum Beispiel: Sie haben einen Server, der sich über ein ADSL-Modem mit dem Internet verbindet und eine drahtlose Netzwerkkarte, um andere Computer über das ADSL-Modem mit dem Internet zu verbinden. Sie könnten nun mit Hilfe einer Bridge beide Schnittstellen zusammenfügen.

Befehlsauflistung 7.1: Bridge-Konfiguration in /etc/conf.d/net

# Konfigurieren Sie die Bridge - weitere Details liefert "man brctl"
brctl_br0="setfd 0" "sethello 0" "stp off"

# Um Ports zur Bridge br0 hinzuzufügen
bridge_br0="eth0 eth1"

# Die Ports müssen mit Null-Werten konfiguriert werden, damit DHCP nicht gestartet wird.
config_eth0="null"
config_eth1="null"

# Letztendlich weisen Sie der Bridge eine Adresse zu - Sie könnten dazu auch DHCP verwenden
config_br0="192.168.0.1/24"

# Von eth0, eth1 and eth2 abhängen, da sie möglicherweise weitere Konfiguration benötigen
rc_need_br0="net.eth0 net.eth1"

Wichtig: Um weitere Bridge-Setups zu verwenden, sollten Sie die Dokumentation zu Variablennamen lesen.

3.h. MAC-Adresse

Falls Bedarf besteht, können Sie die MAC-Adresse Ihres Interfaces mit Hilfe der Netzwerk-Konfigurationsdatei ebenfalls ändern.

Befehlsauflistung 8.1: Beispiel zum Wechseln der MAC-Adresse

# Um die MAC-Adresse der Schnittstelle zu setzen
mac_eth0="00:11:22:33:44:55"

# Um nur die letzten 3 Bytes willkürlich auszuwählen
mac_eth0="random-ending"

# Um aus gleichen Typen physikalischer Verbindungen (z.B. fibre,
# copper, wireless) willkürlich auszuwählen, alle Hersteller
mac_eth0="random-samekind"

# Um aus allen Typen physikalischer Verbindungen (z.B. fibre, copper,
# wireless) willkürlich auszuwählen, alle Hersteller
mac_eth0="random-anykind"

# komplett willkürliche Auswahl - VORSICHT: manche auf diese Weise
# generierte MAC-Adressen verhalten sich nicht wie erwartet.
mac_eth0="random-full"

3.i. Tunnelling

Es muss nichts emerged werden, da der Schnittstellen-Handler alles erledigt.

Befehlsauflistung 9.1: Tunnelling-Konfiguration in /etc/conf.d/net

# Für GRE-Tunnel
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"

# Um die Schnittstelle zu konfigurieren
config_vpn0="192.168.0.2 peer 192.168.1.1"

3.j. VLAN (802.1q-Unterstützung)

Für VLAN-Unterstützung muss net-misc/vconfig emerged werden.

Virtual LAN ist eine Gruppe von Netzwerk-Geräten, die sich verhalten, als wären sie mit einem einzelnen Netzwerk-Segment verbunden, auch wenn dies nicht der Fall ist. Mitglieder eines VLANs können nur Mitglieder des gleichen VLANs sehen, auch wenn sie sich im gleichen physikalischen Netzwerk befinden.

Befehlsauflistung 10.1: VLAN-Konfiguration in /etc/conf.d/net

# VLAN-Nummer für die Schnittstelle wie folgt angeben
# Stellen Sie sicher, dass Ihre VLAN-IDs NICHT mit Nullen aufgefüllt sind
vlans_eth0="1 2"

# Sie können auch das VLAN konfigurieren
# Weitere Details liefert "man vconfig"
vconfig_eth0="set_name_type VLAN_PLUS_VID_NO_PAD"
vconfig_vlan1="set_flag 1" "set_egress_map 2 6"

# Die Schnittstellen wie gewohnt onfigurieren
config_vlan1="172.16.3.1 netmask 255.255.254.0"
config_vlan2="172.16.2.1 netmask 255.255.254.0"

Wichtig: Um VLAN-Setups zu verwenden, sollten Sie die Dokumentation Variablennamen lesen.


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


Drucken

Alles ansehen

Seite aktualisiert 11. Februar 2013

Die Originalversion dieses Dokuments wurde zuletzt am 12. April 2014 aktualisiert

Zusammenfassung: Gentoo ermöglicht flexible Netzwerkkonfiguration. Hier wird erläutert wie Sie einen DHCP-Client auswählen, Bonding, VLANS und mehr einrichten.

Sven Vermeulen
Autor

Grant Goodyear
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Jason Huebel
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Tim Yamin
Gentoo IA64 developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

Mike Frysinger
Gentoo * developer

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

Stuart Longland
Bearbeiter

Tobias Scherbaum
Bearbeiter

Xavier Neys
Bearbeiter

Joshua Saddler
Bearbeiter

Gerald J. Normandin Jr.
Korrektor

Donnie Berkholz
Korrektor

Ken Nowack
Korrektor

Lars Weiler
Mitarbeiter

Maik Jurischka
Übersetzer

Donate to support our development efforts.

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