aaron-spettl.de

Dynamische Netzwerkkonfiguration mit Ubuntu

Datum: 28. September 2006 - Kategorie Ubuntu/Debian

Das Problem und die Idee

Das Notebook wird in verschiedenen Netzwerkumgebungen genutzt, dabei WLAN mit WPA, WLAN unverschlüsselt, (W)LAN ohne/mit DHCP.
Das System soll nun automatisch bei Einstecken eines LAN-Kabels oder bei Erkennung eines WLAN-Netzes die Verbindung herstellen, wobei mit einiges Tests festgestellt wird, welche Konfiguration benötigt wird.

Benötigte Software

Ubuntu (Debian natürlich auch) bietet alles, was man braucht:

wpa_supplicant: Installation, Konfiguration

Das Paket wpa_supplicant wird normal installiert. Damit wpa_supplicant als Daemon gestartet wird, muss das Initskript /etc/init.d/wpasupplicant (falls nicht vorhanden) in die Runlevels eingetragen werden - ich habe den Rang 19 verwendet (vor ifplugd).

Zur Konfigurationsdatei /etc/wpa_supplicant.conf bzw. /etc/wpa_supplicant/wpa_supplicant.conf (je nach Distribution und Version) finden sich hier Informationen: ubuntuusers.de-Wiki. Mit wpa_cli kann man sehr gut testen, ob das Verbinden an sich funktioniert.

ifplugd: Installation

Einfach das gleichnamige Paket installieren. ifplugd registriert sogenannte Link beats, d.h. die Ereignisse für LAN-Kabel oder auch von WLAN-Netzen (von wpa_supplicant ausgelöst). ifplugd wird automatisch über ein Initskript gestartet.

guessnet: Installation

guessnet führt die Tests durch, um die benötigte Netzwerkkonfiguration festzustellen. Das Paket heißt ebenfalls guessnet.

resolvconf: Installation

Falls noch nicht installiert, benötigen wir resolvconf, damit wir DNS-Server bequem konfigurieren können.

Dynamische Netzwerkkonfiguration über /etc/network/interfaces

In der /etc/network/interfaces wird der normale "iface"-Eintrag durch "mapping" ersetzt und dafür ein "script" angegeben - nämlich guessnet. Die "map"-Einträge sind Parameter für das Skript (die möglichen Netze).
ifplugd sorgt dafür, dass bei Link beats guessnet aufgerufen wird. Guessnet führt parallel die Tests durch (test1, test2...). Der erste erfolgreiche Test bestimmt, welche Konfiguration guessnet auswählt. Alle restlichen Angaben sind ganz normal.
Die Form der Tests sieht man am besten an folgendem Beispiel, die Manpage zu guessnet ist auch sehr hilfreich.

# The loopback network interface
auto lo
iface lo inet loopback

# Konfiguration für LAN, hier eth0

mapping eth0
    script guessnet-ifupdown
    map fritzlan
    map statlan

iface fritzlan inet dhcp
    test1 peer address 192.168.178.1 source 192.168.178.50

iface statlan inet static
    address 192.168.0.10
    netmask 255.255.255.0
    gateway 192.168.0.1
    dns-nameservers 192.168.0.1
    test1 peer address 192.168.0.1 mac 00:00:00:00:00:00 source 192.168.0.10

# Konfiguration für WLAN, hier eth1

mapping eth1
    script guessnet-ifupdown
    map uni
    map dsl

iface uni inet dhcp
    test1 wireless essid uninetz

iface dsl inet static
    address 192.168.178.50
    netmask 255.255.255.0
    gateway 192.168.178.1
    dns-nameservers 192.168.178.1
    test1 wireless essid wlan

Tipp: Dies ist nur eine Grundkonfiguration, man kann noch sehr viel anpassen: z.B. kann man dynamisch die Firewallregeln anpassen oder auch Proxyeinstellungen ändern lassen.

Alternativen

Eine sehr einfache und oft ausreichende Alternative ist Networkmanager. Es ist graphisch und unterstützt auch Link beats und WPA, allerdings keine statischen Netzwerkkonfigurationen.

Quellen

Eine sehr ausführliche Anleitung gibt es hier: Howto: Netzwerkverbindung automatisch konfigurieren unter Debian/Ubuntu.
Bei mir hat dies im Wesentlichen gleich funktioniert, nur einige Änderungen für Ubuntu waren nötig.

Bürobedarf Hamburg Büroaustatter in der Hansestadt finden
Noten Noten zu vielen Stücken kostenlos downloaden
Wow Gold Die Antwort auf Ihre Bedürfnisse.
Sie Sucht Ihn Alle Informationen, die Sie brauchen.
VW tiguan Sparen Sie beim Neuwagenkauf