Ich hab mal wieder mit ein wenig mit ifplugd und guessnet gespielt. ifplugd ist ein kleiner Daemon, der ein Interface überwacht und falls dieses Interface einen Link hat (sprich: Kabel eingestöpselt oder im Falle Wlan in einen AP eingebucht) ein ifup auf das Interface ausführt. Sehr praktisch; heimkommen, Kabel rein, Netz tut, ab in die Uni, Wlankarte rein, Netz tut.

Ein Auszug aus meiner /etc/network/interfaces

mapping eth0
script /usr/sbin/guessnet-ifupdown
map default: dhcp

mapping eth1
script /usr/sbin/guessnet-ifupdown
map default: dhcp
map verbose: true

iface home inet static
address 192.168.156.66
netmask 255.255.255.0
network 192.168.156.0
broadcast 192.168.156.255
gateway 192.168.156.144
dns-nameservers 192.168.156.144
up /usr/local/sbin/neednet
test peer address 192.168.156.144 mac 00:40:33:A6:43:88

iface brenzstrasse-wlan inet dhcp
up /etc/init.d/openvpn start brenzstrasse-wlan
down /etc/init.d/openvpn stop brenzstrasse-wlan
test peer address 10.22.0.1 mac 00:17:31:B4:21:28

iface uni-wlan inet dhcp
wireless-essid welcome
wireless-mode managed
up /usr/local/sbin/uni-ulm-kiz-gast.pl
test peer address 134.60.237.254 mac 00:50:8B:EB:6A:A0

iface dhcp inet dhcp

Über das mapping eines Device wird ein default Ergebnis festgelegt, zum Beispiel ein auf DHCP konfiguriertes iface.

guessnet im ifupdown-Modus wird elegant über /etc/network/interfaces konfiguriert. Dazu müssen die Zeilen innerhalb eines iface mit test anfagen und zum Beispiel mit peer, wireless oder command weitergehen.

Die test peer address Zeile testet auf die MAC-Adressen bestimmter Rechner

Das ganze lässt sich noch mit wpa_supplicant kombinieren, das wenn es ein Wlan findet nach bestimmten Regeln die Wlankarte konfiguriert, so das ifplugd dann einen Link feststellen kann (sollten mehrere Netze verfuegbar sein).