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

4

Eu estou lutando com as configurações de WOL da minha caixa do Ubuntu no momento. A ideia é ter um servidor HTTP / SVN para dormir enquanto não estiver sendo usado 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, eu também defino o wol p flag ('ativar atividade física'). Minha suposição era que eu poderia convencer o dispositivo a acordar não apenas em pacotes mágicos, mas em qualquer acesso à rede. Isso, no entanto, parece estar errado.

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

    
por sunside 31.10.2010 / 17:50

2 respostas

3

Observação: a pergunta é um post cruzado de 4 anos ou mais de aqui . Não tenho certeza porque recebe uma recompensa depois de mais de 4 anos, mas provavelmente ele recebeu um pacote wol; -)

O manual do ethtool diz:

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 ao chip PHY , que lida com a comunicação na camada física do < href="http://en.wikipedia.org/wiki/OSI_model"> modelo OSI . Em termos laymans: qualquer pacote enviado diretamente para este dispositivo de rede deve acordar a máquina.

As seguintes condições devem ser atendidas antes do despertar no PHY:

  • o seu dispositivo de rede suporta este e o seu controlador de rede suporta isto. Não tenho certeza se o ethtool está verificando isso extensivamente antes de configurar o parâmetro. Verifique seu manual / especificação para ver se este recurso específico é suportado.
  • sua placa ethernet ainda está ligada após o desligamento (as luzes de LED devem estar acesas). Se este não for o caso, certifique-se de que o seu sistema operacional não está desligando a placa (na maioria das distribuições de Linux, coloque NETDOWN=no em /etc/default/halt ).
  • As configurações de
  • wol são preservadas depois de dormir / desligar.
  • o wol está ativado nas configurações da sua BIOS.

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

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

    
por 24.02.2015 / 09:36
2

Eu acho que sua suposição está correta. Existem muitos eventos diferentes que você pode configurar para o seu dispositivo ser ativado. A documentação do ethtool não é muito clara no flag p infelizmente.

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

    
por 01.11.2010 / 10:36