domenica 26 aprile 2015

Lubit e i pacchetti magici.




Ho sempre odiato la definizione "mago" associato all' informatica, non c'è proprio niente di magico in una materia scientifica se non la curiosità che ci spinge a studiare e scoprire sempre nuovi argomenti... eppure in questo articolo vedremo come fare una cosa che un pò si avvicina ad una piccola magia ;)

Mettiamo di avere un PC  collegato in rete, e che questo PC sia spento quando invece ci serve che sia in funzione perché magari è un qualche tipo di server personale, come possiamo fare?

Beh la risposta più ovvia è andare fisicamente davanti al PC e accenderlo, ma questo sarebbe troppo semplice e di certo non ci sarebbe motivo di scriverci un articolo.

La piccola magia si chiama WOL (Wake on Lan) e  consiste proprio in questo, cioè avviare da remoto un PC collegato ad una rete e raggiungibile.

Un PC che supporta il WOL non è mai completamente spento ma resta costantemente in ascolto in attesa del segnale di richiesta avvio, questo segnale che ci permette di dire al PC che deve "svegliarsi" si chiama Magic Packet , si ... proprio pacchetto magico.

Come già detto di magico non c'è molto, si tratta di un particolare pacchetto ethernet a livello datalink inviato in  broadcast sulla rete LAN con il MAC address della macchina da avviare,  basta conoscere l' indirizzo MAC della scheda di rete del pc da avviare e inviargli un Magic Packet.

Per realizzare quanto detto passiamo al terminale.

Iniziamo con la configurazione del PC da "svegliare"

Prima di tutto dobbiamo assicurarci che la funzione WOL sia supportata dal pc e che sia attivata a livello BIOS, quindi andiamo nella configurazione iniziale del computer e cerchiamo la voce "Wake on lan" o "Wake on PCI" e abilitiamo .

Ora dobbiamo verificare che anche a livello di sistema operativo sia tutto attivato , quindi avviamo il PC e apriamo una finestra terminale, digitiamo :


sudo apt-get install ethtool

sudo ethtool eth0

in questo esempio ho utilizzato l'interfaccia di rete eth0, andrà bene nella maggior parte dei casi, voi potete modificarla con l'identificativo della NIC che utilizzate.

A questo punto se come output riceviamo qualcosa di simile a

......
Wake-on: g
...

vuol dire che il sistema è già predisposto per usare il WOL , se così non fosse dobbiamo attivarlo manualmente, quindi conviene creare un piccolo script da far eseguire automaticamente ad ogni avvio di Lubit digitando :


sudo leafpad /etc/init.d/wol.sh



e nell' editor :


#!/bin/bah 

sudo ethtool eth0  

exit

salviamo il file e usciamo da Leafpad.

Ora rendiamo lo script eseguibile e diciamo a Lubit di avviarlo :


sudo chmod a+x /etc/init.d/wol.sh

sudo update-rc.d wol.sh defaults



La configurazione è terminata, ora dobbiamo annotarci l'indirizzo MAC dell' interfaccia di rete :


ifconfig
e in corrispondenza dell'identificativo eth0, accanto a IndirizzoHW, troviamo il MAC , lo riconoscete perchè è composto da 6 cifre esadecimali separate da due punti , per es. 00:23:54:93:9f:fd .


Fatto questo passiamo al PC che deve inviare il Magic Packet, per farlo esistono molti programmi su qualsiasi sistema operativo, qui useremo gwakeonlan che trovate già disponibile nei repository di sistema.

Installamolo :


sudo apt-get install gwakeonlan



dopo averlo avviato clicchiamo sull'icona "+" per aggiungere i parametri del nostro PC da svegliare


digitiamo un nome di fantasia, l'indirizzo MAC che abbiamo annotato in precedenza e lasciamo il resto inalterato.

A questo punto avremo in elenco il PC appena inserito


 non ci resta che selezionarlo e cliccare su "Accendi" e ...  il gioco è fatto!



Tutto questo funziona a livello MAC, quindi sulla nostra LAN, e se invece il PC da avviare si trova su una LAN diversa?


Beh come avrete notato in fase di inserimento dei paramentri del pc da svegliare non abbiamo modificato gli ultimi  tre parametri, questi ci servono proprio per inviare il pacchetto su una rete diversa dalla nostra LAN.
Naturalmetne la rete dev'essere raggiungibile, quindi se collegata ad internet possiamo spuntare la voce "Internet" , si attiverà il campo "Sistema di destinazione" e inseriamo l'ip pubblico del PC da svegliare, mentre lasciamo inalterata la porta UDP 9.
Naturalmente  per assicurarci che il pacchetto arrivi  a destinazione dobbiamo configurare il router affinchè inoltri al PC i pacchetti UDP ricevuti sulla porta 9.

La pagina del progetto gWakeOnLAN, qui

Alla prossima!

3 commenti:

  1. Ciao

    grazie della simpatica mini recensione sull'uso di gWakeOnLAN.
    Ti spiacerebbe linkare la pagina del progetto gWakeOnLAN, nella quale si trovano anche le risposte alle domande più frequenti sulla configurazione?
    http://www.muflone.com/gwakeonlan/

    ciao

    P.S. occhio che leafpad non è preinstallato in ubuntu, non tutti potrebbero riuscire a capire di usare un altro editor, magari opta per gedit oppure per nano.

    RispondiElimina
    Risposte
    1. Grazie a te Muflone per il suggerimento.
      Per quanto riguarda Leafpad , l'ho usato perchè è presente di default su Lubit ma poi sta a chi legge usare l'editor che preferisce :) .

      Elimina