Traduit de English par IA ·
Nous en avons encore quelques-uns sur le terrain. La différence tient à qui pilote le DHCP.Avec wpa-conf, ifupdown démarre wpa_supplicant avec votre configuration, puis exécute dhclient sur wlan0 lui-même. wpa_supplicant choisit un réseau parmi les blocs du fichier, ifupdown ne se soucie pas de lequel. C’est simple, et suffisant pour « se connecter à celui des deux qui est à portée ».Avec wpa-roam, wpa_supplicant fonctionne en mode itinérance et appelle wpa_action à chaque connexion et déconnexion, lequel active alors une interface logique. Chaque bloc réseau peut porter un id_str qui désigne l’interface logique à utiliser ; ceux qui n’en ont pas utilisent iface default. Cela sert à avoir des paramètres IP différents selon le réseau. Le piège : wpa_action doit voir la déconnexion pour libérer l’ancien bail. Lorsque le nœud est emporté et que le point d’accès disparaît dans un ordre inattendu, vous restez associé sans bail. C’est votre symptôme sur le terrain.Pour deux réseaux DHCP, utilisez wpa-conf et des priorités :
# /etc/network/interfaces
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
# /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="LAB-WIFI"
psk="..."
priority=10
}
network={
ssid="FIELD-AP"
psk="..."
priority=5
}
Côté Hermetry, chaque changement de réseau interrompt la session MQTT ; faites donc en sorte que votre client se reconnecte avec un délai progressif (backoff) et se réabonne. Si le nœud dispose d’une alarme hors ligne, réglez son délai d’ouverture (open-after) au-delà du temps de trajet entre le laboratoire et la parcelle, sinon vous en recevrez une à chaque déplacement.
We still have a few of these in the field. The difference is who drives DHCP.
With wpa-conf, ifupdown starts wpa_supplicant with your config and then runs dhclient on wlan0 itself. wpa_supplicant picks a network from the blocks in the file, ifupdown doesn’t care which one. Simple, and enough for « connect to whichever of these two is around ».
With wpa-roam, wpa_supplicant runs in roaming mode and calls wpa_action on every connect and disconnect, which then brings up a logical interface. Each network block can carry an id_str that names the logical interface to use, and anything without one falls to iface default. It’s meant for different IP settings per network. The catch is that wpa_action must see the disconnect to take the old lease down; when the node is carried away and the AP disappears in a funny order, you end up associated with no lease. That’s your field symptom.
For two DHCP networks use wpa-conf and priorities:
# /etc/network/interfaces
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
# /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="LAB-WIFI"
psk="..."
priority=10
}
network={
ssid="FIELD-AP"
psk="..."
priority=5
}
On the Hermetry side, each move between networks drops the MQTT session, so make your client reconnect with backoff and resubscribe. If the node has an offline alarm, set its open-after time longer than a walk from the lab to the plot or you’ll get one every trip.

