Por que os quadros WakeOnLAN são enviados para transmissão

9

Estou tentando descobrir por que a ativação de quadros lan, da forma mais simples, é designada para o endereço de broadcast Ethernet (FF: FF: FF: FF: FF: FF: FF) e não para o endereço da máquina a ser ligada .

Isso tem a ver com a tabela interna do comutador de rede que atribui um endereço mac às portas?

A priori
fonte

Respostas:

13

De acordo com as especificações da AMD, o destino não precisa ser o endereço completo. Também pode ser o endereço da estação receptora ou um endereço multicast. A carga útil é uma história diferente. Deve ser a sequência ff: ff: ff: ff: ff: ff seguida pelo endereço MAC da estação receptora repetida 16 vezes.

A presença de ausência da entrada da estação na tabela CAM do comutador não deve importar neste caso. Se a entrada não estiver presente, o pacote deve ser encaminhado para todas as portas.

Gerald Combs
fonte
Existe um resson para enviar o endereço de transmissão especificamente, um caso especial em que apenas a transmissão (no quadro Ethernet) funciona?
Apriori
@ Erb Não que eu esteja ciente. O endereço de transmissão pode ser menos útil na prática. Fiz um teste rápido usando os utilitários etherwakee wakeonlan. A máquina de origem possui várias interfaces. O Etherwake envia para o endereço MAC da estação por padrão e permite especificar a interface. Wakeonlan envia para o endereço MAC de broadcast e eu tive que especificar um endereço IP de destino, caso contrário, ele enviava o pacote pela interface errada.
Gerald Combs
De acordo com as especificações da AMD que você mencionou, parece haver uma relação com a transmissão direcionada, quando você precisa ativar as máquinas em outra rede. Parece que somente quando o endereço de transmissão é usado, o pacote WOL passará para a sub-rede foriegn.
Apriori
1
Vamos voltar um pouco aqui. Existem até dois (talvez mais de dois, mas vamos simplificar) tipos de endereços no pacote: link de dados e rede. Se você estiver tentando ativar uma máquina na mesma sub-rede, poderá usar um endereço de camada de link unicast, multicast ou broadcast. Para uma máquina em uma sub-rede diferente, é necessário usar um endereço que o (s) roteador (s) encaminhará (ão) e mostrará na NIC de destino, mesmo depois de ser mutilado no caminho. Isso geralmente significa o endereço de rede de broadcast na sub-rede de destino, portanto, "broadcast direcionado a sub-rede".
Gerald Combs
A seção "Implicações de infraestrutura" da especificação explica melhor do que eu.
Gerald Combs
8

Sim. Como os mapeamentos expiram após algum tempo (geralmente são 4 horas, se bem me lembro), ele precisa ser transmitido para ter chances de alcançar a máquina de destino após o desaparecimento dos mapeamentos.

Editar:

Correção: se os mapeamentos expirarem, a mensagem será transmitida de qualquer maneira.

O único motivo pelo qual você precisaria usar a transmissão é se a máquina se mover fisicamente para uma porta diferente e você tentar usar pacotes Magic para ativar a máquina antes que os mapeamentos expirem. Parece que isso seria útil em um datacenter, mas não sei dizer se ele é realmente usado.

Embora o exemplo que eu tenha dado provavelmente nunca aconteça, é provavelmente o motivo pelo qual a transmissão geralmente é escolhida - é mais confiável em caso de mapeamentos ruins / desatualizados.

Sašo
fonte