Nov242013

Wake On Lan

Esta semana en la facultad, un profesor comentó algo de pasada que me llamó mucho la atención.

El poder arrancar un ordenador completamente apagado de forma remota. Esta función, que se denomina “Wake On Lan”, es realmente interesante para solventar situaciones como las expuestas a continuación:

– Estamos fuera de casa y tenemos que hacer una copia de un montón de fotos en nuestro portátil, pero el espacio en disco empieza a escasear.

– Estamos en la facultad/el curro y se nos ha olvidado en el sobremesa unos ficheros muy importantes

-Estás en casa de unos amigos y queréis jugar a un juego pero el servidor lo tienes montado en el ordenador de tu casa.

Situaciones como esta te hacen plantear que has hecho con tu vida y porque no has recurrido antes a esta maravillosa tecnología.

Por eso, hoy voy a explicar como activar el WOL en nuestros equipos

Primero que nada, quiero hacer un inciso sobre el arrancar el ordenador “completamente” apagado.

El estándar ACPI para el reconocimiento de hardware, configuración de placa y,( lo que nos interesa para el asunto que estamos tratando) la administración de energía, define 7 estados en los que puede estar un ordenador.

  • S0( Trabajando ): Es decir, cuando estamos operando con él
  • S1 a S4(Durmiendo): de los cuatros estados destacamos los dos últimos, que son el modo de espera o standby (S3) y la hibernación (S4).
  • S5(Apagado “suave” o “blando”): Este es el estado desde el cual podemos utilizar la tecnología de “Wake On Lan”. Todavía la placa y algunos componentes siguen alimentado por la fuente y es precisamente esto lo que nos permite “despertar” al ordenador y pasar de nuevo al estado S0.

Estando en S5, la tarjeta de red seguirá alimentada y es lo que nos va a permitir despertar de forma remota el ordenador. Ahora vamos a ver como se activa el WOL.

  1. Encendemos el ordenador y accedemos a la BIOS con la clásica técnica de apretar la tecla suprimir, la tecla de retroceso o alguna tecla de función según sea nuestros caso.
  2. Una vez dentro de al BIOS, podemos enfrentarnos a tres situaciones distintas:
    1. Que encontremos una opción directa que podamos habilitar estilo Network Boot,
      Wake Up On Lan, Power on by PCI Cards entre otras.
    2. Puede ser que encuentres como en mi caso una opción que pone Deep S5 function
      Si a ti también te sale esto, deshabilita esta opción porque más o menos es lo mismo que forzar el Ordenador a pasar al estado S6 o apagado mecánico.
    3. Puede ser que no encuentres ninguna opción. En este caso, el 99% de la veces querrá decir que esa opción está activada por defecto y que tu bios no te permite toquetear más de la cuenta jaja. De cualquier manera no os preocupéis porque tenemos herramientas en Linux que nos sacaran de dudas en cuanto a si tenemos activado o no el WOL.
  3. Ahora iniciamos nuestra distribución Linux de rigor y ejecutamos los siguientes comandos
    para instalar las herramientas que necesitamos:
    • Si estamos en Fedora:

yum install wol (nos proporciona el comando wol)

o

yum install awake (nos proporciona el comando etherwake)

    • Para distros estilo Debian:

apt-get install etherwake

Ahora para poder arrancar un ordenador, conociendo la dirección MAC de su tarjeta de red, tendríamos que ejecutar desde un ordenador en la misma red local alguno de los siguientes comandos según sea nuestro caso:

  • Fedora:

wol 00:11:22:33:44:55 

o

etherwake -i dispositivodered 00:11:22:33:44:55

  • Debian:

wakeonlan xx:yy:zz:11:22:33

Como dice su nombre el “Wake On Lan” es una tecnología que solo se puede utilizar en lans o redes locales. Pero entonces, ¿para qué tanto rollete si no puede iniciar le ordenador desde fuera de casa?

Bueno, solo con lo que he dicho hasta ahora es obvio que no podremos hacer nada. Para eso tenemos que tener otro ordenador que nos haga de servidor, como por ejemplo una Raspberry Pi que está tan de moda últimamente.

Si os apetece puedo hacer un mini-tutorial sobre como montar el sistemita en la Raspberry.

Saluditos y hasta otra.

