Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux
On se lasse de tout, sauf de comprendre.
Attribué à Virgile.
1 mars 2013 : Reprise de la page de l'ancien site de Païou et actualisation.
Pour : utilisateur un peu curieux.
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.
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...
Pour que vous puissiez réveiller votre ordinateur, il faut qu'il réponde à certaines conditions.
Il doit avoir :
Remarques :
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.
Voici un tableau qui vous donne quelques exemples de cartes que j'ai pu tester :
Constructeur | Modèle | Chip | WOL |
---|---|---|---|
Nalcon | EtherPrime EP3200r | RTL8029AS | Non |
Accton | CheetahEN1207D-TX | MPX5038 | Non |
Planet | ENW9503A | RTL8139? | Oui (2.1) |
Planet | ENW9504 V.4 | RTL8139C | Non |
Planet | ENW9504 V.6 | RTL8139D | Oui (2.2) |
Winbond | VCI | RTL8139B | Non |
TrendNet | TE10-PCIWN | RTL8139D | Oui (2.2) |
? | Rhine III 10/100 | VT6105 | Oui (2.2) |
Intel | Etherjet | intel 82559 | Oui (2,1 et 2,2) |
Intel | EtherExpress Pro/100+ | intel 82559 | Oui (2,1 et 2,2) |
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).
Vous devez d'abord préparer l'ordinateur à réveiller.
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.
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.
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"
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.
L'outil ethtool permet de vérifier et configurer de nombreux pilotes réseau (8139too, 8139cp, natsemi, tg3 ...)
Normalement, avec Mangeia, le paquetage ethtool est déjà installé.
Dans la plupart des cas, elle s'appelle eth0.
La solution, avec les cartes compatibles ethtool, consiste à définir des options ethtool dans le fichier /etc/sysconfig/network-scripts/ifcfg-ethx
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
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).
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.
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.
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é
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 | Internet | Côté cible |
---|---|---|
Site Internet spécifique | modem ou xBox + cible | |
PC + modem ou xBox | modem ou xBox + routeur + LAN + cible | |
PC + LAN + routeur + modem ou xBox | xBox/routeur + LAN + cible | |
PC + LAN + xBox avec fonction routeur | modem ou xBox + pare-feu/routeur + LAN + cible | |
PC + LAN + pare-feu/routeur + modem ou xBox |
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é.
Pour préparer les paquets, deux solutions sont possibles