Wake on LAN

Wake on LAN

Tutoriel publié en février 2012 par Galdon dans la catégorie Divers

Après avoir galéré et beaucoup cherché sur internet comment faire fonctionner le wake on lan depuis internet, j'ai décidé de synthétiser dans ce billet tout ce que j'ai appris sur le sujet.

Qu'est-ce que le wake on lan ?

Wake On LAN est une fonction qui permet d'allumer un ordinateur (ou de le sortir de l'état de veille) via le réseau (câble Ethernet) et non pas en appuyant sur le bouton d'alimentation.

L'intérêt est, vous l'aurez compris, de pouvoir démarrer un PC à distance, pour pouvoir par exemple travailler sur des projets perso pendant les heures boulot…

Comment ça fonctionne ?

Le fonctionnement du WOL se base sur les paquets magiques. Un "magic packet" est un paquet généralement envoyé via le protocole UDP, sur le port 7 ou le port 9 selon les PC.

Sa taille est de 102 octets, il contient d'abord 6 fois la valeur 255 : FF FF FF FF FF FF, suivie de 16 fois l'adresse MAC du PC à qui est adressé le paquet.

L'adresse MAC (ou adresse physique) est un identifiant dont dispose chaque périphérique réseau (carte réseau, routeur, téléphone WiFi…). Contrairement à une adresse IP qui est une adresse logique, l'adresse MAC est permanente, elle est attribuée au périphérique par son constructeur lors de la fabrication en usine. Pour connaître l'adresse MAC de votre carte réseau, vous pouvez utiliser cette commande (sous windows) :

ipconfig /all 

En général on n'envoie pas directement le paquet magique à l'ordinateur cible via son IP, on envoie le paquet magique à toutes les machines appartenant au réseau via l'adresse de broadcast (ex: 192.168.1.255).
Seul l'ordinateur cible se réveillera puisque le paquet magique contient son adresse MAC.

Seulement, pour pouvoir recevoir le paquet magique, la carte réseau de votre ordinateur doit fonctionner même lorsque l'ordinateur est éteint, c'est pour cela qu'on doit généralement modifier la configuration du BIOS. La procédure est variable selon votre type de BIOS (AMI, Phoenix…) donc je vous laisse vous débrouiller sur ce point, en qui me concerne, le paramètre à modifier était : "Power On By PCIE Devices"

Activation du Wake on LAN sur un BIOS AMI

Tester le wake on LAN

Pour tester le wake on LAN, il vous faut envoyer un paquet magique à votre PC, vous pouvez utiliser WOL Magic Packet Sender pour ça. Bien entendu, je ne vous ferais pas l'affront de préciser qu'il vous faut un autre ordinateur sur votre réseau local pour envoyer le paquet magique… ;)

Et voilà, vous savez maintenant comment faire fonctionner le WOL sur un réseau local (LAN).

Mais comme je l'ai dit au début du billet, l'intérêt c'est de pouvoir utiliser le wake on lan depuis internet, on appelle ça le Wake on WAN, et c'est là que ça devient touchy !

Wake on WAN

L'idée est simple : pouvoir allumer son ordinateur depuis un autre ordinateur via internet. Le problème consiste donc à acheminer le paquet magique depuis internet vers votre ordinateur qui se trouve derrière un modem ou un modem/routeur (Freebox, Livebox, Netgear, Linksys, DLink…).

Alors vous allez me dire "facile, y'a qu'à configurer une redirection du port 9 (UDP) vers l'IP de mon ordinateur sur mon routeur", sauf que non, ça n'est pas aussi simple.

Pourquoi ?
Tout simplement parce que si votre ordinateur est éteint, il n'a pas d'adresse IP, et il est impossible de rediriger un port sur une IP qui n'existe pas sur le réseau local (LAN).

Un routeur conserve la liste des machines qui y sont connectées dans ce qu'on appelle la table ARP. Il s'agit d'une liste contenant l'adresse MAC et l'adresse IP de chaque client, exemple :

3C-21-44-4F-43-54   192.168.1.2
3E-0A-3C-70-3E-32   192.168.1.6
C3-A9-20-64-65-20   192.168.1.3

La table ARP est régulièrement vidée par le routeur, pour la maintenir à jour, on dit que le routeur flush la table ARP. C'est lors de cette opération que sont effacées de la table ARP les entrées de clients qui se sont déconnectés (ce qui est le cas quand on éteint le PC).