Política de comentarios

Dada la importancia de los comentarios como espacio de participación, te pedimos por favor que leas detenidamente y cumplas con las siguientes normas de participación.

6 respuestas para “Wake On Lan

Liamngls

Pero esto debería de poder hacerse igualmente mediante la IP sin necesidad de tener que estar en una red local, a fín de cuentas la tarjeta de red sigue trabajando y se debería de poder acceder para encender el equipo ya sea de forma directa (sabiendo la IP) o usando algún sistema tipo DynDNS.

Por lo demás el artículo es muy interesante y se agradecería el añadido del raspberry para completarlo 😉


Hugo J. H.

Hola Liamngls,

Gracias por comentar. Aunque el sistema WakeOnLan está diseñado para ser usado dentro de una red local. Combinando, como tu bien dices, un servicio de dns dinámico como dyndns o no-ip con una raspberry, podemos conectarnos a esta por ssh(por ejemplo); con lo cual, estaríamos dentro de nuestra red local y así podríamos despertar a nuestra máquina “durmiente” como he escrito arriba.

En cuanto me sea posible, pondré la continuación de este artículo explicando como montar todo el tinglado.

Saludos 😀


Liamngls

Gracias a ti, esperaremos pacientes esa continuación 🙂


Get Smart

Fusion Wol se encarga de arrancar de forma remota ordenadores compatibles con la tecnología Wake on lan.


Jimmy Olano

Veamos si mi memoria está mal: inicialmente la idea de encender los ordenadores por medio de su tarjeta de red ethernet consistía (hace aaaaaaños) en simplemente enviarle un paquete de datos cualquiera y así activarla.

Como bien sabemos el ETHERNET tiene un protocolo de detección de colisiones que al detectar una (dos tarjetas de red “hablan” al mismo tiempo) cada una de ellas espera un tiempo aleatorio para reenviar su propio paquete y así alguna de las dos se convierte en primera y la otra en segunda y no hay colisión. ESTO SE PROGRAMÓ porque usabamos simples concentradores que interconectaban Y AL RECIBIR EN UN PUERTO SIMPLEMENTE LO REENVIABAN A TODOS Y CADA UNO DE LOS PUERTOS osea a todos los ordenadores de la red. Estos aparatos eran baratos pero ineficientes (la delicia de los hackers porque se pueden “oir” todos los paquetes de la red), luego vinieron los que llamamos “switch” para diferenciarlos de los antiguos: estos aparatitos “sabían” y llevaban control de cada dirección MAC en la red y cual semáforos enviaban cada paquete a su destino correcto, aumentando la velocidad, ahorro de energía y pare usted de contar. EN ESTE AMBIENTE SI QUE SE PODÍA APLICAR EL “WAKE ON LAN” y estabamos emocionados por ello…

Pero la alegría duró poco porque acontece que muchos programas envía paquetes de difusión y pues esto echaba por tierra nuestros anhelos, encendían, sin querer, todas las máquinas.

HE AQUÍ QUE INVENTAN EL “MAGIC PACKET” el cual estoy estudiando en este enlace https://wiki.wireshark.org/WakeOnLAN inventado por AMD y Hewlett Packard y consiste en un formato muy específico y en realidad viene a ser una normalización: el adaptador de red entenderá específicamente que el mensaje es para encender el equipo.

Este mensaje va en una capa de red (si no me equivoco es la capa 3) que no importa si usamos TCP/IP, IPX/SPX (vaya qué viejito soy) o incluso UDP: lo importante es que un datagrama “entre” a la tarjeta de red destino (de hecho los hackers de WireShark DESACONSEJAN buscar en cada paquete si tiene dentro un “Magic Packet” por lo laborioso del asunto). ES POR ELLO que tenemos que enviarle la dirección MAC que, en teoría, es única (podéis jugar con eso con las máquinas VirtualBox para que toméis experiencia) para cada tarjeta de red (cada fabricante tiene su propio código y ellos administran a su vez sus seriales, se parece mucho a la codificación internacional de los códigos de barra EAN).

OS JURO QUE YO NO CONOCÍA etherwake pero al instalarlo en Ubuntu y revisar su documentación pude encender mis otros ordenadores (previamentes activando ya sea por BIOS o por sistema operativo el soporte a “magic packet”) con solamente tipear
“etherwake XX:XX:XX:XX:XX:XX” (cada XX es un número hexadecimal MAC) y funciona muy bien con el “switch” de 8 puertos que tengo en mi habitación y que está conectado al piso de arriba de mi casa donde tengo el enrutador inalambrico, incluso desconecto dicho cable y aún así puedo encender mi ordenador portátil y viceversa (en mi habitación) OSEA no necesita el enrutador para saber a cual máquina enviar el magic packet.

SI HASTA AHORA OS HE ABURRIDO con todo esto, pues mirad que lo he simplificado al máximo, preparad café, tomad aire que seguimos:
¿recordáis los “switch” que os comenté que son “inteligentes” y saben a quien entregarle cada datagrama pro su MAC? Eso explica el párrafo anterior y en una red de área local esto es una maravilla PERO SI NOS VAMOS AL INTERNET ALLÍ NO HAY OPCIÓN: DEBEMOS RECURRIR A LAS DIRECCIONES IP.

Como lo que necesitamos es enviar un paquete que lleva incrustado dentro un “magic packet” pues podemos echar mano del protocolo UDP (envio de paquete SIN señal de recibido, es muy útil para enviar audio y video por su velocidad) con la dirección IP a la que queremos llegar, PERO RECORDEMOS QUE EL PROTOCOLO IPV4 está limitado así que dependemos de nuestros enrutadores de nuestro hogar y oficina para el “trabajito” de expandir las direcciones a cada parato, ¿QUÉ DEBEMOS HACER? (ESTE ES UN CONCEPTO o idea de cómo hacerlo, no lo hemos probado aunque está descrito en http://support.amd.com/TechDocs/20213.pdf ):

Pongamos por caso que estemos en nuestra oficina, de ese lado no tenemos nada que configurar excepto saber la dirección IP de nuestro modem. Para ello bien podemos hacer un programita que se ejecute en cualquier aparato dentro de nuestra casa y que envie una consulta a nuestra página web y por medio de Apache y PHP guarde en una base de datos la dirección IP (esto es muy elaborado y requiere contraseña y un servidor web con id fija y dominio DNS) LA OPCIÓN MÁS VIABLE es que nuestro enrutador tenga soporte a DNS DINÁMICO con Comexe, Dyndns o NO-ip () abrimos una cuenta en esos sitios y ellos nos asignan un sub-dominio con nuestra dirección IP (luego meter datos de cuenta en nuestro enrutador).

PARA “SALIR” de nuestra oficina lo único que tenemos que hacer es tener acceso a internet para enviar el “magic packet” PERO AL LLEGAR A NUESTRO HOGAR debemos configurar la computadora que queremos encender con una dirección ip fija en nuestra red de aŕea local (por medio de la dirección MAC) Y ESTABLECERLA EN LA DMZ (DE MILITARIZED ZONE) https://www.lifewire.com/demilitarized-zone-computer-networking-816407 para que todo lo que venga del internet sea desviado por el enrutador hacia la computadora que deseamos encender.

Nosotros comprobamos que etherwake funciona muy bien en una red de área local PERO si queremos hacerlo por internet desde nuestra oficina a nuestra casa, por ejemplo, necesitaremos un programa “más avanzado” tal como WolCmd https://www.depicus.com/wake-on-lan/wake-on-lan-cmd el cual permite enviar un paquete (con un magic packet incrustado, por supuesto) a una dirección IP epsecificando la “subnet” y el puerto -todo esto útil para que nuestro enrutador en casa “reenvie” el paquete recibido al ordenador que queremos encender.

LAMENTABLEMENTE dicha prueba no la logramos hacer efectiva ¿ALQUIEN TIENE ALGUNA IDEA? somos todo oídos. 😎


Elías R.M.

Simplemente atónito me dejas. He disfrutado muchísimo leyendo tu comentario, que bien podría ser un post. Das muchos detalles históricos de los que no tenia ni idea y me recuerdas muchos otros que había olvidado […].

Lamentablemente no puedo responder tu pregunta, si alguno de nuestros visitantes tiene algo que aportar, le estaremos muy agradecido.

Saludos


Deja un comentario

Tu dirección de correo electrónico no será publicada.