viernes, 6 de agosto de 2010

Wake On Lan (WOL) en Linux

              

Wake On Lan (WOL), es una estándar, muy útil y ventajoso, de encender  PC's remotamente cuando estas están apagadas. Siempre y cuando se encuentren conectadas en lan, sea via cable y no por wireless.
Y aunque en teoría es posible WOL via wireless [1], solo algunos chipset soportan esta carácteristica, tal es el caso de las portátiles con chipset Intel 3945 bajo el estándar 802.11, soportan Wake On Wireless Lan (WoWLAN).

Habiendo aclarado esto deberemos hacer lo siguiente:

Configurar BIOS
Primeramente deberemos saber si nuestra placa soporta esta característica, si tu placa tiene menos de 8 años es poco probable que no la soporte.

Nos dirigimos a nuestra BIOS, entraremos al apartado que se encargue de las opciones de energía - muchas veces Power Manager - , y buscaremos alguna opción que contenga Wake On Lan, Wake Up ó,PCI ó PME power on, y lo habilitaremos. 
Cabe mencionar que no todas las BIOS son las mismas, asi que no te frustres si no lo encuentras rápido.

Configurar Tarjeta de red (PC anfitriona)
Para esto necesitaremos 3 herramientas. Ethtool, etherwake y wakeonlan, aunque para la PC que será prendida remotamente solo sera necesario usar Ethtool.
Primero instalamos Ethertool.

En Debian, Ubuntu y derivados:

[root@~]# aptitude install ethertool

En CentOS, Fedora y derivados:

[root@~]# yum install ethtool

Una vez instalado, procedemos a verificar por consola si soporta o esta activada por defecto wake on lan.

En cualquier distribución:

[root@~]# ethtool eth0 

y obtendremos:
Settings for eth1:
Supported ports: [ MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised link modes: 10baseT/Half 1
Supports auto-negotiation: Yes 0baseT/Full 100baseT/Half 100baseT/Full
gotiation: Yes Speed: 100Mb/s
1000baseT/Full Advertised auto-n eDuplex: Full Port: MII PHYAD: 9 Transceiver: external Auto-negotiation: on
Supports Wake-on: pumbg 
Wake-on: d
Link detected: yes
Donde "pumbg", significa que si es soportado WoL, y "d" que esta deshabilitado. Asi que sin más, habilitamos wol.
[root@~]# ethtool -s eth0 wol g

 Supported ports: [ MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 1
        Transceiver: external
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: g

        Link detected: yes

Luego hacemos un mini-script para que cargue por defecto en el arranque, asi quede lista cada vez que se encienda la PC de nuevo.

[root@~]# nano /etc/init.d/vol

dentro colocarémos:

#!/bin/bash
ethtool -s eth0 wol g

guardamos y damos permisos.

[root@~]# chmod 777 /etc/init.d/wol

Configurar PC atacante: 
Ahora toca configurar la PC con la cual iniciaremos el encendido remoto. Para ello debemos instalar los siguientes paquetes:
En Debian, Ubuntu y derivados:

[root@~]# aptitude install etherwake wakeonlan

En CentOS y derivados:

[root@~]# yum install ether-wake wol

Aunque en CentOS en particular el paquete ether-wake viene por defecto.

Primero ejecutamos etherwake:

[root@~]# ether-wake -i eth0 11:22:33:44:55:66

donde: 

eth0 - Interfaz de red primaria 
11:22:33:44:55:66 - MAC de la tarjeta de red

luego:

[root@~]# wol 11:22:33:44:55:66
  
Donde nuevamente la MAC es 11:22:33:44:55:66

Y si todo lo anterior hemos realizado correctamente, deberíamos tener una PC encendida :).

Recomendaciones: Fijarse bien que han habilitado Wol en el BIOS, particularmente he visto que todas las placas actuales soportan Wol, salvo que la opción toma nombre diferente.  
     

No hay comentarios.: