Hugues

Uptime 41 years, 11 months, 11 days, 9:11

~me CV Linux Photos Last.fm Moto

Configuration réseau itinérante

Une configuration simple

La configuration réseau sous Linux, c'est relativement simple. Mais dès qu'on veut mettre en place un système vagabond (ou «itinérant») sur son ordinateur portable, ça devient beaucoup plus compliqué si on n'est pas assez rigoureux. Suite à mes diverses recherches sur le net et à la lecture des pages de manuel UNIX, j'en suis venu à la conclusion que la plupart des pages web sur le sujet étaient un peu trop alambiquées pour pas grand chose... Je me permets donc de détailler ici ma solution.

Je suis parvenu à configurer mon interface Ethernet et mon interface Wifi de manière 100% automatique à l'aide du seul fichier /etc/network/interfaces. Juste un petit bémol, l'interface wifi ne se connecte pas automatiquement quand mon ibook sort de la mise en veille et que le point d'accès précédent n'est pas disponible. C'est le seul point noir que je dois corriger. A priori ça devrait être le boulot d'ifplugd, mais je n'ai pas réussi à le lui dire correctement...

Ah oui, j'oubliais : j'ai fait tout ceci sur un iBook G4 12". Donc si ça marche ici, ça doit marcher ailleurs ;-)

L'interface Ethernet

Commençons par le plus facile. Nous voulons ici configurer l'interface Ethernet de manières différentes selon le lieu où l'on se trouve. Voici, en exemple, mon cas de figure :

Tout ceci, sans oublier le cas de figure où le câble réseau est débranché : inutile de perdre du temps à faire du DHCP si on n'a pas de réseau !

Paquetages à installer

La config

# démarrer l'interface ethernet au démarrage
auto eth0
# utiliser un script de mapping
mapping eth0
	script guessnet-ifupdown
	# teste toutes les interfaces préfixées de "eth0-"
	map autofilter: true
	map default: eth0-dhcp

iface eth0-nonet inet manual
	test missing-cable

iface eth0-home inet static
	test peer address IP.AD.DR.ESS mac MA:CA:DD:RE:SS
	address w.x.y.z
	netmask x.x.x.y
	gateway w.x.y.a
	dns-nameservers w.x.y.b
	dns-search domain.com

iface eth0-work inet static
	test peer address IP.AD.DR.ESS mac MA:CA:DD:RE:SS
	blablabla

iface eth0-dhcp inet dhcp
	# fallback

Juste penser à configurer ifplugd (RTFM !!) pour qu'il surveille l'interface eth0

L'interface Wifi

Pour le Wifi, c'est un poil plus compliqué. Déjà, je ne me connecte que sur des réseaux en WPA, donc utilisation obligée de wpa_supplicant. Ensuite, chez moi, le Wifi n'est qu'un autre moyen de me connecter à mon réseau local. Donc si je suis connecté en Wifi et via Ethernet, je me retrouve avec deux interfaces utilisant la même adresse IP. Donc ça coince. Ensuite, la configuration Wifi doit se faire selon les points d'accès disponibles...

Pour wpa_supplicant, en principe il faut utiliser un fichier de configuration pour indiquer les différentes clefs WPA et leur SSID associé. C'est lourd, ça oblige à séparer la config. Mais heureusement pour nous, wpa_supplicant gère les options wpa-* dans le fichier /etc/network/interfaces !

Pour ifplugd en revanche, on devrait avoir des ifup/ifdown suivant l'état du réseau, mais non. Peut être est-ce lié au fait que sur mon iBook et sa carte Airport Extrême (Broadcom), je me retrouve avec deux interfaces : wmaster0 et wlan0 ? Dans tous les cas, ça m'interdit d'avoir une configuration Wifi "automagique". Quelque part, tant mieux : par défaut je ne serai donc pas connecté via Wifi à l'insu de mon plein gré. J'ai juste rajouté une entrée "sudo" pour avoir le droit de faire un ifup/ifdown sur l'interface Wifi, et le tour est joué.

Enfin, il reste l'itinérance Wifi à gérer... Là encore ça s'avère très simple : guessnet gère les tests "wireless" (notamment la présence d'une SSID, ce qui nous suffira ici)

Liste des courses

La config

auto wlan0
mapping wlan0
	script guessnet-ifupdown
	map autofilter: true

iface wlan0-home inet static
	# on teste l'SSID avec une adresse MAC pour plus de "sûreté"
	test wireless essid "HOMESWEETHOME" mac MA:CA:DD:RE:SS
	wpa-ssid "HOMESWEETHOME" # ça paraît évident..
	wpa-psk "ma passphrase secrète !"
	address blablabla # là c'est comme pour eth !

iface wlan0-boulot inet dhcp
	test wireless essid "WORKINGSTUFF" mac MA:CA:DD:RE:SS
	wpa-ssid "WORKINGSTUFF"
	wpa-psk "une autre passphrase que je ne vous dirai pas"
	# Ici on est en DHCP ! C'est magique !

iface wlan0-freewifi inet dhcp
	test wireless essid "FreeWifi"
	wireless-essid "FreeWifi"
	wireless-mode open

iface wlan0-open inet dhcp
	test wireless open
	# Ici, pas de WPA, donc pas besoin de wpa_supplicant,
	# donc pas besoin de wpa-*.
	# On utilise iwconfig avec wireless-*.
	wireless-essid any
	wireless-mode open
	# C'est tout ! C'est magique !

Et le pied c'est que wpa_supplicant fait son boulot tout seul comme un grand !

Valid XHTML! Valid CSS! Creative Commons License Vim Powered RSS 2.0 Feed nullpart.net lock