LINUX:Allumage à distance

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

But

Une fonctionnalité intéressante des machines est la possibilité de les allumer à distance via le réseau. Mais au préalable, elles doivent être configurées. Nous ne traiterons que le cas où nous effectuons cette manipulation dans un réseau local. Cette fonctionnalité est connue sous le nom de "WAKEONLAN". Cette fonctionnalité est largement décrite sur le WEB. Nous ne passerons en revue que ce qui m'a été nécessaire.


Prérequis

La machine doit avoir au moins une carte réseau. Cette doit posséder cette fonctionnalité. Si la carte réseau est intégrée à la carte mère, la consultation du BIOS vous y aidera. Si cette carte est ajoutée dans un slot, il faut consulter sa documentation et utiliser souvent un utilitaire particulier; il arrive qu'il faille connecter par un câble cette carte à la carte mère.


Vérification de sa présence

Sous Linux, il est possible de vérifier la présence de cette fonction et quels options sont activées.

Sous FEDORA, il faut installer un paquet avec la commande suivante:

dnf install net-tools

Avec celui-ci vient un utilitaire qui le permet. On doit ajouter comme paramètre le nom de l'interface. Si cet interface se nomme "enp0s25", nous utilisons la commande suivante:

ethtool enp0s25 | grep Wake-on

Nous obtenons le résultat de ce style:

Supports Wake-on: pumbg
Wake-on: g

On remarque ici que ce support est large comme on le constate à la première ligne ("pumbg"); on peut consulter dans les "man pages" leurs significations. Celui qui nous intéresse est le "g" qui concerne l'éveil par l'envoi de "WOL Magic Packets" (seconde ligne). Si cette seconde ligne contenait comme valeur "d", cette fonction est désactivée.

On peut également le vérifier en consultant le fichier "/sys/class/net/enp0s25/device/power/wakeup" pour l'interface "enp0s25". Il contient le mot "enabled" sinon il présenterait le mot "disable".


Activation

Si la fonction "magic packet" ou "g" n'est pas activée, on peut le faire par logiciel. Elle sera active pour le démarrage suivant. Il existe divers moyens.


BIOS

Une méthode consiste à l'activer dans le BIOS ou au niveau des cartes réseaux ajoutées.


Commande "ethtool"

Pour l'activer, on peut utiliser la commande utilisée ci-dessus, de nouveau pour l'interface "enp0s25" en exemple:

ethtool -s  enp0s25 wol g

Pour la désactiver:

ethtool -s  enp0s25 wol d

Il faudra la ré-exécuter à chaque redémarrage. On peut utiliser le système des services qui se lancent au démarrage de la machine. Sous Fedora 35, c'est "systemd" qui est actif par défaut et recommandé. Voici un fichier d'exemple de configuration de ce service pour l'interface utilisé ci-dessus. On le nommera par exemple "wakeonlan.service"; il est a placer dans le répertoire "/lib/systemd/system/":


[Unit]
Description=Configure Wake On LAN
[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s enp0s25 wol g
[Install]
WantedBy=basic.target

Il suffit ensuite de recharger "systemd" pour tenir compte de cet ajout et d'activer ce service:

systemctl daemon-reload
systemctl enable wakeonlan.service


Configurer l'interface réseau

On peut aussi ajouter cette fonctionnalité dans le fichier de configuration de l'interface réseau.

Anciennement sous Fedora, ces fichiers de configuration se retrouvaient dans le répertoire "/etc/sysconfig/network-scripts/"; chaque interface avait son fichier préfixé par "ifcfg-" suivi du nom de l'interface. Par exemple pour l'interface "enps0s25" ce fichier se nommait "ifcfg-enp0s25".

Dans ce fichier, on ajoute la ligne:


 ETHTOOL_OPTS="wol g"


Actuellement, c'est le système NetworkManager qui est préféré. Dans le répertoire "/etc/NetworkManager/system-connections", on y trouve par interface réseau un fichier de configuration dont l'extension est ".nmconnection", ce qui donne dans notre cas "enp0s25.nmconnection".

Dans ce fichier, sous la rubrique "[ethernet]", on ajoute la ligne:


[ethernet]
wake-on-lan=64

Après activation, on peut également vérifier que cette option est prise en compte avec la commande:

nmcli connection show enp0s25 | grep "wake-on-lan:"

qui donne:

802-3-ethernet.wake-on-lan:             default

ou

802-3-ethernet.wake-on-lan:             magic


Remarque

Dans les OS actuels, cette activation est faite d'office, ce qui n'était pas le cas anciennement.


Réveil

Maintenant la machine éteinte mais sous tension et connectée au réseau local par l'interface configurée comme ci-dessus, on peut la rallumer à distance à partir d'une autre machine située sur le même réseau. Attention un pont (bridge) peut bloquer le message de réveil envoyé. La machine émettrice envoie un "Magic Packet" sur le réseau. Ce message utilise le protocole UDP via le port 7 ou 9 selon l'utilitaire employé à une machine cible en précisant son adresse MAC. Sous Windows, il existe de nombreux FreeWare. Sous Linux nous utiliserons la commande de ligne "ether-wake".

Exemple de commande:

/sbin/ether-wake -i enp4s0 00:1b:21:3b:b6:ea

  • enp4s0 est le nom de l'interface réseau de la machine émettrice par lequel part le paquet
  • 00:1b:21:3b:b6:ea est l'adresse MAC de la machine que l'on veut réveiller

Si on fait un script, on peut faire une pause de quelques dizaines de secondes (commande "sleep") et refaire cet envoi par sécurité. Une commande "ping" permet de constater que la machine qu'on désire allumer, l'est bien.



->retour au menu de Linux