Table of Contents

Wake on LAN con Linux

Sulla macchina da svegliare

Su un'altra macchina

ethtool automatico al boot

Con Debian vi sono almeno due modi per eseguire ethtool al bootstrap della macchina. Il sistema più tradizionale è utilizzare l'opzione up di /etc/network/interfaces, che esegue automaticamente un comando quando l'interfaccia viene abilitata:

iface eth0 inet static 
        address 192.168.1..39 
        netmask 255.255.255.0 
        up /sbin/ethtool -s eth0 wol g || true

Con versioni recenti del pacchetto ethtool vi è uno script che gestisce in automatico l'opzione, semplicemnte aggiungendo ethernet-wol nelle opzioni dell'interfaccia:

iface eth0 inet dhcp
        ethernet-wol g

XBMC Remote

XBMC Remote for Android è un applicativo per Android che consente di controllare da remoto un host su cui gira XBMC Media Center.

Integra una funzione di Wake-on-LAN, tuttavia il pacchetto UDP viene inviato all'indirizzo broadcast 255.255.255.255, quindi non è possibile instradarlo ad una sottorete diversa, ad esempio nel caso in cui il terminale Android sia su una rete WiFi 192.168.10.x e XBMC sia invece su 192.168.3.x.

Vedere il bug 387.

Wake-on-LAN proxy

Problema: Il pacchetto Wake-on-LAN viene inviato da un terminale Android che sta su un segmento di rete WiFi 192.168.10.0/24, mentre il destinatario sta su un segmento di rete cablata 192.168.3.0/24. Se il magick packet W-o-L viene inviato come pacchetto di broadcast (192.168.10.255 oppure 255.255.255.255), non oltrepassa il segmento di rete WiFi e quindi non raggiunge la destinazione.

Soluzione: Occorre un programma Wake-on-LAN che consenta di specificare un indirizzo di destinazione unicast. Ad esempio Wake On Lan per Android, oppure wakeonlan per GNU/Linux. Quindi bisogna configurare un W-o-L proxy sullo stesso segmento di rete del ricevente, che riceva il pacchetto e lo inoltri all'indirizzo broadcast.

Supponiamo di avere una GNU/Linux box all'indirizzo 192.168.3.1, per trasformarla in W-o-L proxy è sufficiente eseguire le istruzioni:

ip neigh change 192.168.3.254 lladdr ff:ff:ff:ff:ff:ff nud permanent dev eth0
ip neigh add    192.168.3.254 lladdr ff:ff:ff:ff:ff:ff nud permanent dev eth0
iptables -t nat -A PREROUTING --protocol udp --dport 9 -j DNAT --to-destination 192.168.3.254

dove:

In questo modo sarà sufficiente indirizzare il magick packet verso il proxy (192.168.3.1) indicando però il MAC address effettivo dell'host da risvegliare.

Vedere la pagina Wake On Lan Center.