So che dal titolo potrebbe non comprendersi molto ma l’obiettivo è collegare i Pi Zero a internet, non tramite Wi-Fi ma bensì via USB, tramite un altro Raspberry che fa da router.
I Raspberry Pi Zero a differenza delle altre versioni (mi riferisco al 2 e al 3) è possibile configurarli come accessori quindi il loro funzionamento resta inalterato ma in più, il dispositivo a cui lo collegate, potrà riconoscerlo come un hub USB o come un adattatore ethernet.
Una volta configurato il Pi Zero da poter funzionare direttamente dalla porta OTG, collegatelo a un Pi 2 o 3 come nella foto:
Il Pi Zero non configurate nulla, farà tutto automaticamente. Mentre nel Raspberry 2 o 3, che sarà quello che gli offrirà la connessione a internet (quindi a lato pratico sarà come un router in quanto gli assegnerà un IP e creerà una connessione apposta per ogni Pi Zero collegato), dovrete installare dnsmasq:
sudo apt install dnsmasq
Ora configuriamolo modificando il file di configurazione:
sudo nano /etc/dnsmasq.conf
Se ad esempio volete collegarne due di Pi Zero, create due interfacce (cambiate i parametri che più preferite) usb0 e usb1:
interface=usb0 interface=usb1 listen-address=127.0.0.1 bind-interfaces server=8.8.8.8 domain-needed bogus-priv dhcp-range=usb0,192.168.2.2,192.168.2.100,infinite dhcp-range=usb1,192.168.3.2,192.168.3.100,infinite
Adesso attivate il forward dei pacchetti:
sudo nano /etc/sysctl.conf
E modificate la riga:
net.ipv4.ip_forward=1
Ora modificate il file:
sudo nano /etc/network/interfaces
E incollate (modificando i parametri che preferite e la x
nell’IP del vostro Raspberry principale):
source-directory /etc/network/interfaces.d auto lo iface lo inet loopback allow-hotplug eth0 iface eth0 inet static address 192.168.1.x netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 allow-hotplug usb0 iface usb0 inet static address 192.168.2.1 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.2.255 gateway 192.168.2.1 allow-hotplug usb1 iface usb1 inet static address 192.168.3.1 netmask 255.255.255.0 network 192.168.3.0 broadcast 192.168.2.255 gateway 192.168.3.1
Voilà, ora riavviate il servizio (immaginando che voi abbiate già attaccato il o i Pi Zero alle USB del vostro Raspberry) con:
sudo service dnsmasq restart
E il gioco è fatto, il vostro Raspberry che fa da router assegnerà gli IP e reindirizzerà i pacchetti ai Pi Zero.