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 eth0

    vous 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: yes

    La 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 <adresse_ip>” apres avoir fait communiquer les deux machines entres elles, par exemple avec un ping :
    ping -c 1 192.168.0.1

    puis

    /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:2e

    où 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

sysadmin/wakeonlan.txt · Dernière modification: 2020/05/16 21:36 par james
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0