ifplugd+guessnet power-up Problem unter Dapper

Joerg Desch jd.vvd at web.de
Mit Feb 13 12:29:11 GMT 2008


Ich habe hier auf meinem ollen Notebook (Thinkpad T23) noch Dapper
laufen. Das geht auch wunderbar, nur wollte ich endlich die notwendige
"automatische Netwerkerkennung" mit ifplugd+guessnet nachrüsten. Sinn ist
es, verschiedene Netze automatisch zu konfigurieren.

Ich habe nun die /etc/network/interfaces wie folgt umgebaut:

==================================================
auto lo
iface lo inet loopback

mapping eth0
        script guessnet-ifupdown
        map timeout: 10
        map default: none
        map home
        map vvd

iface home inet static
        address 192.168.1.10
        netmask 255.255.255.0
        network 192.168.1.0
        gateway 192.168.1.3
        broadcast 192.168.1.255
        dns-nameservers 192.168.1.3 192.168.1.2
        test1 peer address 192.168.1.3 mac 00:12:BF:F3:5D:B8
        test2 peer address 192.168.1.2 mac 00:50:22:BA:2B:E4

iface vvd inet dhcp
        test1 peer address 192.168.1.2 mac 00:12:22:BA:2B:E0

iface none inet dhcp
        # none is the 'unknown environment'. Simply try DHCP...
==================================================

Nach einem beherzten ifdown eth0 und einem /etc/init.d/ifplugd restart
geht auch alles gut. Das statische Netz wird erkannt und konfiguriert.

Wenn ich den Notebook allerdings neu starte, dann versucht sich ifplugd
an DHCP, welches hier aber deaktiviert ist.

Was kann das bewirken?

Ich habe das Gefühl, als ob das Interface bereits hochgefahren ist und
deswegen ifplugd es nicht konfigurieren kann. Kann das sein? Wenn ja, wer
hat es hochgefahren?

Ich lasse den Notebook ohne LAN-Kabel hochlaufen. Nach dem Einloggen kann
ich dann auf der Shell sehen, dass das eth0-Interface nicht
hochgefahren ist. Wenn ich nun das Kabel einstecke, erkennt das ifplug
ohne Probleme und das korrekte Netz wird erkannt und konfiguriert. 

Dann ist da noch der DNS. Die Einträge aus der Zeile dns-nameservers
werden nicht in die /etc/resolve.conf geschrieben. Habt Ihr eine Ahnung
warum nicht?

Und zuletzt noch ein Problem nach dem Verlassen des Suspend-Modus.
Vielleicht ist das ja das gleiche Problem wie beim Powerup.

Ich habe nach einem "suspend" versucht wieder zu arbeiten, aber leider
war das Netz "tot". Ich habe es dann mit dem ifdown und einem
ifplug-restart versucht, doch leider hat das nicht geklappt. Also scheint
es vielleicht doch etwas anderes zu sein.

Hier mal ein Teil aus daemon.log vom Fehlversuch:

==================================================
20:42:48 : ifplugd 0.26 initializing.
20:42:48 : Using interface eth0/00:02:8A:96:0A:66 with driver <e100> \
 (version: 3.4.14-k4-NAPI)
20:42:48 : Using detection mode: SIOCETHTOOL
20:42:48 : Initialization complete, link beat detected.
20:42:48 : Executing '/etc/ifplugd/ifplugd.action eth0 up'.
20:42:48 : client: guessnet: 3 candidates found in input
20:42:48 : client: guessnet: Guessnet 0.38 starting...
20:42:48 : client: guessnet: Trying MII detection
20:42:48 : client: guessnet: 3 candidate profiles
20:42:48 : client: guessnet: Trying MII detection
20:42:48 : client: guessnet: Initialized test subsystems
20:42:48 : client: guessnet: Added "default" test none
20:42:48 : client: guessnet: Default test is none
20:42:48 : client: guessnet: Will check network home for IP address \
 192.168.1.3 (MAC 00:12:bf:f3:5d:b8)
20:42:48 : client: guessnet: Starting peer test subsystem
20:42:48 : client: guessnet: Sending 10 ARP probes, 1 every second...
20:42:48 : client: guessnet: Will check network home for IP address \
 192.168.1.2 (MAC 00:50:22:ba:2b:e4)
