Diese Seite wird aktuell überarbeitet. Bitte hier keine Änderungen mehr vornehmen, sondern in Baustelle/interfaces!
Ubuntu 12.04 Precise Pangolin
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.
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.
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
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.
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 |
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).
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.
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
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
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.
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.
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:
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.
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.
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.
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.
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).
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
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).
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.
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.
Diese Revision wurde am 10. Januar 2017 09:45 von frustschieber erstellt.