{{tag>sysadmin howto wake_on_lan reseau ethtool wol}} ====== Wake on Lan ====== Qui n'a jamais rêvé de pouvoir allumer une machine laissée éteinte a distance ?. Cela est tout a fait possible grâce au wakeonlan. L'allumage s'effectue grâce a l'envoi d'un "paquet magique" qui est une trame de données ethernet contenant les octets FF FF FF FF FF FF suivis de seize répétitions de l'adresse MAC de la cible, puis d'un mot de passe (si nécessaire) de quatre ou six octets. ====== Installation ====== * Sur la machine devant réveiller l'autre :apt-get install wakeonlan * Sur les machines à réveiller : apt-get install ethtool ====== Configuration ====== ===== Sur la machine de réveil ===== Rien ;-) ===== Sur la machine à réveiller ===== * Vérifier dans le BIOS de votre machine que le wakeonlan est bien activé (souvent désactivé par défaut).\\ Cette option peut s'appeler "power on by pci(e) device". * Vérifier que le wakeonlan est activé sur la carte reseau qui vous intéresse, avec la commande ethtool, par exemple pour eth0 :ethtool eth0vous devriez avoir quelque chose qui ressemble à : Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Link partner advertised link modes: 100baseT/Half 100baseT/Full Link partner advertised pause frame use: No Link partner advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: MII PHYAD: 1 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg Wake-on: d Current message level: 0x00000001 (1) Link detected: yesLa ligne qui nous intéresse est la ligne "Wake-on: d" qui indique que le wakeonlan est désactivé pour cette carte. * Pour l'activer rien de plus simple :ethtool -s eth0 wol g Certaines cartes nécessitent en plus de "g" de spécifier le mode de reveil : * p (PHY activity) * u (unicast activity) * m (multicast activity) * b (broadcast activity) * a (ARP activity) * g (magic packet activity). La valeur g est obligatoire pour que le WoL fonctionne notre exemple devient donc "ethtool -s eth0 wol bg" Vous croyez en avoir fini ? en fait linux a la bonne idée (justifiée par la sécurité tout de meme afin d'interdire le wakeonlan s'il n'est pas voulu) de désactiver par défaut le réveil par le reseau. Il faut donc l'activer automatiquement si vous le souhaitez. Pour cela : * **avec une version antérieure a Debian Squeeze** * ajouter la commande "ethtool -s eth0 wol g" au "up" de l'interface dans le fichier /etc/network/interfaces, dans la section de la carte eth0, pour obtenir par exemple :auto eth0 iface eth0 inet dhcp up ethtool -s eth0 wol g * Enfin il faut dire de ne pas couper la carte réseau lors de l’arrêt de la machine, pour cela ajouter la directive "NETDOWN=no" dans le fichier /etc/default/halt : echo "NETDOWN=no" >> /etc/default/halt * **avec une version Squeeze ou supérieure ** : ajouter la configuration "ethernet-wol g" le fichier /etc/network/interfaces, dans la section de la carte eth0, pour obtenir par exemple : auto eth0 iface eth0 inet dhcp ethernet-wol g ====== Utilisation ====== * Récupérer l'adresse MAC de la machine a réveiller, par exemple en utilisant le cache arp de votre machine locale a l'aide de la commande "arp -a | grep " apres avoir fait communiquer les deux machines entres elles, par exemple avec un ping : ping -c 1 192.168.0.1puis /usr/sbin/arp -a | grep 192.168.0.1 machine.domaine.com (192.168.0.1) at 52:54:00:24:08:2e [ether] on eth1 * Eteindre la machine cible (pour la réveiller, qui l'eût cru ? ;-) ) * Lancer la commande suivante pour le réveil :wakeonlan -i 192.168.0.255 52:54:00:24:08:2eoù 192.168.0.255 et l'adresse de broadcast de votre sous réseau (en général 192.168.x.255) et "52:54:00:24:08:2e" l'adresse MAC récupérée ci dessus * Votre PC devrait s'éveiller. ====== Pour certaines cartes réseau récalcitrantes ====== ===== carte réseau intégrée à une carte mère nvidia (pilote forcedeth) ===== Il faut utiliser l'adresse MAC a l'envers, soit dans notre exemple : wakeonlan -i 192.168.0.255 2e:08:24:00:54:52 ===== carte réseau 3com 3c905 (pilote 3c59x) ===== :!: TODO la c'est plus complexe la commande ethtool ne fonctionne pas, il faut jouer de la commande pci-config :!: le détails des étapes nécessaires ici : [[http://ubuntuforums.org/showthread.php?t=951563&p=6596141#post6596141]] ===== vieilles machines en debian Etch ===== http://blog.isonoe.net/post/2007/08/30/Debian-Etch-et-le-Wake-on-LAN#c84