Networkmanager
ArchLinux unterstützt dank Tor Krill und William Rea nun den "Networkmanager". Die Unterstützung basiert vollständig auf ihren Paketen.
Installation
Vor der Installation solltet Ihr kontrollieren, ob der HAL Daemon installiert ist und in der rc.conf geladen wird.
Gnome
Das Paket des Networkmanagers für Gnome wurde von gnome-network-manager zu network-manager-applet umbenannt.
pacman -S network-manager-applet
Allerdings kann man den Networkmanager nach wie vor mit dem alten Kommando downloaden:
pacman -S gnome-network-manager
KDE
Durch das KDE-Update ist knetworkmanager nicht mehr im Community-Repository verfügbar. Im AUR gibt es dieses Paket allerdings noch,
Xfce
Xfce benutzt das selbe Paket wie GNOME. Zusätzlich wird noch das xfapplet Plugin benötigt, welches es ermöglicht GNOME Applets im xfce4-panel anzuzeigen.
pacman -S network-manager-applet xfce4-xfapplet-plugin
Falls dies nicht funktioniert, kann man das Applet auch wie bei Fluxbox und co. hinzufügen.
Eine Alternative zu dem network-manager-applet mit dem xfce4-xfapplet-plugin, der den gesamten gnome-desktop als Abhängigkeit benötigt wäre wicd zu empfehlen. Er bindet sich auch als Tray-Icon ein.
Fluxbox, Openbox und andere WM
Ihr braucht das hicolor-icon-theme um das nm-applet benutzen zu können:
pacman -S network-manager-applet hicolor-icon-theme
Um das Network Manager Applet automatisch zu sarten tragt Ihr "nm-applet --sm-disable" in die ~/.xinitrc ein.
Zum Beispiel so:
#!/bin/sh nm-applet --sm-disable & exec fluxbox
Die "--sm-disable Option" verhindert, dass mehrere Instanzen des nm-applets gestartet werden. Ihr benötigt diese Option nur falls nach dem Starten des Window-Managers mehrere Instanzen laufen sollten.
System für den Networkmanager einrichten
Der Networkmanager prüft die Datei /etc/rc.conf, um zu sehen, ob eine statische oder dynamische (DHCP) IP für das Netzwerkinterface benutzt werden soll. Je nachdem sollte dort also z.B.:
eth0="eth0 172.19.3.18 netmask 255.255.255.0 broadcast 172.19.3.255"
für eine statische oder,
eth0="dhcp"
für eine dynamische IP eingetragen werden. Desweiteren müssen in der /etc/rc.conf die Netzwerkinterfaces deaktiviert werden, die der Netzwerkmanager kontrolieren soll. Also z.B. so:
INTERFACES=(lo !eth0 !ath0)
Nun muss noch der Daemon (networkmanager) in die /etc/rc.conf eingetragen werden. Außerdem ist es noch wichtig, den network-DAEMON zu deaktivieren . Das sieht dann zum Besipiel so aus:
DAEMONS=(syslog-ng !hotplug !pcmcia !network dbus hal netfs !crond acpid alsa fnfxd cpufreqd networkmanager)
Danach sollte man den User, der den Networkmanager benutzen will, in die Gruppe "network" eintragen:
gpasswd -a USERNAME network
Jetzt nur noch einen Neustart durchführen und fertig.
Dispatcher
Der Networkmanger-Dispatcher ist Bestandteil des Netwokmanager-Paketes und muss nicht separat installiert werden. Mit Ihm ist es möglich automatisch Befehle auszuführen sobald eine Verbindung aufgebaut bzw. getrennt wurde. Das geschieht mit einfachen Shell-Scripten, die in /etc/NetworkManager/dispatcher.d/ ausführbar abgespeichert werden. Als Ausgangspunkt kann man dieses Script verwenden.
#!/bin/sh case "$2" in up) # wird abgearbeitet nachdem die Verbindung aufgebaut wurde ;; down) # wird abgearbeitet nachdem die Verbindung getrennt wurde ;; esac
DNS Server festlegen
Der DNS-Server wird in der Datei /etc/resolv.conf festgelegt. Bei dynamiacher Zuweisung der IP per DHCP wird automatisch auch ein DNS-Server ermittelt und in die resolv.conf eingetragen. Dabei werden bereits vorhandene Einträge überschrieben. Will man einen anderen DNS-Server benutzen, muss man das Überschreiben verhinden bzw.rückgängig machen. Die hier beschriebenen Methoden funktionieren bei Verwendung des Networkmanagers leider nicht.
Eine einfache Möglichkeit das Überschreiben zu verhindern ist das immutable flag der resolv.conf zu setzen.
chattr +i /etc/resolv.conf
So hat auch root keine Berechtigung die Datei zu verändern.
Eine weitere Möglichkeit besteht darin, per Dispatcher-Script den/die gewünschten DNS-Server nach dem Aufbau der Verbindung in die resolv.conf einzutragen und somit das Überschreiben rückgängig zu machen. Ein solches Script könnte z.B. so aussehen.
#!/bin/sh case "$2" in up) echo "nameserver <IP des DNS-Servers>" > /etc/resolv.conf ;; esac