Re: Wake-On-Internet à travers un routeur : possible ?
Salut,
Patrick 'Zener' Brunet a écrit :
[...]
> Donc si l'adresse MAC de la carte réseau du PC est connue, le but serait de
> faire rentrer un "magic packet" approprié.
>
> Le routeur intègre un firewall, mais il est possible d'ouvrir un port
> particulier associé à une IP fixe utilisée par le PC proxy. Je me dis alors
> que dans ces conditions, même si le PC proxy est arrêté, ce n'est pas
> vraiment le problème du routeur, et donc si un paquet se présente, destiné
> au port en question, il doit le laisser entrer.
>
> Et donc je me demande dans quelle mesure il est envisageable de faire entrer
> ainsi un paquet capable de déclencher un WOL...
En complément de ma réponse, tu peux rechercher les discussions qui ont
déjà eu à ce sujet ici ou dans fr.comp.reseaux.ethernet.
Par internet, qui est un réseau de niveau 3, on ne peut envoyer
directement une trame ethernet, de niveau 2. On doit passer par un
protocole IP. Le plus simple est d'utiliser UDP pour envoyer le magic
packet, parce que UDP, comme TCP, est bien géré par les routeurs même
basiques et le contenu d'un paquet UDP est arbitraire alors que le
contenu d'un paquet TCP de demande de connexion (SYN) est réglementé.
Des utilitaires de WOL permettent d'encapsuler un magic packet dans un
datagramme UDP. Ensuite, il faut créer sur le routeur une redirection du
port UDP choisi vers l'adresse IP de... vers quelle adresse IP en fait ?
C'est AMA le noeud du problème. A ce moment la machine cible est
éteinte, elle n'a donc pas à proprement parler d'adresse IP. Si on crée
une redirection vers l'adresse IP qu'elle est censée avoir, il va se
passer la chose suivante. Le routeur reçoit sur sont interface WAN le
datagramme UDP contenant le magic paquet. Il modifie l'adresse IP
destination du datagramme et se prépare à le ré-émettre via son
interface LAN. Avant cela, il doit déterminer l'adresse MAC ethernet
correspondant à l'adresse IP destination afin de construire la trame
ethernet qui contiendra le datagramme. A cet effet il émet une requête
ARP sur le LAN. Mais comme la machine cible est éteinte, il n'aura
jamais de réponse à sa requête. Par conséquent le routeur ne peut
retransmettre le paquet UDP, et il devrait renvoyer un message d'erreur
ICMP "host unreachable" à l'émetteur du paquet original.
Comment contourner le problème de la résolution ARP ? Deux voies sont
envisageables.
1) Ecrire "en dur" dans la table ARP du routeur une correspondance
statique entre l'adresse IP de la machine et l'adresse MAC de son
interface ethernet, si le routeur le permet. Cela aura pour résultat
d'éviter l'émission d'un requête ARP. C'est l'équivalent de la commande
"arp -s" d'OS comme Windows ou Linux.
2) Créer sur le routeur une redirection UDP vers l'adresse IP de
broadcast du réseau local (soit 192.168.0.255 si le réseau est
192.168.0.0/24), toujours à condition que le routeur le permette. Ainsi
le paquet sera réémis sur le réseau local avec l'adresse ethernet de
broadcast, FF:FF:FF:FF:FF:FF, sans avoir besoin de connaître l'adresse
MAC de la cible. *Toutefois* je n'ai pas la certitude que la fonction
WOL de la carte fonctionne avec une trame ethernet dont l'adresse
destination est l'adresse de broadcast, mais c'est à essayer si le
routeur ne supporte pas la première solution.
|