20:42:48 : client: guessnet: Sending 10 ARP probes, 1 every second...
20:42:48 : client: guessnet: Will check network vvd for IP address \
 192.168.1.2 (MAC 00:12:22:ba:2b:e0)
20:42:48 : client: guessnet: Sending 10 ARP probes, 1 every second...
20:42:48 : client: guessnet: Listen ARP
20:42:48 : client: guessnet: Started tests
20:42:48 : client: guessnet: 4 candidates
20:42:48 : client: guessnet: Got ARP reply from 192.168.1.2 00:50:22:ba:2b:e4
20:42:48 : client: guessnet: ARP reply from 192.168.1.2 00:50:22:ba:2b:e4 matches
20:42:48 : client: guessnet: Got ARP reply from 192.168.1.2 00:50:22:ba:2b:e4
20:42:48 : client: guessnet: ARP reply from 192.168.1.2 00:50:22:ba:2b:e4 matches
20:42:48 : client: guessnet: Got ARP reply from 192.168.1.3 00:12:bf:f3:5d:b8
20:42:48 : client: guessnet: ARP reply from 192.168.1.3 00:12:bf:f3:5d:b8 matches
20:42:48 : client: Internet Systems Consortium DHCP Client V3.0.3
==================================================

Wie man sieht scheint guessnet die Anworten von den beiden Tests für das
Profil "home" gefunden zu haben. Trotzdem sieht man an der letzten Zeile,
dass der DHCP Client gestartet wurde. Warum? Und warum macht guessnet
nach dem ersten match noch weiter? Wie man an den Zeiten der Zeilen
sieht, kann ein Timeout nicht vorliegen...

Hier nun mal der Log-Auszug von einem geglückten Versuch:

==================================================
20:45:24 : ifplugd 0.26 initializing.
20:45:24 : Using interface eth0/00:02:8A:96:0A:66 with driver <e100> \
 (version: 3.4.14-k4-NAPI)
20:45:24 : Using detection mode: SIOCETHTOOL
20:45:24 : Initialization complete, link beat detected.
20:45:24 : Executing '/etc/ifplugd/ifplugd.action eth0 up'.
20:45:24 : client: guessnet: 3 candidates found in input
20:45:24 : client: guessnet: Guessnet 0.38 starting...
20:45:24 : client: guessnet: Trying MII detection
20:45:24 : client: guessnet: 3 candidate profiles
20:45:24 : client: guessnet: Trying MII detection
20:45:24 : client: guessnet: Initialized test subsystems
20:45:24 : client: guessnet: Added "default" test none
20:45:24 : client: guessnet: Default test is none
20:45:24 : client: guessnet: Will check network home for IP address \
 192.168.1.3 (MAC 00:12:bf:f3:5d:b8)
20:45:24 : client: guessnet: Starting peer test subsystem
20:45:24 : client: guessnet: Sending 10 ARP probes, 1 every second...
20:45:24 : client: guessnet: Will check network home for IP address \
 192.168.1.2 (MAC 00:50:22:ba:2b:e4)
20:45:24 : client: guessnet: Sending 10 ARP probes, 1 every second...
20:45:24 : client: guessnet: Will check network vvd for IP address \
 192.168.1.2 (MAC 00:12:22:ba:2b:e0)
20:45:24 : client: guessnet: Sending 10 ARP probes, 1 every second...
20:45:24 : client: guessnet: Listen ARP
20:45:24 : client: guessnet: Started tests
20:45:24 : client: guessnet: 4 candidates
20:45:24 : client: guessnet: Got ARP reply from 192.168.1.2 00:50:22:ba:2b:e4
20:45:24 : client: guessnet: ARP reply from 192.168.1.2 00:50:22:ba:2b:e4 matches
20:45:25 : Program executed successfully.
==================================================

Wie schon zuvor findet guessnet 4 Kandidaten -- was immer das auch heißen
mag. Nur danach reicht ihm ein Treffer und es gibt einen Match. Hier
meldet dann auch in der letzten Zeile die erfolgreiche Erkennung.

Was passiert hier, wenn es "fehlschlägt"? Die DEBUG-Ausgabe ist nicht
gerade sehr hilfreich...

Hat jemand Ideen?


-- 
Email: Joerg Desch <jd DOT vvd AT web DOT de>