Automatico switch Lan/WiFi con stesso IP su raspberry

6 risposte [Ultimo contenuto]
Ritratto di rdie77
rdie77
(Junior)
Offline
Junior
Iscritto: 18/12/2018
Messaggi: 13

Salve a tutti
posseggo un raspberry pi3 con installata la distro Openhabian (Raspbian GNU/Linux 9 (stretch))
Al momento il mio raspy è collegato tramite cavo, ma vorrei poter implementare un meccanismo per cui:
- la priorità è sulla connessione Lan anche se collegato il wifi (ovviamente il wifi è già stato configurato)
- se si stacca la Lan passa in automatico al WiFi
- se la Lan viene ripristinata, si disabilita il WiFi

Dal momento che sul raspberry girano diversi servizi, è importante che l'IP sia lo stesso sia per la connessione Lan che Wifi in modo da essere sempre raggiungibile

Grazie in anticipo per l'aiuto/suggerimento

Ritratto di badroot
badroot
(Guru)
Offline
Guru
Iscritto: 22/08/2008
Messaggi: 2068

Ciao,
forse è questo quello che cerchi.

Ritratto di rdie77
rdie77
(Junior)
Offline
Junior
Iscritto: 18/12/2018
Messaggi: 13

badroot ha scritto:

Ciao,
forse è questo quello che cerchi.

Sembrerebbe che sia proprio quello che mi serve Wink
Posso eseguire le modifiche da SSH e poi riavviare il raspberry per aggiornare le configurazioni, o devo necessariamente accedere fisicamente alla macchina sempre in SSH perchè devo prima buttare giù l'interfaccia eth?

Grazie ancora

Ritratto di badroot
badroot
(Guru)
Offline
Guru
Iscritto: 22/08/2008
Messaggi: 2068

Ciao,
per sicurezza è meglio collegare una tastiera USB e il monitor al raspberry e poi seguire le istruzioni.
Di per se puoi fare le modifiche senza "buttare" giù la rete e al termine fai un reboot in modo che all'avvio venga eseguita la nuova configurazione .... se va tutto bene e il raspberry è raggiungibile via cavo provi a staccarlo e vedi se risulta sempre raggiungibile con lo stesso IP, questa volta via wifi.

Ritratto di rdie77
rdie77
(Junior)
Offline
Junior
Iscritto: 18/12/2018
Messaggi: 13

badroot ha scritto:

Ciao,
per sicurezza è meglio collegare una tastiera USB e il monitor al raspberry e poi seguire le istruzioni.
Di per se puoi fare le modifiche senza "buttare" giù la rete e al termine fai un reboot in modo che all'avvio venga eseguita la nuova configurazione .... se va tutto bene e il raspberry è raggiungibile via cavo provi a staccarlo e vedi se risulta sempre raggiungibile con lo stesso IP, questa volta via wifi.

Ciao
ho seguito quanto indicato nel link, e staccando il cavo eth0 passa in automatico al wifi, ma ho diversi comportamento anomali e inattesi:
- dalla stessa lan (sia che il raspberry è collegato con il wifi o lan) non riesco più a collegarmi in ssh, neanche a pingarlo
- il raspberry non raggiunge con il ping nessun altro device della reta, solo il router

di seguito le configurazioni

[22:03:17] root@raspy:/etc/network# more interfaces.old
# interfaces(5) file used by ifup(8) and ifdown(8)
 
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
 
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
 
 
 
# Definire gli slave
auto eth0
iface eth0 inet manual
    bond-master bond0
    bond-primary eth0
    bond-mode active-backup
auto wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    bond-master bond0
    bond-primary eth0
    bond-mode active-backup
 
# Definire il master
auto bond0
iface bond0 inet dhcp
    bond-slaves none
    bond-primary eth0
    bond-mode active-backup
    bond-miimon 100
[22:03:26] root@raspy:/etc/network#

e di seguito le verifiche del cambio di interfaccia

[21:28:03] root@raspy:/var/www/script/SH# ./checkLanWifi.sh
Slaves = eth0 wlan0
Primary = eth0
Active Slave = wlan0
  PID TTY      STAT   TIME COMMAND
  599 ?        Ss     0:00 /sbin/dhclient -4 -v -pf /run/dhclient.bond0.pid -lf /var/lib/dhcp/dhclient.bond0.leases -I -df /var/lib/dhcp/dhclient6.bond0.leases bond0
  PID TTY      STAT   TIME COMMAND
  478 ?        Ss     0:00 /sbin/wpa_supplicant -s -B -P /run/wpa_supplicant.wlan0.pid -i wlan0 -D nl80211,wext -c /etc/wpa_supplicant/wpa_supplicant.conf
 
 
[21:31:16] root@raspy:/var/www/script/SH# ./checkLanWifi.sh
Slaves = eth0 wlan0
Primary = eth0
Active Slave = eth0
  PID TTY      STAT   TIME COMMAND
  599 ?        Ss     0:00 /sbin/dhclient -4 -v -pf /run/dhclient.bond0.pid -lf /var/lib/dhcp/dhclient.bond0.leases -I -df /var/lib/dhcp/dhclient6.bond0.leases bond0
  PID TTY      STAT   TIME COMMAND
  478 ?        Ss     0:00 /sbin/wpa_supplicant -s -B -P /run/wpa_supplicant.wlan0.pid -i wlan0 -D nl80211,wext -c /etc/wpa_supplicant/wpa_supplicant.conf
[21:32:02] root@raspy:/var/www/script/SH#

Ritratto di badroot
badroot
(Guru)
Offline
Guru
Iscritto: 22/08/2008
Messaggi: 2068

Ciao,
il problema è che hai optato per il DHCP, o almeno credo, visto che è l'unica differenza che noto rispetto alla guida.
Qui è proposta una configurazione leggermente diversa che dovrebbe gestire il problema con il DHCP, anche se indicano il comando dhclient3 dovrebbe funzionare anche con dhclient.

Però, almeno che non ci siano particolari motivi, io opterei per usare un IP statico in questa situazione, o quantomeno per un primo test in modo da essere certo che il "bonding" funzioni e sia configurato correttamente.

Ritratto di rdie77
rdie77
(Junior)
Offline
Junior
Iscritto: 18/12/2018
Messaggi: 13

Ciao
grazie ancora per il supporto.
Ho impostato il DHCP, in quanto sul router ho impostato l'IP riservato al mac del raspberry, in modo che se dovessi spostare per qualsiasi motivo il raspberry, l'IP viene assegnato senza problemi.

Quindi, se non ho capito male, ho due possibilità:
1) impostare IP statico al bonding modificando in questo modo la configurazione

# interfaces(5) file used by ifup(8) and ifdown(8)
 
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
 
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
 
 
 
# Definire gli slave
auto eth0
iface eth0 inet manual
    bond-master bond0
    bond-primary eth0
    bond-mode active-backup
auto wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    bond-master bond0
    bond-primary eth0
    bond-mode active-backup
 
# Definire il master
auto bond0
iface bond0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.254
    bond-slaves none
    bond-primary eth0
    bond-mode active-backup
    bond-miimon 100

2) mantenere la configurazione precedente, aggiungendo dhcpclient nel bonding che sinceramente non ho capito come devo fare

A fronte di quanto sopra, consigli prima di tutto di provare la soluzione 1) per capire se il tutto funziona correttamente, per poi mantenere la logica dell'IP attualmente utilizzate.

Grazie ancora