Grégori DESAI développeur PHP mySQL Javascript Symfony

Configurer le Wake on Wan sur un routeur Netgear avec OpenWRT

Publié le 06/05/12 par Grégori DESAI - Catégorie : Système


Le Wake on Lan (WoL) est un standard qui permet d'allumer un ordinateur distant avec un paquet réseau (dit "magique"). Le Wake On Wan (WoW) est en fait le même standard utilisé non pas depuis un réseau local mais depuis internet.
Cette fonctionalité est maintenant répandue dans les nouveaux routeurs (dont la Freebox v6) mais pas dans tous les routeurs Netgear.

Ce tutoriel va décrire les étapes nécessaires à la configuration du Wake on Wan sur un routeur Netgear classique qui ne propose pas le WoW nativement.


Une histoire de broadcast et de table ARP


Le principal problème lié au Wake on Wan se situe dans le cache ARP du routeur qui ne stocke pas de façon permanente les couples IP et adresse MAC.
Les ordinateurs allumés vont envoyer régulièrement des requête ARP pour se signaler au routeur. Ce dernier va garder en cache la correspondance adresse IP / adresse MAC pendant un temps déterminé.
Un ordinateur éteint ne va plus se signaler et finira pas être supprimé du cache ARP : le paquet magique n'arrivera pas à destination.

La solution simple est de passer par une adresse IP de broadcast (ex : 192.168.1.255) qui redirigera le trafic du port utilisé par le paquet magique (0, 7 ou 9) sur toutes les adresses MAC du réseau local.

En se rendant dans l'interface web du routeur et dans la section "port triggering", on constate qu'il n'est pas possible de rediriger un port sur une ip de broadcast locale...

port triggering

OpenWRT à la rescousse


Il va falloir aller dans les entrailles du routeur pour modifier à la main la table ARP.
On va donc devoir se connecter au shell de l'OS embarqué : OpenWRT (un Linux custom intégré à beaucoup de routeurs) avec telnet.

Commencer par télécharger telnetEnable.exe pour activer telnet sur le routeur.
Récupérer l'adresse MAC du routeur depuis son interface web (http://192.168.1.1 ou http://192.168.0.1)

telnet enable

En console dos et dans le répertoire de telnetEnable.exe taper :

telnetEnable.exe ‹ip_local_routeur› ‹mac_address› Gearguy Geardog
"Gearguy Geardog" étant le l/p par défaut sur les routeurs Netgear

telnet enable cmd
noter l'omission des points dans la saisie de l'adresse MAC

Puis, toujours en console taper :

telnet ‹ip_local_routeur›

Si tout va bien, la page OpenWRT devrait s'afficher avec un compte root.

openwrt

Créer une nouvelle adresse IP de broadcast


Ajouter dans table ARP une adresse IP locale qui redirigera tout le flux sur une adresse MAC de broadcast (ff:ff:ff:ff:ff:ff). C'est cette adresse IP locale qui sera utilisée dans le port triggering pour broadcaster tous les paquets magiques.

ip neigh change ‹ip_locale_broadcast› lladdr ff:ff:ff:ff:ff:ff nud permanent dev br0
ip neigh add ‹ip_locale_broadcast› lladdr ff:ff:ff:ff:ff:ff nud permanent dev br0

ip neigh
Dans cet exemple, l'ip de broadcast sera 192.168.1.100

Enfin, vérifier que l'adresse est bien présente dans la table ARP. Le flag "0x6" indique que cette entrée est statique.
arp -a

Rediriger le trafic vers la nouvelle IP broadcast


Il ne reste plus qu'à ajouter la redirection dans l'interface web du routeur :
port triggering
Ici, le paquet magique va être envoyé sur le port 9 de l'IP publique

Le WoW est maintenant configuré sur le routeur NetGear.

Problèmes rencontrés


Quelques conseils pour garder ses cheveux :
Pour terminer, un site qui héberge un script pour envoyer des paquets magiques depuis internet : http://wakeonwan.webou.net/

Bon courage !

D'autres billets pourraient vous intéresser :



Voir tous les billets sur ce thème ! - Retour au blog


Les 7 commentaires

Le 24/05 à 09:56 K2Rone a dit ...

Bonjour,

Très bon tuto !! Bravo !
Je suis en pleine configue de WOW depuis 3 jours.... galère totale !! Je m'explique j'ai ouvert un compte Weezo pour me créer un serveur de partage, installation impeccable, activation du waw sur ma carte et sur le PC nikel. Jusque là tout va bien !! Je fait un test en local nikel ! Test via internet.... bon, enfin jusqu'à ce que ma BBox m'éfface ma table ARP... (comme la plus part des box au bout de 10 à 15 minutes...)Donc bloqué !! Là je tombe après moultes recherche sur ce tuto !! Je me dis : sauvé !!! j'ai un Netgear wpn824ext couplé à ma box !! Je me lance donc dans le tuto, impeccable jusque au moment de lancer l'OpenWRT.... port 23 pas accessible... Après quelques recherches je m'aperçois que mon routeur ne gère pas le telnet.... Donc petite question quel modèle de routeur utilisez-vous ?

Le 25/05 à 09:15 Greg a dit ...

Bonjour,
c'est un wnr1000v2, entrée de gamme chez Netgear. Avez-vous bien pensé à exécuter le programme telnetEnable.exe proposé en téléchargement sur cette page ? Sans ce dernier, il n'y aura pas de connexion telnet possible !

bon courage.

Le 16/08 à 14:46 FLC a dit ...

la commandes ip neigh n'existe plus sur les WNR2000v3 ? avez vous une autre solution

Le 12/10 à 17:52 Tomka a dit ...

Bonjour,
Et merci pour ce tuto. Est-ce que quelqu'un l'aurait déjà testé sur le CBVG824G de numéricable? Et si oui, est-ce que ça fonctionne?
Merci!
Tomka

Le 15/10 à 11:15 Tomka a dit ...

Bonjour, je réponds à ma propre question ci-dessus: ai essayé la manip sur mon routeur: impossible de s'y connecter: erreur 10057...
:-(

Le 16/10 à 17:36 Greg a dit ...

Bonjour, avez-vous pris soin de bien executer telnetEnable.exe avant d'essayer de vous connecter à votre routeur avec telnet ? L'adresse MAC a taper dans la commande ne contient pas de point. Mais peut-être que votre routeur n'est simplement pas compatible avec cette manipulation ?

Le 18/10 à 11:36 Tomka a dit ...

Bonjour Greg et merci pour votre réponse. Oui, j'ai bien pris soin de lancer telnetenable avec toutes les variables demandées... Effectivement, il se peut que le routeur ne soit pas compatible telnet... :-(
Merci en tout cas pour votre aide.


Les commentaires sont fermés.
Still in developmentGB 2014