ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

interfaces

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Hinweis:

Bei Verwendung des Network Managers (NM) oder Wicd sollte von einer Bearbeitung der /etc/network/interfaces abgesehen werden. Es ist jedoch möglich, eine Konfiguration zu erstellen, die den "klassischen" Weg und bei Bedarf die Verwendung des Network Managers (bzw. Wicd) erlaubt (nicht gleichzeitig). Siehe hierzu Aufbau.

Dieser Artikel beschreibt die Datei /etc/network/interfaces, eine Konfigurationsdatei, in der alle Netzwerk-Schnittstellen aufgelistet und auch konfiguriert werden können.

Die hier gemachten Einstellungen werden beispielsweise beim Systemstart genutzt, um eine Netzwerkverbindung schon beim Hochfahren des Systems herzustellen. Sowohl der NM als auch Wicd haben eigene Konfigurationsdateien und verwenden /etc/network/interfaces nicht. Deshalb ist bei Verwendung dieser Programme die Bearbeitung der Datei /etc/network/interfaces und die Konfiguration von Netzwerk-Verbindungen durch manuelle Einträge nicht sinnvoll.

Gründe für manuelle Konfiguration

Auch wenn der Network-Manager in Ubuntu Standard ist, gibt es einige Gründe für eine manuelle Konfiguration:

  • Bei Servern (Ubuntu-Server) ist der Networkmanager nicht in der Standardinstallation vorhanden (erst ab Ubuntu 12.04)

  • Sowohl NM als auch Wicd werden erst nach dem Anmelden des jeweiligen Benutzers (also recht spät) gestartet. Sollen Netzwerk-Freigaben aus /etc/fstab systemweit fest ins Dateisystem eingebunden werden, steht zum entsprechenden Zeitpunkt das Netzwerk möglicherweise noch nicht zur Verfügung. Dies betrifft z.B. Server und stationäre PCs, bei denen das Netzwerk ohne eine grafische Anmeldung aktiviert werden soll.

  • Beim Benutzerwechsel hängen die Einstellungen u.U. vom vorhergehenden Benutzer ab

  • Beim Herunterfahren (shutdown) oder Neustart (reboot) wird die Boot-Reihenfolge umgekehrt durchlaufen. Dann können Probleme auftreten, wenn das Netzwerk bereits vor dem Aushängen eines Netzwerk-Dateisystems (CIFS, NFS) abgeschaltet wird.

  • Einige Befehle, die zum Linux-Standard zählen (z.B. ifup, ifdown, networking.restart u.a.) sind nur für Netzwerke wirksam, die über interfaces konfiguriert sind. Dies ist vor allem bei skript- oder zeitgesteuerten Netzwerk-Verbindungen zu beachten.

Aufbau

Die Datei /etc/network/interfaces kann in einem Editor [1] mit Root-Rechten [2] bearbeitet werden. Mit einer Zeile der Form:

auto <Interfacebezeichnung>

werden Schnittstellen beim Bootvorgang automatisch gestartet. Hierbei ist für <Interfacebezeichnung> der richtige Name zu verwenden (z.B. eth0 für die erste Ethernet-Schnittstelle). Die Einträge für lo (Loopback) sind grundsätzlich erforderlich und dürfen auch bei Verwendung des Network-Manager oder eines anderen grafischen Konfigurationswerkzeugs nicht entfernt werden.

auto lo
iface lo inet loopback

Achtung!

Diese Einträge für die Netzwerkschnittstelle sind elementarer Bestandteil von Linux. Fehlt dieser Eintrag, so können Programme nicht mehr untereinander kommunizieren.

Die Schnittstelle wird in folgender Zeile konfiguriert:

iface <Interfacebezeichnung> <Protokoll> <Methode>
  • Für <Methode> wird static verwendet, wenn eine statische Konfiguration folgt, dhcp wenn eine dynamische Konfiguration via DHCP erfolgt oder manual (falls ein Remapping erfolgt)

  • Für <Protokoll> muss das richtige Netzwerkprotokoll ausgewählt werden. Dies ist abhängig von den Geräten, mit denen kommuniziert werden soll.

Hinweis:

Soll eine Schnittstelle nicht beim Bootvorgang gestartet werden, so lässt man diese Zeile weg (die Schnittstelle kann hierdurch zunächst mit Networkmanager oder Wicd verwendet werden).

