[[Vorlage(Archiviert,, )]] [[Vorlage(Fortgeschritten)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Editor: Einen Editor öffnen] [:interfaces: Aufbau der /etc/network/interfaces] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(2)]] [http://guessnet.alioth.debian.org/ Guessnet] {en} ist ein kleines Hilfsprogramm, dass in Kombination mit anderen Hilfsprogrammen wie ifplugd und [:WLAN/wpa_supplicant:wpa-supplicant] die Konfiguration der Netzwerkschnittstellen übernimmt, wenn sich ein Rechner, z.B. ein Laptop, zwischen verschiedenen Netzen bewegt. Vorteile gegenüber dem [:Network-Manager:], der eine ähnliche Funktion erfüllt, sind u.a. die Möglichkeit auch statische IP-Adressen oder gar [wikipedia:PPPoE:]-Verbindungen mit einzubeziehen und die nahtlose Integration in das Debian-Netzwerkmanagement, das auch von Ubuntu verwendet wird. Außerdem benötigt man keine grafische Oberfläche. = Installation = Folgende Pakete müssen auf jeden Fall installiert werden [1]: {{{#!vorlage Paketinstallation guessnet, universe ifplugd, universe resolvconf, universe }}} = Verkabelte Netzwerke - guessnet/ifplugd = Als erstes muss ifplugd mitgeteilt werden, welche Schnittstellen überhaupt beobachtet werden sollen. Dazu trägt man in einem Editor[2] mit Root-Rechten diese in die Datei '''/etc/default/ifplugd''' ein : {{{ INTERFACES="eth0" }}} Dann muss die Datei '''/etc/network/interfaces'''[3], das Herzstück der Netzwerkkonfiguration angepasst werden [4]. Das Loopback-Interface bleibt, wie es ist: {{{ auto lo iface lo inet loopback }}} Nun kommt der neue Abschnitt, der die Kontrolle an Guessnet übergibt: {{{ mapping eth0 script /usr/sbin/guessnet-ifupdown map timeout: 3 map default: unbekannt }}} Wenn Guessnet Schwierigkeiten bekommt, das Netz innerhalb von drei Sekunden zu erkennen, muss der Timeout-Wert entsprechend erhöht werden. Nun kommen beliebig viele Netzwerkdefinitionen. Diese sehen im Großen und Ganzen genauso aus, wie bisher. Allerdings werden die Definitionsblöcke jetzt nicht mehr über den Namen der Schnittstelle (`eth0`, etc.) unterschieden, sondern bekommen beliebige Namen. Außerdem bekommen sie Teststatements, über die Guessnet ermittelt, welche Beschreibung zur Anwendung kommen soll. `auto`-Deklarationen sind überflüssig, da sich ifplugd um die Aktivierung der Schnittstelle(n) kümmert. Hat man bspw. zu Hause feste IP-Adressen und eigene Nameserver, sieht der Abschnitt etwa so aus: {{{ iface zuhause inet static address 192.168.1.6 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.1 192.168.1.2 dns-search home.lan test1 peer address 192.168.1.1 mac 12:34:56:78:90:AB source 192.168.1.6 test2 peer address 192.168.1.5 mac AB:CD:EF:AB:CD:EF }}} Hierbei überprüft Guessnet das Vorhandensein eines der Rechner 192.168.1.1 und 192.168.1.5 mit der jeweils angegebenen MAC-Adresse im lokalen Netz. Hat einer der Tests Erfolg, geht Guessnet davon aus, dass der Rechner gerade "zuhause" angeschlossen wurde, und weist über den Debian-/Ubuntu-`ifupdown`-Mechanismus die angegebenen Netzwerkdaten zu. Die `dns`-Optionen werden von den Programmen und Skripten des Pakets '''resolvconf''' verarbeitet, welche daraufhin die Namensauflösung entsprechend umkonfigurieren. {{{#!vorlage Hinweis Die MAC-Adressen der anderen Rechner kann man sehr leicht mit dem Befehl `arp -a` herausfinden. Evtl. muss man vorher noch ein wenig Datenverkehr zum gewünschten Gerät erzeugen, bspw. mit `ping -c 1 RECHNER`. }}} {{{#!vorlage Hinweis Manche Geräte machen Probleme, wenn Guessnet seine Tests durchführt, ohne selber eine IP-Adresse zu besitzen. In diesem Fall kann man mit `source ip` eine IP angeben, die für die Tests benutzt werden soll. Diese sollte natürlich am besten nicht in Gebrauch durch andere Rechner sein, um deren Netzverbindung nicht zu beeinträchtigen. Wenn man keine statische Adresse zur Verfügung hat, sollte man deshalb erst einmal die allgemeine Netzwerkadresse (meist mit '0' am Ende) verwenden. }}} Für den Fall, dass der Rechner gar nicht verbunden ist, sollte man eine "leere" Konfiguration verwenden, und außerdem fehlt noch die Standardeinstellung `unbekannt`, falls alle Tests fehlschlagen: {{{ iface keinnetz inet manual test missing-cable iface unbekannt inet dhcp }}} = Wireless LAN: wpa_supplicant als Roaming Daemon = == Ohne guessnet == Um dieselbe Wirkung in einem drahtlosen Netzwerk zu erzielen, muss man leider komplett anders vorgehen, da ifplugd nicht mit verschlüsselten Netzen umgehen kann. Zum Glück stellt der [:WLAN/wpa_supplicant:wpa-supplicant] eine ähnliche Funktionsweise namens ''"Roaming"'' bereit. === wpa_supplicant.conf === Hierzu muss man erst eine passende Datei '''/etc/wpa_supplicant/wpa_supplicant.conf''' erstellen, wo die Informationen über die bekannten WLAN-Netze hinterlegt werden - wie es im Artikel [:WLAN/wpa_supplicant:WLAN/wpa supplicant] beschrieben ist. Zusätzlich kann man dort jedem einzelnen Netz ein Attribut `id_str` zuweisen, womit dann später die verschiedenen Profile unterschieden werden, wie folgender Auszug zeigt: {{{ network={ ssid="MeinWLAN" id_str="wlan-home" # sonstige Angaben, z.B. Schlüssel } }}} === interfaces === Nun muss ein entsprechender Block in der '''/etc/network/interfaces'''[5] erstellt bzw. umgeändert werden [4]. Im Gegensatz zur o.a. Kabelkonfiguration mit ifplugd braucht man dieses Mal zwingend ein `auto`-Statement, damit das WPA-Roaming gleich beim Systemstart mitstartet: {{{ auto eth1 iface eth1 inet manual wpa-driver wext wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf wpa-roam-default-iface unknown-wlan }}} Wichtig ist, dass der Typ der Schnittstelle auf `manual` gesetzt wird, denn die Konfiguration wird nicht mehr direkt von `ifupdown` erledigt, sondern vom wpa-supplicant und seinen Helferprogrammen. Als Treiber sollte der generische Treiber der Wireless Extensions, `wext`, in den meisten Fällen funktionieren. Die `wpa-roam`-Zeile gibt einerseits den Befehl überhaupt Roaming durchzuführen und gibt gleichzeitig die Konfigurationsdatei des wpa-supplicant an. `wpa-roam-default-iface` gibt den Namen des Profils an, der bei Netzen ohne `id_str` verwendet werden soll. Die einzelnen Profile werden in benannten Abschnitten festgelegt, wie weiter oben erläutert. `test`-Statements sind natürlich nicht nötig, da die Identifizierung über die SSID des WLANs stattfindet. == Mit guessnet == {{{#!vorlage Experten Wer die Flexibilität der Guessnet-Tests schätzt, (weil er bspw. oft in verschiedenen Netzen verkehrt, die alle "linksys" oder "Fritz!Box-Fon" heißen) der kann zusätzlich Guessnet über den wpa-supplicant ausführen. Hierfür sei auf die Informationen in der Datei '''/usr/share/doc/wpasupplicant/README.modes.gz''' verwiesen. }}} = Routing-Probleme verhindern = Leider gibt es keine einfache Möglichkeit Ubuntu herausfinden zu lassen, welche Default-Route verwendet werden soll, falls mehrere davon konfiguriert sind. Wer z.B. an einem verkabelten LAN angeschlossen ist, sich aber auch in Reichweite eines der konfigurierten WLANs befindet, sendet seinen Traffic nur über ein Interfaces, welches zufällig bestimmt wird. Das ist lästig, wenn dies dummerweise gerade das 10MBit-WLAN und nicht das 1GBit-LAN ist. Um das zu verhindern, kann man sich entweder einen Routing-Daemon installieren (was nicht Thema dieses Artikels ist) oder man deaktiviert zur LAN-Benutzung die WLAN-Schnittstelle. = Problembehandlung = Sollte die automatische Erkennung nicht funktionieren, kann mittels folgendem Befehl eine Debug-Ausgabe zur Fehlersuche erzeugt werden. {{{#!vorlage Befehl guessnet -i --verbose --debug }}} = Links = * [http://guessnet.alioth.debian.org/ Guessnet-Homepage] {en} * [http://0pointer.de/lennart/projects/ifplugd/ Ifplugd-Homepage] {en} # tag: Netzwerk