Un NAS de récupération, un peu de paresse, du java? Bim! C’est parti pour du Wake up On Lan!

Introduction

J’ai récupéré un NAS Synology il y a quelques jours et je l’ai installé dans un emplacement dédié (le placard de l’entrée donc, comme dans 90% des foyers). Evidemment, par paresse, je me suis demandé s’il était possible de le démarrer autrement qu’avec le bouton On/Off. La réponse est oui (encore heureux!)

WOL, Wake On Lan, Wake up On Lan? Mais c’est quoi?

La fonction “Wake up On Lan” (ou “Wake On Lan” ou WOL pour les intimes), qui se traduit par “réveil à travers le réseau local” (moins sexy hein?) est une fonction de la carte réseau qui permet de provoquer l’allumage d’un appareil à distance.

Comment ça fonctionne?

Une fois la fonction “WOL” activée sur la carte, il faut envoyer un “magic packet” vers la machine à réveiller. Le paquet possède un formalisme strict et doit être envoyé en UDP.

Formalisme du magic packet

Le “magic packet” est un bloc de 102 octets exactement contenant:

  • 6 octets “0xFF”
  • 16 fois les 6 octets de l’adresse MAC

Un programme pour générer et envoyer le magic packet?

Il existe différents programmes prêt l’emploi, comme le montre cette liste mais puisque la fonctionnalité est limitée, autant le développer soi-même.

Ma version Java tient en 3 classes, présentes dans ce fichier zip. Elle est disponible sous licence GPL v3. A noter que le code est commenté en français.

Configuration du NAS Synology DS-415+

L’interface du NAS est plutôt claire mais pour le “Wake On Lan”, il y a un petit flou. Il faut cocher la case “Restart automatically after a power failure”, faute de quoi le WOL ne fonctionnera pas. C’est parfaitement contre-intuitif puisqu’on comprend “power failure” comme “panne de courant”.