Protokoll
Netzwerkprotokoll Beschreibung
inet IPv4 (Standard)
inet6 IPv6
ipx IPX/SPX

Hinweis:

Im Folgenden beschränkt sich dieser Artikel, aus Gründen der Übersichtlichkeit und Verbreitung, auf IPv4.

Die Konfiguration wird für reale (physikalische), virtuelle und durch Remapping entstandene Schnittstellen durchgeführt. Je nach <Methode> sind eventuell zusätzliche Einträge in dieser Datei erforderlich (insbesondere für WLAN-Schnittstellen).

Hinweis:

Weiterhin sind auch Sonderfälle wie ppp (für Point-to-Point-Protocol) als <Methode> möglich, werden in diesem Artikel jedoch nicht weiter behandelt.

Statische IP-Konfiguration

Für eine statische IP-Konfiguration muss die Methode static gewählt werden. Eine statische IP-Konfiguration ist nötig, wenn es im lokalen Netzwerk keinen DHCP-Server gibt, der eine IP-Adresse zuweist. Jeder moderne Router erlaubt normalerweise die automatische Zuweisung einer IP-Adresse, so dass DHCP bevorzugt genutzt werden sollte. Ist dies nicht möglich, muss man der Netzwerkkarte manuell eine IP-Adresse geben. Dazu muss man in der Konfiguration drei Angaben machen:

  • address - Die Adresse des eigenen Rechners. Bei Heimnetzen wählt man meistens eine Adresse aus dem Bereich der Privaten IP-Adressen, also beispielsweise aus dem Bereich 192.168.0.1 bis 192.168.0.254 (192.168.0.255 gehört zwar ebenfalls zu dem Bereich, hat aber als "Broadcast-Adresse" eine Sonderstellung).

  • netmask - Bezeichnet die Netzmaske des Netzwerks. Normalerweise lautet die Netzmaske 255.255.255.0, d.h. alle Rechner, bei denen die ersten drei Tripel (also in diesem Beispiel 192.168.0.) der IP-Adresse identisch sind, gehören zum selben Netzwerk. Mit anderen Netzmasken sind andere Bereiche möglich, siehe hierzu Classless Internet Domain Routing

  • gateway - Die IP des Gateways, also im Normalfall die IP des Routers, über den man in das Internet geht, oder sich mit anderen IP-Netzwerken verbindet.

Ein Beispieleintrag hätte also folgende Form:

## Ethernet Schnittstelle 0
auto eth0  
# Beim Bootvorgang automatisch starten
iface eth0 inet static
    address 192.168.0.97   
    netmask 255.255.255.0  
    gateway 192.168.0.1

Optional kann bei dieser Methode noch der DNS-Server manuell gesetzt werden. Hierfür ist das Paket resolvconf erforderlich und folgender Eintrag:

    dns-nameservers 192.168.0.1 10.10.0.2

Genauso funktioniert das für andere resolv.conf-Einträge wie z.B. die Suchdomäne:

dns-search domain.de

Dynamische IP-Konfiguration

Für eine dynamische IP-Konfiguration muss die Methode dhcp (siehe auch DHCP) gewählt werden. Weitere Einträge in der /etc/network/interfaces sind für eine solche Schnittstelle nicht erforderlich. Eine vollständige Schnittstellenbeschreibung sieht also wie folgt aus:

## Ethernet Schnittstelle 0
auto eth0  
# Beim Bootvorgang automatisch starten
iface eth0 inet dhcp

Experten-Info:

Hierbei gibt es noch die Möglichkeit, (optional) die MAC-Adresse der Netzwerkkarte zu ändern. Hierfür fügt man an das Beispiel noch folgendes an:

    hwaddress ether 12-34-56-78-9A-BC

Natürlich ist man nicht gezwungen, die o.g. MAC-Adresse 12-34-56-78-9A-BC zu verwenden. Man kann diese nach Bedarf anpassen.

Unkonfiguriert belassen (manual)

Wählt man als <Methode> manual, so wird weder eine dynamische noch eine statische Konfiguration vorgenommen. Dies ist sinnvoll, wenn eine Netzwerkschnittstelle weder physikalisch, noch virtuell vorhanden ist. Man kann dies auch als Dummy-Interface bezeichnen.

Wichtig wird diese Methode im Zusammenhang mit den Start-Stop-Skripten, führt in diesem Zusammenhang aber auf aktuell zu schwierigen Beispielen. Daher ist das entsprechende Beispiel im Abschnitt Start-Stop-Skripte untergebracht.

Virtuelle Schnittstellen und Remapping

In diesem Abschnitt werden mehrere Punkte, die in der Praxis relevant sein können, zusammengefasst. Beispiele hierfür sind:

  • Rechner, die mit einer Netzwerkschnittstelle in (W-)LANs mit unterschiedlichen Konfigurationen unterwegs sind,

  • Rechner, die gleichzeitig mit mehreren Netzwerken (Subnetzen) mit nur einer physikalischen Schnittstelle sind,

  • Bündeln von Netzwerkschnittstellen (zur Erhöhung der Bandbreite; siehe auch Netzwerkkarten bündeln),

  • Netzwerkbrücke zum verbinden mehrerer Netzwerke

Zunächst müssen hierfür die Begriffe "Remapping" und "virtuelle Schnittstelle" (mit denen bisher ziemlich sorglos umgegangen wurde) getrennt werden:

Remapping

Wenn mehrere mögliche Konfigurationen in der Datei interfaces hinterlegt sind, von denen nur eine genutzt wird. Ein Beispiel könnte etwa so aussehen:

iface eth0 inet manual

iface default inet dhcp

iface work inet static
    address 192.168.0.97
    netmask 255.255.255.0
    gateway 192.168.0.1

Hierbei wird die Netzwerkschnittstelle beim Systemstart unkonfiguriert belassen. Nun kann mit dem Befehl

sudo ifup eth0=work 

die statische Konfiguration, für das Netzwerk am Arbeitsplatz, gestartet werden. Analog dazu ist es auch möglich, mit:

sudo ifup eth0=default 

die dynamische Konfiguration (z.B. für das Netzwerk Zuhause) zu starten.

Virtuelle Schnittstellen

Wenn eine physikalische Schnittstelle mehrere IPs (z.B. aus verschiedenen Subnetzen) haben soll. Die virtuellen Schnittstellen können hierbei nur statische Konfigurationen erhalten und keine andere Rahmenlänge als die physikalische Schnittstelle haben.

auto eth0
iface eth0 inet static
        address 192.168.1.1
        netmask 255.255.255.0

auto eth0:1
iface eth0:1 inet static 
        address 192.168.1.2
        netmask 255.255.255.0

Hier wurde eine virtuelle Schnittstelle auf einem Server erzeugt, der gleichzeitig einen Webserver und einen transparenten Proxyserver auf Port 80 betreibt. iptables ist in der Lage, die Schnittstellen von einander zu unterscheiden, und leitet nur auf einer IP-Adresse die Pakete über den Proxy.

Für die Schnittstelle eth0 wäre auch eine dynamische Konfiguration denkbar.

WLAN-Konfiguration

In /etc/network/interfaces sind auch Einstellungen möglich, welche die Verbindung zu WLAN-Routern bzw. Access Points (AP) erlauben. Die genaue Konfiguration ist in den folgenden Artikeln näher behandelt:

  • wpa supplicant beschreibt die Nutzung von WPA/WPA2 und vielen anderen modernen Techniken (das nicht empfehlenswerte WEP wird auch noch unterstützt)

  • wireless-tools beschreibt die Verbindung über WEP und ganz ohne Verschlüsselung

Bei der Verwendung von wpa_supplicant ist es ebenfalls möglich, die gesamte Konfiguration in der /etc/network/interfaces zu hinterlegen. Hierzu werden die Optionen, die üblicherweise in die wpa_supplicant.conf eingetragen werden, mit einem vorangestelltem wpa- eingetragen. Dies könnte z.B. so aussehen:

auto wlan0 
iface wlan0 inet dhcp
     wpa-driver wext
     wpa-ssid MeineSSID
     wpa-ap-scan 1
     wpa-proto RSN
     wpa-pairwise CCMP
     wpa-group CCMP
     wpa-key-mgmt WPA-PSK
     wpa-psk "swordfish"

Für mehrere Netzwerke wird die Konfiguration jedoch ziemlich unübersichtlich.

Treiber

Zur Nutzung von wpasupplicant muss noch ein Treiber für die WLAN-Schnittstelle gewählt werden. Hierbei ist das Kernelmodul für den verwendeten Chipsatz das entscheidende Kriterium, welcher Treiber für wpasupplicant gewählt werden muss.

Hinweis:

Bei der Wahl des richtigen Treibers können die Artikel Karten und Chipsatztabelle hilfreich sein.

wpasupplicant
Treiber Beschreibung
hostap Host AP driver (Intersil Prism2/2.5/3)
madwifi MADWIFI 802.11 support (Atheros, etc.), nur bis Ubuntu 8.04 verwenden
atmel ATMEL AT76C5XXx (USB, PCMCIA)
wext Linux wireless extensions (generic) benutzen, falls andere Treiber nicht funktionieren
wired wired Ethernet driver

Beispieleintrag:

auto wlan0
iface wlan0 inet dhcp
        wpa-driver wext                                    # Gibt den zu verwendenden Treiber für wpasupplicant an, in diesem Fall die generische Wireless-Extension
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf   # Gibt die zu verwendende Konfigurationsdatei für wpasupplicant an

Wird kein Treiber angegeben, wird automatisch der generische wext-Treiber genutzt. Dieser funktioniert bei vielen Karten sehr gut (und ist auch empfohlen).

Start-/Stop-Skripte

In der /etc/network/interfaces können noch Einträge für Skripte (oder einzelne Befehle) gemacht werden, die jeweils vor (pre), während (kein Schlüsselwort) oder nach (post) der Aktivierung (up) oder Deaktivierung (down) einer Schnittstelle ausgeführt werden. Praktisch ist dies z.B. der Aufbau einer VPN-Verbindung, sobald eine Netzwerkverbindung besteht. Hierfür werden unter der jeweiligen iface-Zeile eine (oder mehrere) der folgenden Zeilen angefügt:

    pre-up     # Befehl oder Skript, welcher/-s vor dem Starten der Netzwerkverbindung ausgeführt werden soll
    up         # Befehl oder Skript, welcher/-s während des Startens der Netzwerkverbindung ausgeführt werden soll
    post-up    # Befehl oder Skript, welcher/-s nach dem Starten der Netzwerkverbindung ausgeführt werden soll
    pre-down   # Befehl oder Skript, welcher/-s vor dem Trennen der Netzwerkverbindung ausgeführt werden soll
    down       # Befehl oder Skript, welcher/-s während des Trennens der Netzwerkverbindung ausgeführt werden soll
    post-down  # Befehl oder Skript, welcher/-s nach dem Trennen der Netzwerkverbindung ausgeführt werden soll

Beispiel

auto wan
iface wan inet manual
     up ifup eth0=statisch
     post-up /etc/init.d/apache2 restart

iface statisch inet static
     address 213.95.41.13
     netmask 0.0.0.0

In diesem Beispiel wird der Webserver apache2 neu gestartet, sobald die Netzwerkschnittstelle eth0 mit der statischen Konfiguration statisch gestartet wurde. Die IP-Adresse sollte unbedingt angepasst werden (im Beispiel wurde die IP von http://www.ubuntuusers.de verwendet).

Aktivierung

Damit die neuen Einstellungen sofort wirksam werden, führt man den Befehl [4]:

sudo /etc/init.d/networking restart 

aus. Dadurch werden alle Netzwerkkarten, die mit einem auto -Eintrag versehen sind, einmal deaktiviert und wieder aktiviert.

Schnittstellen ohne auto -Eintrag müssen manuell mit:

sudo ifup [Schnittstelle] 

gestartet werden. Hierbei muss Schnittstelle durch die korrekte Schnittstellenbezeichnung ersetzt werden.

Hinweis:

Die Befehle ifup und ifdown sowie die Befehlszeile /etc/init.d/networking restart funktionieren nur bei Netzwerk-Schnittstellen mit Eintrag in /etc/network/interfaces. Bei Schnittstellen, die mit Network Manager oder WICD konfiguriert wurden, sind sie unwirksam.

Intern

  • NetworkManager - das Standardprogramm unter Ubuntu zur automatischen Einrichtung von Netzwerk-Verbindungen

  • Wicd - alternativer Netzwerkmanager

  • WLAN - Übersicht zum Thema WLAN

Extern

Diese Revision wurde am 15. Dezember 2015 18:26 von aasche erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Netzwerk, System