ethernet WoL boot

Etherwake

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 :

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
# /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

ref: How to Configure Wake-on-LAN on Ubuntu