Wake-on-Lan
Updated 10 Août 2019
Wake-On-Lan est une technologie qui permet de démarrer ou de réveiller un ordinateur par un message réseau.
Caractéristiques de l'ordinateur esclave
- Alimentation ATX, carte mère compatible Wake-On-Lan
- Adaptateur réseau compatible Wake-On-Lan
- adresse MAC connue de l'adaptateur réseau
Configuration requise pour l'ordinateur hôte
- logiciel dédié capable d'envoyer des Magic Packet
Comment cela fonctionne
L'ordinateur esclave est en attente et alimente l'adaptateur réseau. L'adaptateur CA est en mode basse consommation, parcourant tous les paquets arrivant à son adresse MAC sans y répondre. Si l'un d'entre eux s'avère être un Magic Packet, l'adaptateur réseau émet un signal qui met l'ordinateur sous tension.
Comment le faire fonctionner
Activez d'abord la prise en charge de WoL dans le BIOS de l'ordinateur esclave. Il peut s'agir d'un point du même nom comme Wake On Lan Enable, ou Power On By PCIE. Il est également possible que ce mode reste inchangé dans le BIOS, alors que la carte mère le prend en charge par défaut.
Pour savoir si une carte réseau WoL est compatible, démarrez l'ordinateur esclave et tapez :
Settings for eth0: Supported ports: [ MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: MII PHYAD: 1 Transceiver: external Auto-negotiation: on Supports Wake-on: g Wake-on: d Link detected: yes
Cherchez les lignes Supports Wake-on et Wake-on. Les premières affichent les modes de réveil disponibles de l'adaptateur réseau (+g signifie réveil via Magic Pocket), et les secondes le mode effectif (d+ pour WoL désactivé).
Pour mettre le NIC en mode WoL, composez :
ethtool -s eth0 wol g
Activez WoL :
ethtool -s eth0 wol d
La carte réseau peut prendre en charge la sauvegarde de son statut, mais elle peut également se réinitialisée (généralement à d+). Par conséquent, vous devez définir le mode nécessaire à chaque fois que vous démarrez le WoL.
Ajoutez l'activation WoL à tous les adaptateurs réseau qui prennent en charge cette technologie :
preup() { if ethtool $1 | grep "Supports Wake-on:" | grep g >/dev/null; then ethtool -s $1 wol g fi }
Pour obtenir le MAC de l'adaptateur réseau sur l'esclave, exécutez la commande suivante :
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.1 netmask 255.255.225.0 broadcast 10.0.0.255
inet6 fde1:92f6:649a:0:724d:7bff:feb7:406e prefixlen 64 scopeid 0x0<global>
inet6 fe80::724d:7bff:feb7:406e prefixlen 64 scopeid 0x20<link>
ether 00:01:02:03:04:05 txqueuelen 1000 (Ethernet)
RX packets 4129968 bytes 1885750720 (1.7 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2068548 bytes 985677562 (940.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xf7000000-f7020000
ou alors, pour afficher le cache ARP sur l'hôte :
Address HWtype HWaddress Flags Mask Iface
10.0.0.1 ether 00:01:02:03:04:05 C eth0
10.0.0.2 ether 06:07:08:09:0a:0b C eth0
10.0.0.3 ether 0c:0d:0e:0f:10:11 C eth0
Pour s'assurer que tous les ordinateurs du réseau sont mis en cache, vous pouvez utiliser l'outil nmap
, qui envoie un ping aux ordinateurs du réseau et dont les adresses MAC sont mises en cache :
nmap -v -Sp 10.0.0.0/24
Pour réveiller un ordinateur, lancez wol
sur l'hôte :
wol MAC
Si vous utilisez une application, pensez que tous les ordinateurs ne sont pas activés immédiatement après avoir été branchés sur le secteur. C'est parce qu'au premier démarrage, il n'y a pas de init lorsque la carte réseau est alimentée. Un pré-démarrage manuel est donc nécessaire. Si vous souhaitez l'éviter (par exemple, si le serveur est verrouillé ou s'il se trouve à une grande distance), pensez à ajuster le paramètre Wake After Power Failure+ (réveil après coupure de courant), le mettant à ON dans le BIOS.