Un tutorial antiguo usa wpa-roam en /etc/network/interfaces, otros dicen wpa-conf. ¿Cuál?
Traducido del English por IA ·
Otra duda de redes de mi parte, perdón. Nuestro grupo de investigación tiene un nodo sensor con Pi 3 (humedad del suelo + temperatura del aire) que se traslada entre el laboratorio y una parcela de campo. Necesita conectarse a «LAB-WIFI» en el laboratorio y a un hotspot 4G («FIELD-AP») en la parcela, y seguir enviando datos a Hermetry estés donde estés.
La imagen es antigua (Buster, heredada de un estudiante anterior) y usa ifupdown. La mitad de los tutoriales tienen:
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
La otra mitad tiene iface wlan0 inet dhcp con wpa-conf. El archivo actual usa wpa-roam, y el nodo a veces se queda en el FIELD-AP sin dirección IP hasta que alguien lo reinicia. ¿Cuál es la diferencia real entre los dos y cuál debería usar para dos redes?
Another networking one from me, sorry. Our research group has a Pi 3 sensor node (soil moisture + air temp) that gets carried between the lab and a field plot. It needs to join «LAB-WIFI» in the lab and a 4G hotspot («FIELD-AP») at the plot, and keep reporting to Hermetry wherever it is.
The image is old (Buster, inherited from a previous student) and uses ifupdown. Half the tutorials have
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
and the other half have iface wlan0 inet dhcp with wpa-conf. The current file has wpa-roam and the node sometimes sits on the field AP with no IP address at all until someone power-cycles it. What is the actual difference between the two, and which should I use for two networks?
Traducido del English por IA ·
Antes que nada: ¿es posible migrar a Bookworm? NetworkManager hace que toda esta cuestión desaparezca.
Before anything: is moving it to Bookworm an option? NetworkManager makes this whole question go away.
Traducido del English por IA ·
No es este término, el controlador del sensor de suelo aparentemente solo compila con el kernel antiguo.
Not this term, the soil sensor driver only builds on the old kernel apparently.
Traducido del English por IA ·
Todavía tenemos algunos de estos en campo. La diferencia está en quién controla DHCP.Con wpa-conf, ifupdown inicia wpa_supplicant con tu configuración y luego ejecuta dhclient en wlan0 por sí mismo. wpa_supplicant elige una red de los bloques del archivo; a ifupdown no le importa cuál. Es sencillo, y suficiente para «conectarse a cualquiera de estas dos que esté disponible».Con wpa-roam, wpa_supplicant funciona en modo de roaming y llama a wpa_action en cada conexión y desconexión, que a su vez levanta una interfaz lógica. Cada bloque de red puede llevar un id_str que indica la interfaz lógica a usar, y cualquiera sin él recae en iface default. Está pensado para tener ajustes IP distintos por red. El problema es que wpa_action debe ver la desconexión para liberar el arrendamiento anterior; cuando el nodo se traslada y el AP desaparece en un orden extraño, quedas asociado sin ningún arrendamiento. Ese es el síntoma que tenéis en campo.Para dos redes con DHCP, usa wpa-conf y prioridades:
# /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
}
En el lado de Hermetry, cada cambio entre redes elimina la sesión MQTT, así que haz que tu cliente se reconecte con backoff y vuelva a suscribirse. Si el nodo tiene una alarma de desconexión, ajusta su tiempo de open-after por encima de lo que tarda caminar del laboratorio a la parcela, o recibirás una en cada viaje.
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.
Traducido del English por IA ·
Además, como doble seguridad, añade un cron con ip addr show wlan0 | grep -q inet || systemctl restart networking. Nos ahorró más de un viaje.
Also put a cron’d ip addr show wlan0 | grep -q inet || systemctl restart networking in as a belt-and-braces. Saved us more than one trip.
Traducido del English por IA ·
Cambié a wpa-conf con prioridades como las de arriba y recorrí la ida y vuelta dos veces; en cada una obtuvo una concesión en unos 20 s, Hermetry mostró el hueco y luego nuevas lecturas. También subí la alarma de desconexión a 30 minutos, el recorrido dura 15. ¡Gracias!
Swapped to wpa-conf with priorities like above and carried it out and back twice, it picked up a lease each time within about 20 s and Hermetry showed the gap and then fresh readings. Raised the offline alarm to 30 minutes too, the walk is 15. Thanks!
- Debes estar registrado para responder a este debate.
Únete a la conversación
Inicia sesión para preguntar y responder, dar me gusta a las publicaciones útiles y marcar la respuesta que resolvió tu problema. Cada aportación suma puntos y niveles.

