ethtool, WOL: O que realmente significa “acordar com atividade física” e (como) posso usá-lo?

ethtool, WOL: O que realmente significa “acordar com atividade física” e (como) posso usá-lo?

Estou lutando com as configurações WOL da minha caixa Ubuntu no momento. A idéia é ter um servidor HTTP/SVN para dormir enquanto não estiver em uso e acordar quando for acessado. Até agora, o wake-on-LAN funciona e é ativado na inicialização:

Settings for eth1:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  Not reported
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: pg
        Wake-on: pg
        Current message level: 0x0000003f (63)
        Link detected: yes

Como você pode ver, também coloquei a wol pbandeira ('acordar com atividade física'). Minha suposição era que eu poderia convencer o dispositivo a ativar não apenas em pacotes mágicos, mas em qualquer acesso à rede. Isto, no entanto, parece estar errado.

O que esta bandeira significa então, e: (Como) posso usar isso indevidamente para meus planos malignos?

Responder1

Nota: a pergunta é uma postagem cruzada de mais de 4 anos deaqui. Não sei por que ele recebeu uma recompensa depois de mais de 4 anos, mas provavelmente recebeu um pacote wol ;-)

Omanual ettooldiz:

wol p|u|m|b|a|g|s|d...
          Set Wake-on-LAN options.  Not all  devices  support  this.   The
          argument  to  this  option  is a string of characters specifying
          which options to enable.
          p  Wake on phy activity
          u  Wake on unicast messages
          m  Wake on multicast messages
          b  Wake on broadcast messages
          a  Wake on ARP
          g  Wake on MagicPacket(tm)
          s  Enable SecureOn(tm) password for MagicPacket(tm)
          d  Disable (wake on nothing).  This option clears  all  previous
             options.

A atividade PHY refere-se aoChip físico, que lida com a comunicação na camada física doModelo OSI. Em termos leigos: qualquer pacote enviado diretamente para este dispositivo de rede deve ativar a máquina.

As seguintes condições devem ser atendidas antes que o wake on PHY funcione:

  • seu dispositivo de rede suporta issoeseu driver de rede suporta isso. Não tenho certeza se o ethtool está verificando isso extensivamente antes de definir o parâmetro. Verifique seu manual/especificações para ver se esse recurso específico é compatível.
  • sua placa Ethernet ainda está ligada após o desligamento (as luzes LED devem estar acesas). Se este não for o caso, certifique-se de que seu sistema operacional não esteja desligando a placa (na maioria das distribuições Linux instaladas NETDOWN=no) /etc/default/halt.
  • as configurações wol são preservadas após suspensão/desligamento.
  • wol está ativado nas configurações do BIOS.

Observe também que o tempo limite padrão do ARP é de 30 segundos (veja tambémesta postagem SU). Depois disso, o endereço IP da sua máquina alvo será esquecido pela máquina de onde você está enviando qualquer pacote físico. Certifique-se de definir um endereço ARP estático na máquina de onde você está enviando o pacote.

Agora qualquer solicitação direcionada (ping, http, ssh, um pacote wol, ...) deve ativar sua máquina.

Responder2

Acho que sua suposição está correta. Existem muitos eventos diferentes dos quais você pode configurar seu dispositivo para despertar. Infelizmente, a documentação do ethtool não é muito clara sobre o sinalizador p.

Algumas perguntas que podem ajudar a analisar o problema: Quando sua máquina é desligada, você pode confirmar se a placa de rede ainda está funcionando (LEDs piscam)? Você está tentando ativar sua máquina na mesma sub-rede ou por meio de um roteador? Como você está tentando acordá-lo? Você pode usar um sniffer de rede (wireshark) na mesma rede para confirmar se os dados são realmente enviados na sub-rede?

informação relacionada