EEIJ

Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux


Sommaire

On se lasse de tout, sauf de comprendre.
Attribué à Virgile.

Réveiller un ordinateur à distance

Historique

1 mars 2013 : Reprise de la page de l'ancien site de Païou et actualisation.

Difficulté

Pour : utilisateur un peu curieux.

Introduction

Le WakeOnLAN (WOL) est une fonctionnalité simple mais essentielle des réseaux. Elle permet notamment aux administrateurs d'allumer (réveiller) un ordinateur à distance, à des fins de maintenance par exemple, sans avoir à se déplacer.
Son implémentation est également simple. Elle obéit à une série de normes créées par IBM et AMD.

Haut

Un peu de théorie

Le WOL agit au niveau de la couche 2 du modèle OSI. Il est basé sur un "Paquet Magique" (Magic Packet) qui, contrairement à son nom, n'est pas à proprement parler un paquet et n'a rien de magique. C'est une séquence normée et formatée selon des règles fixes.
L'ordinateur client (à réveiller) ne nécessite, en général, pas de logiciel spécifique.
Pour réveiller un ordinateur précis, il faut l'identifier. S'il est éteint, il n'a normalement pas d'adresse IP. On utilise alors son adresse MAC. Il s'agit d'une adresse "hard", programmée dans la carte réseau. C'est ici qu'intervient le "Paquet Magique", il contient une séquence fixe reconnue par la carte réseau; il peut être encapsulé dans n'importe quel paquet IPX, IP...

Haut

Conditions nécessaires pour pouvoir réveiller l'ordinateur

Pour que vous puissiez réveiller votre ordinateur, il faut qu'il réponde à certaines conditions.

Prérequis pour l'ordinateur à réveiller

Il doit avoir :

Remarques :

Haut

Prérequis pour la carte réseau de l'ordinateur à réveiller

Si la carte réseau comprend un connecteur nommé WOL, elle répond à la version PCI 2.1. Il faut alors que la carte mère ait également ce connecteur WOL. (Beaucoup de cartes mères correspondant à la norme PCI 2.2 ont également ce connecteur, pour des raisons de compatibilité).

Si la carte réseau supporte le WOL mais n'a pas de connecteur WOL, c'est qu'elle correspond à la norme PCI 2.2. Il faut alors que la carte mère supporte également PCI version 2.2. C'est probablement le cas des cartes-mères récentes.

Comme déjà indiqué, le fait que le chip de la carte réseau supporte le WOL est une condition nécessaire, mais elle n'est pas forcément suffisante. Comme exemple : de très nombreuses cartes utilisent le chip RTL8139. Celui-ci existe lui-même en différentes versions (A, B, C, C+, D) et peut-être encore d'autres. Certaines cartes basées sur ce chip supportent la fonction WOL, d'autres ne la supportent pas.

Pour les curieux, survolez : exemples de cartes réseau assez anciennes

Voici un tableau qui vous donne quelques exemples de cartes que j'ai pu tester :

ConstructeurModèleChipWOL
NalconEtherPrime EP3200rRTL8029ASNon
AcctonCheetahEN1207D-TXMPX5038Non
PlanetENW9503ARTL8139?Oui (2.1)
PlanetENW9504 V.4RTL8139CNon
PlanetENW9504 V.6RTL8139DOui (2.2)
WinbondVCIRTL8139BNon
TrendNetTE10-PCIWNRTL8139DOui (2.2)
?Rhine III 10/100VT6105Oui (2.2)
IntelEtherjetintel 82559Oui (2,1 et 2,2)
IntelEtherExpress Pro/100+intel 82559Oui (2,1 et 2,2)
Haut

Prérequis pour le réseau local

La liaison de l'ordinateur à réveiller vers le réseau local doit être du type filaire (ethernet). Actuellement, je n'ai pas trouvé de carte wifi qui supporte le WOL.
Par contre, les modules CPL (courant porteur) sont tout à fait compatibles. L'installation testée comprend une Freebox avec Freeplug et un module CPL Bewan Powerline E200+ (mais d'autres modules peuvent être compatibles avec les Freeplug).

Haut

Préparation

Vous devez d'abord préparer l'ordinateur à réveiller.

Installation de la carte réseau

Si la fonction réseau n'est pas intégrée à la carte-mère, il faut, avant d'allumer l'ordinateur, installer la carte, ou du moins, vérifier son installation.

Haut

Réglages du BIOS

Au démarrage de l'ordinateur, il faut accéder aux réglages du BIOS, avant que le système d'exploitation ne démarre.

Vous devez réaliser deux choses :

La façon de procéder est très différente d'un ordinateur à l'autre. Je vous laisse donc le soin de découvrir comment faire avec le vôtre.

Haut

Contrôle

Arrivés à ce stade, vous pouvez faire un premier contrôle, lorsque la machine est connectée à un Hub ou à un Switch (ou à une Freebox).
Vérifiez, sur le switch, que la LED correspondant à la machine reste bien allumée, même lorsque vous avez éteint la machine. Cela veut dire que la carte reste sous tension, qu'elle est connectée au réseau et qu'elle peut donc recevoir les paquets qui y passent.
Sur la carte réseau elle-même, une diode reste éventuellement allumée, mais tous les constructeurs ne le prévoient pas.

