La feature di Wake-on-LAN è comunemente utilizzata dagli amministratori di rete per avviare uno specifico dispositivo, magari un server o un altro terminale remoto, semplicemente inviando verso di esso un particolare pacchetto, definito come Magic Packet, sfruttando la rete a cui è connesso.
Tale funzionalità risulta essere molto comoda quando è necessario eseguire il boot di un device senza dover essere fisicamente presenti nella posizione dove è ubicato il computer che si desidera accendere.
In genere è possibile eseguire il Wake-on-LAN di un dispositivo sfruttando dei tool dedicati, tramite shell o con qualche GUI avanzata richiamabile da browser Web. Nella guida di oggi illustreremo come realizzare un Wake-on-LAN Server sfruttando Raspberry Pi. La nota board ARM low-cost non supporta il Wake-on-LAN ma in ogni caso può essere configurata per poter inviare il magic packet verso il server, o il device, che vogliamo avviare da remoto.
La configurazione che andremo a realizzare potrebbe essere utile per riattivare il nostro NAS (Network Attached Storage) mentre non siamo in sede, cosi da potervi accedere ed ottenere i dati di cui abbiamo necessità. Tale feature potrebbe quindi risultare utile anche agli utenti domestici e non solo ai sysadmin.
Mettiamo insieme l'hardware
Per implementare un Wake-on-LAN Server abbiamo bisogno di Raspberry Pi e di una microSD da almeno 64GB dove ospitare il sistema operativo ed i tool che andremo a sfruttare per il nostro progetto. È consigliabile collegare la board ARM ad una connessione quanto più stabile possibile, vi suggeriamo quindi di posizionare il tutto nelle vicinanze del router connettendo Raspberry Pi direttamente tramite un cavo ethernet cat 6 o superiore. Per quanto riguarda poi la prima configurazione sono necessari anche mouse, tastiera ed un monitor.
Installazione di Raspberry Pi OS
Iniziamo questa guida installando il sistema operativo sul nostro Raspberry Pi. In questo tutorial opteremo per Raspberry Pi OS, la distribuzione ufficiale del device sviluppata dai coder della Raspberry Pi Foundation e basata su Debian. Se avete già configurato Raspberry Pi OS potete passare direttamente al prossimo step della guida.
In caso contrario possiamo procedere al download del file ISO di Raspberry Pi OS e di un imaging tool a scelta. Noi vi suggeriamo di utilizzare Raspberry Pi Imager, un programma creato dai medesimi coder della distribuzione.
Avviamo dunque Raspberry Pi Imager, selezioniamo il pulsante "Choose OS" e clicchiamo poi sul file ISO della distribuzione. Adesso pigiamo su "Choose Storage" ed indichiamo al tool la microSD da sfruttare per tale operazione. Siamo quindi pronti per cliccare su "Write" e avviare il processo di realizzazione del media d'installazione.
In questo tutorial salteremo completamente il processo del primo setup di Raspberry Pi OS. Si tratta infatti di un'operazione davvero semplicissima. Basta seguire tutti i passaggi indicati dalla distribuzione ed si otterrà l'accesso al Desktop del sistema animato da una versione personalizzata dell'ambiente grafico open source LXDE.
Installazione e configurazione del tool Etherwake
Per realizzare il Wake-on-LAN Server con il nostro Raspberry Pi sfrutteremo il tool open source chiamato Etherwake. Si tratta di uno shell script wrapper realizzato basandosi sulla nota networking utility netcat. Etherwake è quindi un piccolo programma che implementa netcat per inviare il magic packet al dispositivo che intendiamo accendere tramite Wake-on-LAN.
Apriamo quindi la shell di Raspberry Pi OS, possiamo invocarla tramite la shortcut CTRL+ALT+T o con il menu di sistema, l'applicazione è infatti reperibile all'interno della sezione chiamata "Accessories". Ora assicuriamoci che la distribuzione sia aggiornata con i pacchetti più recenti disponibili nei repository ufficiali:
sudo apt update
sudo apt upgrade -y
Adesso siamo pronti per reperire Etherwake tramite il package manager APT:
sudo apt install etherwake
Questo tool è disponibile nei repository standard di Debian, quindi anche gli utenti di Raspberry Pi OS hanno la possibilità di installarlo al volo senza dover aggiungere PPA (Personal Package Archive) di terze parti o reperire script o installer appositi dal Web. Il download e l'installazione di Etherwake dovrebbe durare pochi secondi ed una volta completata l'operazione potremo già iniziare ad utilizzarlo per eseguire il Wake-on-LAN da shell conoscendo il Mac Address, ovvero il codice univoco di ogni scheda di rete, del device che vogliamo avviare da remoto.
Per conoscere il Mac Adress del vostro device potete consultare il manuale di riferimento o cercare qualche guida online. Infatti la reperibilità di tale dato dipende dal produttore e dal tipo di device. In genere nei NAS è visualizzabile all'interno delle impostazioni di rete, probabilmente nel medesimo menu dedicato alla funzione del Wake-on-LAN.
Utilizzare Etherwake per eseguire il Wake-on-LAN del server
Ottenuto il Mac Adress del dispositivo che vogliamo avviare da remoto possiamo tornare nella shell di Raspberry Pi OS e digitare questo comando per Etherwake:
sudo etherwake inseriteilMacAdress
Cosi facendo andremo ad inviare il magic packet al server, o al nostro NAS, che quindi andrà ad eseguire il boot in autonomia come se avessimo premuto fisicamente il tasto di accensione. Come è possibile notare, Etherwake è davvero semplice da utilizzare e non richiede conosce tecniche specifiche, quindi è possibile sfruttarlo anche se si è nuovi del mondo Linux o se si ha poca dimestichezza con i tool da CLI.
Una volta che il device avrà terminato la procedura di boot potremo accedere ad esso tramite SSH:
ssh nomeutente@indirizzoipdelserver
È possibile anche sfruttare SAMBA per accedere agilmente ai file presenti al suo interno, dunque direttamente dal file manager, o tramite Plex o ancora con il protocollo FTP se abbiamo già configurato un server FTP sul server/NAS.