# NetworkManager

Der NetworkManager ist eine Anwendungssoftware zur Verwaltung von Netzwerkverbindungen für Linux. Er soll den Umgang mit Rechnernetzen, insbesondere mit drahtlosen Netzwerken erleichtern, unterstützt mittlerweile aber auch kabelgebundene Netzwerkzugänge.

## Merkmale

Der NetworkManager stellt über unterschiedliche Zugangstechniken nach Möglichkeit automatisch eine Netzwerkverbindung her. Er unterstützt
* kabelgebundene Ethernet-Geräte (IEEE 802.3)
* drahtlose Ethernet-Geräte (IEEE 802.11) sowohl unverschlüsselt als auch verschlüsselt mit WEP, WPA Personal oder WPA Enterprise
* Virtual Private Networks (VPN) über OpenVPN oder VPNC
* Wählleitungen (PPP) wie beispielsweise Telefonmodem oder ISDN
Im Rahmen eines Förderprogrammes wurde im Sommer 2008 auch ein Assistent für das Verbinden über Mobilfunk-Geräte entwickelt, mit dem sich Verbindungen über Techniken wie GPRS, EDGE, UMTS, CDMA einrichten lassen.

## Funktion

Soweit nicht anders verordnet, stellt der NetworkManager möglichst automatisch eine Netzwerkverbindung her. Er verfährt dazu nach einem opportunistischen Ansatz, indem er versucht, die beste verfügbare Verbindung zu benutzen, sobald Unterbrechungen auftreten oder der Benutzer sich zwischen verschiedenen drahtlosen Netzwerken umherbewegt. Dabei werden kabelgebundene Verbindungen (Ethernet) gegenüber schon einmal benutzten drahtlosen Netzen bevorzugt, welche wiederum Netzen vorgezogen werden, zu denen der Benutzer noch nie verbunden war. Wenn nötig, wird der Benutzer nach WEP- oder WPA-Schlüsseln gefragt.
Mit der Version 1.2 wird die MAC-Adresse bei der Suche nach drahtlosen Netzwerken verschleiert, um das Tracking von Benutzern zu erschweren. Bei nicht vertrauenswürdigen Netzwerken bleibt die eigentliche Adresse auch nach der Suche verschleiert, bei vertrauenswürdigen Netzwerken ist dies nicht der Fall.
Nach dieser Version wurde eine Nutzerbefragung durchgeführt.
Die Version 1.4 führte allgemeine Unterstützung für MAC-Spoofing ein. Außerdem wurden eine API für Konfigurations-Snapshots sowie die Eigenschaft dns-priority eingeführt. Canonical steuerte Unterstützung für oFono als Modemmanager bei.

## Technik

Der NetworkManager besteht aus zwei Komponenten: einem Daemon, der Netzwerkverbindungen verwaltet und Informationen über Veränderungen bereitstellt. Ein Anwender kann wahlweise in der grafischen Oberfläche über ein Desktop-Applet oder über die Kommandozeile in die Konfiguration und das aktuelle Verhalten eingreifen. Als eine der ersten größeren Komponenten des Linux-Desktops wurde beim NetworkManager ausgiebiger Gebrauch von D-Bus und der Hardwareabstraktionsschicht (HAL) des freedesktop.org-Projektes gemacht, anders als etwa ConnMan ist er inzwischen aber nicht mehr zwingend daran gebunden. Das Applet benutzt das System Tray Protocol von freedesktop.org und funktioniert mit allen Desktop-Umgebungen, die dieses befolgen. Darunter Gnome, K Desktop Environment / Plasma und Xfce. Sowohl der NetworkManager selbst, als auch seine Benutzerschnittstellen sollen weitgehend portabel sein. Da die Komponenten über D-Bus kommunizieren, können andere Anwendungen mit Informationen über den Online-Status versorgt werden oder auch das ursprüngliche Applet vollständig ersetzt werden, wie bei dem KDE-Frontend KNetworkManager, das Novell für openSUSE entwickelt hat.

## Geschichte

Das Projekt wurde 2004 von Red Hat ins Leben gerufen. Jenseits von Linux ist NetworkManager in Ermangelung einer passenden Hardwareabstraktionsschicht auf vielen Betriebssystemen nicht verfügbar.

## Benutzerschnittstellen

* plasma-nm: ist das KDE-Applet für NetworkManager.
* nm-applet: ist das Gnome-Applet für NetworkManager.
* nmcli: Benutzerschnittstelle für die Kommandozeile.