ethernet WoL boot
Etherwake est un petit logiciel qui permet, à partir d'un poste Linux, d'allumer une machine par le réseau. Cette méthode s'appelle le WOL (Wake-on-LAN), et vise à démarrer une machine par le réseau. La méthode consiste à envoyer un magic packet vers l'adresse MAC du PC que l'on veut allumer.
C'est très simple à mettre en place, il faut :
ifconfig sous Linux (ex : HWaddr 00:30:18:a7:ee:36) ou ipconfig /all sous Windows.aptitude install etherwakeetherwake <@ MAC> par ex : etherwake 00:30:18:a7:ee:36
Il faut noter l'inconvénient du WOL : son manque de sécurité. En effet, n'importe qui, sur le même réseau que le PC cible, peut lui envoyer un magic packet, et donc l'allumer.
Pour qu'une machine soit allumable à distance, le lien réseau doit être UP = la diode de la carte réseau (ou sur le switch/routeur) doit être allumée. Si ce n'est pas le cas il faut vérifier l'activation du Wake-on-LAN dans le BIOS, et éventuellement désactiver les fonctionnalités d'économie d'énergie telle l'ErP (Energy-related Products).
En dernier recours, vérifier que le système d'exploitation ne coupe pas explicitement l'alimentation de la carte réseau avant l'extinction complète du PC. Sous Linux/Ubuntu cela peut se faire avec l'utilitaire ethtool (identifier au préalable le nom de l'interface réseau avec : ip addr, pour l'exemple nous prendrons eno1).
ethtool eno0 | grep Wake-on Wake-on: d # Il est ''d'' (disabled), il faut le passer à ''g''. sudo ethtool -s eno1 wol g
Avec systemd : c'est une rustine mais c'est plus versatile car cela ne dépend pas du gestionnaire de réseau, qui peux changer en fonction de votre distribution Linux.
Créer le fichier /etc/systemd/system/wol.service :
# /etc/systemd/system/wol.service # Systemd service to enable Wake-on-LAN at boot # Ensures the NIC accepts magic packets for remote wake [Unit] Description=Enable Wake-on-LAN After=network.target [Service] Type=oneshot # Set WoL to magic packet mode on the specified interface # Change 'eno1' to match your network interface name ExecStart=/usr/sbin/ethtool -s eno1 wol g RemainAfterExit=yes [Install] WantedBy=multi-user.target
NB : vérifier le chemin d’installation de l'utilitaire ethtool avec which ethtool, dans mon cas : /usr/sbin/ethtool.
Activer le service:
sudo systemctl daemon-reload sudo systemctl enable wol.service sudo systemctl start wol.service
Dans mon cas je démarre mes machines depuis mon routeur sous OpenWRT ; il faut installer les paquets suivants sur le routeur et lancer etherwake en précisant l'interface où envoyer le magic packet, ainsi que l'adresse MAC du PC à démarrer:
apk update
apk add etherwake luci-app-wol
etherwake -i br-lan aa:bb:cc:dd:ee:ff