Il va donc falloir ruser, et plusieurs solutions sont possibles pour arriver à router ce paquet magique vers sa cible :

  1. Ajouter une entrée statique à la table ARP
    L'idée est de forcer le routeur à garder l'entrée de votre PC dans sa table ARP en définissant une entrée permanente (une entrée statique).
    De cette manière on pourra utiliser une redirection de port, puisque l'IP existera toujours.
    Seulement, bien peu de routeur ou modem/routeur permettent de faire ça, certains le permettent en y accédant via leur interface Telnet via une commande ip arp add, à vous de vous renseigner.

  2. Forwarder les paquets magiques sur l'adresse de broadcast
    Puisqu'on ne peut pas rediriger un port sur une IP inexistante, on peut choisir de rediriger ce paquet sur l'adresse de broadcast (ex: 192.168.1.255).

    Sauf que là encore le matériel ne suit pas, la majorité des modem/routeur ne permettent pas d'utiliser l'adresse de broadcast dans une redirection de port.

    Heureusement, il existe des firmwares open source qui permettent de faire beaucoup plus de choses que les firmwares natifs : DD-WRT, Tomato, OpenWRT
    Encore faut-il que ces firmwares tiers soient compatibles avec votre matériel.
    Et il y a de fortes chances pour que ça ne soit pas le cas, certains routeurs (et routeur uniquement, sans modem intégré) comme le Linksys WRT54g le sont, mais ces firmwares ne fonctionnent pas (à l'heure actuelle) avec les combos modem ADSL/routeur/switch.

  3. Avoir une fonction wake on lan intégrée (built-in)
    L'idée est de vous connecter à l'interface web d'administration de votre routeur depuis internet, et de lui demander d'envoyer un paquet magique via une simple page web.
    Pour l'heure, à ma connaissance, aucun constructeur ne permet ça (que ce soit netgear, linksys, dlink, ne parlont pas de bewan…), et c'est bien dommage.
    Toutefois, apparemment les modèles de la marque DrayTek semblent offrir cette fonction, à en croire cette page : http://www.draytek.co.uk/support/kb_vigor_wol.html.
    Je ne connais pas cette marque, et ses produits sont assez cher ($350.00 pour un "Vigor 2710Vn" !), même si ça a l'air de très bonne qualité.

  4. Garder un PC allumé en permanence pour servir de relai
    Si vous laissez un de vos PC allumé en permanence, vous pouvez vous en servir comme relai (repeater) pour les paquets magiques :
    Vous configurez votre routeur pour rediriger le port 7 ou 9 (UDP) vers le relai, puis le relai se charge de l'envoyer vers l'adresse de broadcast.
    C'est quand même dommage de laisser un ordinateur allumé en permanence juste pour remplir cette fonction, bonjour les économies d'énergie…

Voilà, avec tout ça je pense qu'on a fait le tour. Voici une petite liste de mes sources, si vous voulez en apprendre plus sur le sujet :

Informations : Utilitaires permettant de tester l'envoi et la réception de paquets magique : Envoi de paquet magique en ligne :

Allez donc jeter un oeil sur cette page : lettre liquide.

8 commentaires :
commentaire n°2202 par yg
yg mercredi 18 avril 2012, 00:11
Comme utilitaire il y a http://wake-on-lan.toolsit.fr/ qui propose une interface web mais aussi mobile et même une api rest xml/json pratique pour les développeurs !
commentaire n°2204 par Galdon
Galdon jeudi 19 avril 2012, 00:12
Merci pour l'info, ça peut être utile ce genre d'API.
commentaire n°2354 par Ciam
Ciam dimanche 16 septembre 2012, 09:29
Mais si le pc est éteint, comment le courant arrive jusqu'à la carte réseau ? l'alimentation du pc tourne en fait ? ( le but d'éteindre mon pc est d'économiser de l'électricité aussi ;) )
commentaire n°2360 par Galdon
Galdon jeudi 20 septembre 2012, 15:47
@Ciam : en fait même quand un PC est éteint, la carte mère est quand même alimenté en courant électrique.

En général ça consomme entre 7 et 12 watt selon la qualité de l'alimentation (on peut le mesurer avec un petit appareil de mesure de consommation qu'on trouve chez leroy merlin par exemple).

C'est ce qu'on appelle le "soft off".
Si tu veux plus d'infos sur le sujet :
Energy star
Power supply
commentaire n°2379 par Newphoenix
Newphoenix vendredi 12 octobre 2012, 22:02
Presque Galdon , En fait c'est un paramètre a activer dans le BIOS pour les cartes mères compatibles Wake on Lan (a l'etat ACPI S5).
En activant le paramètre wake up on PCI event et Wake on Lan (voir Wake up on USB event), on active un circuit de faible voltage permettant l'alimentation de certains composants comme la carte réseau voir le controlleur USB (dans le cas d'un reveil par clavier ou souris) celui ci agit ensuite comme un relais quand il reçois le signal Magic paquet ou que la souris ou le clavier sont solicités en déclenchant l'alimentation principale.

Nota il y a un hic c'est que certaines cartes méres n'autorisent le reveil qu'a l'etat S4 c'est a dire veille prolongée. Et d'autre ne gerent pas du tout le Wake On Lan. là il n'y a rien a faire...
commentaire n°2384 par Galdon
Galdon lundi 15 octobre 2012, 23:43
@Newphoenix : ouais, mon sur mon ancien PC le wake on lan ne marche que depuis l'état S4.
C'est un HP w5169, en général sur les "PC de supermarché" ils mettent des carte mères pourries, avec des bios bridés.

Mais sur les cartes mères qu'on achète individuellement (PC acheté chez un assembleur ou monté soi même), souvent y'a pas ces problèmes, le matériel est de bien meilleure qualité.
commentaire n°2493 par DMike92
DMike92 vendredi 22 février 2013, 23:10
En tous cas c'est possible pour les possesseurs de FreeBox (j'ai une V5).
On attribue une adresse IP fixe à une adresse Mac donnée (celle du PC à réveiller) puis on redirige le paquet magique vers cette adresse IP.
commentaire n°2497 par Galdon
Galdon lundi 25 février 2013, 22:30
Merci pour l'info.

Mais je crois savoir qu'il n'y a même pas besoin de ça sur la freebox, puisqu'il y a une fonction wake on lan intégrée, accessible via le panneau d'administration de la freebox, non ?
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré