Pourquoi les trames WakeOnLAN sont envoyées en diffusion

9

J'essaie de comprendre pourquoi les trames de réveil sur réseau local, sous la forme la plus simple, sont désignées à l'adresse de diffusion Ethernet (FF: FF: FF: FF: FF: FF) et non à l'adresse de la machine à allumer .

Cela a-t-il à voir avec la table interne du commutateur réseau qui attribue une adresse mac aux ports?

A priori
la source

Réponses:

13

Selon les spécifications d' AMD, la destination ne doit pas nécessairement être l'adresse tout-en-un. Il peut également s'agir de l'adresse de la station réceptrice ou d'une adresse de multidiffusion. La charge utile est une autre histoire. Il doit s'agir de la séquence ff: ff: ff: ff: ff: ff suivie de l'adresse MAC de la station réceptrice répétée 16 fois.

La présence d'absence de l'entrée de la station dans la table CAM du commutateur ne devrait pas avoir d'importance dans ce cas. Si l'entrée n'est pas présente, le paquet doit être retransmis par tous les ports.

Gerald Combs
la source
Y a-t-il une réson pour envoyer l'adresse de diffusion spécifiquement, un cas spécial qui ne fonctionne que pour la diffusion (dans la trame Ethernet)?
ApriOri
@Erb Pas que je sache. L'adresse de diffusion peut être moins utile en pratique. J'ai effectué un test rapide à l'aide des utilitaires etherwakeet wakeonlan. La machine source possède plusieurs interfaces. Etherwake envoie à l'adresse MAC de la station par défaut et vous permet de spécifier l'interface. Wakeonlan envoie à l'adresse MAC de diffusion et j'ai dû spécifier une adresse IP de destination, sinon il a envoyé le paquet par la mauvaise interface.
Gerald Combs
Selon la spécification AMD que vous avez mentionnée, il semble qu'il y ait une relation avec la diffusion dirigée, lorsque vous devez réveiller des machines sur un autre réseau.
ApriOri
1
Revenons un peu en arrière ici. Il y a jusqu'à deux types d'adresses (peut-être plus de deux mais restons simples) dans le paquet: liaison de données et réseau. Si vous essayez de réveiller une machine sur le même sous-réseau, vous pouvez utiliser une adresse de couche de liaison unicast, multicast ou broadcast. Pour une machine sur un sous-réseau différent, vous devez utiliser une adresse que le ou les routeurs transmettront et s'afficheront sur la carte réseau de destination même après avoir été mutilés en cours de route. Cela signifie généralement l'adresse du réseau de diffusion sur le sous-réseau de destination, d'où la "diffusion dirigée sur le sous-réseau".
Gerald Combs
La section "Implications de l'infrastructure" de la spécification l'explique mieux que moi.
Gerald Combs
8

Oui. Étant donné que les mappages expirent après un certain temps (généralement 4 heures si je me souviens bien), il doit être diffusé afin qu'il ait une chance d'atteindre la machine cible après la fin des mappages.

Éditer:

Correction: si les mappages expirent, le message est quand même diffusé.

La seule raison pour laquelle vous auriez besoin d'utiliser la diffusion est le cas où la machine a été physiquement déplacée vers un port différent et que vous avez essayé d'utiliser des paquets Magic pour réveiller la machine avant l'expiration des mappages. Cela aurait l'air pratique dans un centre de données, mais je ne peux pas dire s'il est réellement utilisé.

Bien que l'exemple que j'ai donné ne se produise probablement jamais, c'est probablement la raison pour laquelle la diffusion est généralement choisie - elle est plus fiable en cas de mappages incorrects / obsolètes.

Sašo
la source