Déc 222009
 

Dans un réseau routé, les broadcast ne sont pas propagé. Il est donc difficile d’envoyer les magicpackets « Wake on Lan » dans tous les segments si on y possède pas déjà au moins une machine up avec les privilèges nécessaires pour emettre des broadcasts dans ce segment.

On peut bypasser une partie du problème en encapsulant les magic packet en UDP et en l’envoyant à l’IP que le poste est censé avoir.
Cependant, si le poste en question reste inactif, la table ARP du routeur perdra la correspondance IP/MAC et le routeur se contentra de faire des requetes ARP mais sans transmettre le paquet UDP (pas de broadcast) car il n’en connais pas l’adresse unicast de destination. généralement, on recevra un paquet ICMP « host unreachable » après plusieurs timeout ARP.

On peut contourner ce second problème en ajoutant une entree statique dans la table ARP du routeur :

Par exemple, supposons un routeur ayant les interfaces suivantes
eth0 : 192.168.0.254 netmask 255.255.255.0 (MAC 00:11:22:33:44:0A)
eth1 : 192.168.20.254 netmask 255.255.255.0 (MAC 00:11:22:33:44:0B)

un machine cible hors tension ayant normalement pour pour configuration
eth0 : 192.168.20.63 netmask 255.255.255.0 gw 192.168.20.254 (MAC 00:11:22:33:44:0C)

un machine « réveil » active ayant pour pour configuration
eth0 : 192.168.0.10 netmask 255.255.255.0 gw 192.168.0.254 (MAC 00:11:22:33:44:0D)

Si la machine réveil veut envoyer un paquet UDP dans le réseau 20 à la MAC 0D supposée avoir pour IP 192.168.20.63,
Le paquet UDP sera d’abord envoyé au routeur mais celui-ci le jettra car il ne connais pas la MAC de 192.168.20.63.

On pourrait envoyer à l’adresse de broadcast 192.168.20.255 mais la plupart des routeurs ne transfèrent pas ces paquets entre les réseaux pour des raisons de sécurité évidentes… (Il suffirait d’envoyer un paquet à 255.255.255.255 pour que la TOTALITE des quelques milliards de machines qui constituent l’internet le reçoivent!!! vive le flood !!!)
L’astuce consiste donc à ajouter une seconde adresse de broadcast sous la forme d’une entrée statique dans la table ARP du routeur
192.168.20.250 > FF:FF:FF:FF:FF:FF

ainsi, en envoyant le paquet UDP à l’adress IP 192.168.20.250, le routeur l’enverra à la mac FF:FF:FF:FF:FF:FF qui se trouve être l’adresse ethernet de broadcast. Le paquet sera donc reçu par toutes les machines du réseau 20 et la machine possédant la bonne mac s’allumera.

Sorry, the comment form is closed at this time.