Si c'est le cas, la fonction WakeOnLan est prise en compte. Vous pouvez passer au paragraphe "Détermination de l'adresse physique de la carte réseau"

Haut

Configuration du pilote de la carte réseau

Pour que la carte réseau accepte le réveil à distance, il faut que, au moment où vous éteignez la machine, la carte réseau soit configurée en conséquence.
Ce réglage dépend du pilote de cette carte et le réglage reste mémorisé dans la carte lorsque vous allez arrêter l'ordinateur.

Sous Linux, le pilote de la carte réseau se présente généralement sous la forme d'un module du noyau et ce module peut comprendre une option relative à l'activation ou non de la fonction Wake on LAN.
Elle n'est pas toujours activée par défaut.

Dans la suite de la configuration, vous aurez besoin de taper quelques commandes dans une console.

Configuration actuelle du pilote

L'outil ethtool permet de vérifier et configurer de nombreux pilotes réseau (8139too, 8139cp, natsemi, tg3 ...)

Le paquetage ethtool

Normalement, avec Mangeia, le paquetage ethtool est déjà installé.

Quelle interface réseau ?

Dans la plupart des cas, elle s'appelle eth0.

La carte est-elle compatible ethtool ?

Activer automatiquement et de façon permanente wol

La solution, avec les cartes compatibles ethtool, consiste à définir des options ethtool dans le fichier /etc/sysconfig/network-scripts/ifcfg-ethx

Haut

Détermination de l'adresse physique de la carte réseau

Chaque carte réseau possède une adresse matérielle aussi appelée adresse physique. C'est une adresse unique.
Pour avoir l'adresse physique, dans la console, lancez la commande
ifconfig
Dans le résultat de la commande, vous trouverez une information du genre HWaddr 00:04:AC:93:F3:72

Haut

Configuration du routeur

Sur le routeur, il faut rediriger le paquet magique vers l'ordinateur à réveiller.
Mais, comme cet ordinateur est à l'arrêt, il n'a pas d'adresse IP pour l'instant (même dans le cas où une adresse fixe lui est réservée).
Une solution consiste à envoyer le paquet à tous les ordinateurs du réseau local (broadcast).

Configuration d'une xBox qui fait fonction de routeur.

Si le PC cible est raccordé à une Freebox et que celle-ci assure la fonction de routeur, il faut configurer celle-ci pour qu'elle transmette le magic packet.

Si la xBox est un modèle autre que Freebox, il convient de vérifier si une telle fonction est possible et comment.

Haut

Configuration du pare-feu.

Si vous voulez réveiller votre ordinateur via internet et si vous avez un pare-feu entre l'internet et votre réseau, il faudra également autoriser l'accès au port 9/udp (c'est celui qui est habituellement utilisé pour envoyer les paquets magiques).

Par contre, si l'ordinateur à réveiller intègre un pare-feu, il est inutile d'autoriser l'accès à ce port, vu que l'ordinateur est éteint et que le pare-feu n'est donc pas encore actif.

Haut

Démarrer la machine.

Depuis le réseau local, avec des hubs ou des switchs

Depuis un autre poste, en tant que root, lancez la commande :
ether-wake xx:xx:xx:xx:xx:xxavec xx:xx:xx:xx:xx:xx = adresse MAC de la carte de l'ordinateur à allumer (les lettres peuvent être en majuscules ou en minuscule).

Attention ! Si l'interface de l'ordinateur depuis lequel vous lancez la commande n'est pas eth0, la commande est un peu plus complète. C'est par exemple le cas lorsque vous utilisez une Xbox avec liaison USB.
ether-wake -i ethx xx:xx:xx:xx:xx:xx

Attention ! Si votre réseau local utilise un routeur (par exemple une Freebox configurée en routeur), il faut peut-être activer une fonction pour autoriser la transmission des "paquets magiques" en "broadcast"
Dans le cas de la Freebox, il faut configurer :
Proxy WOL (Wake On Lan) activé

Depuis Internet

Jusqu'à présent nous avions considéré la configuration suivante : une machine cible à allumer, le réseau local et une machine "allumeuse".
Avec Internet, nous avons de nombreuses possibilités de configuration, quelques unes figurent dans le tableau ci-dessous.
Toute combinaison "Allumeur" et "Cible" du tableau ci-dessous est possible.

Côté allumeur InternetCôté cible
Site Internet spécifiquemodem ou xBox + cible
PC + modem ou xBoxmodem ou xBox + routeur + LAN + cible
PC + LAN + routeur + modem ou xBoxxBox/routeur + LAN + cible
PC + LAN + xBox avec fonction routeurmodem ou xBox + pare-feu/routeur + LAN + cible
PC + LAN + pare-feu/routeur + modem ou xBox
Haut

Explications.

Internet, qui est un réseau de niveau 3, ne peut pas véhiculer directement le magic packet qui est une trame éthernet, de niveau 2.
On doit passer par un protocole de niveau 4 qui est bien géré par les routeurs, même basiques.
On peut utiliser TCP ou UDP qui sont eux-mêmes transporté par IP qui est de niveau 3.
Le plus simple est d'utiliser UDP, parce que le contenu d'un paquet UDP est arbitraire alors que le contenu d'un paquet TCP de demande de connexion (SYN) est réglementé.

Haut

Préparation des paquets.

Pour préparer les paquets, deux solutions sont possibles

Haut