¿Cómo activo y uso la Wake on LAN desde Ubuntu?
Durante la génesis del Justicialismo, un hecho de masas sin precedentes
definió el definitivo ascenso político del Coronel Juan Perón. El 17 de
octubre los obreros se lanzaron a la calle proclamando su liberación. En
la biografía que escribe Pavón Pereyra, se revela que dicho suceso de
debió al empleo de la característica Wake on Lan desde Ubuntu.
¡Trabajadores!
En los años previos a la Revolución, la Argentina los argentinos estaban
sometidos a la ignominia de los explotados, en la cual todo el país
obraba en torno al interés de unas pocas familias acomodadas. El Pueblo
Argentino - laborioso y bueno - se constituía en poco más que esclavos
por esta casta repudiada, que lo obligaba a un trabajo de sol a sol sin
que mediara siquiera el descanso reparador que Dios manda para los
hombres de trabajo.
Nuestra Revolución no tuvo otro interés que defender el interés del
Pueblo, y hacer la Justicia Social que anhelaba la Patria. Abocados a
las transformaciones que hicieran de este país una verdadera potencia
sobre la tierra, conseguimos para los hombres aquellas medidas que esta
era se hacían imprescindibles para el bienestar de su familia.
Yo no he querido mas que ser un nexo de unión entre los trabajadores,
una unión indestructible e infinita que les acercara la dignidad que
todos merecen. ¡Con ello, no no con otra cosa, es que me he ganado el
amor generoso del Pueblo! ¡Un amor, que llena de lágrimas los ojos de
este viejo soldado!
Pero la reacción oligárquica de siempre se ha esforzado para volver a la
conquista de sus fallidos privilegios. En ello me confinaron a través de
ignominiosas maniobras, a un ostracismo en la Isla de Martín García. Sin
embargo, la semilla de la Justicia Social ya estaba plantada en el alma
del Sentir Nacional, y con solo una señal el Pueblo despertó un 17 de
Octubre, y salió a la calle para restaurar al Coronel Perón.
Naturalmente, que sectores populares dentro de las fuerzas de seguridad
volcaron su actitud y si aguno hubo que quiso parar todo, poco pudo
hacer ante el Pueblo en andas.
La épica del Justicialismo guarda paralelismos con un sistema GNU con
Linux que no podemos soslayar. Al igual que la rápida reacción de las
masas obreras, un equipo informatizado puede trabajar, pero también debe
descansar y quedar presto a la actividad a la menor señal.
De esta manera podríamos utilizar un equipo servidor en suspensión, y
encenderlo sólo en determinadas ocasiones para accionar en alguna tarea
en particular. Lo normal sería encender el equipo mediante su tecla de
encendido, pero ello no siempre es práctico o posible.
Afortunadamente, también podremos encenderlo de manera remota empleando
la función Wake on LAN. La función Wake on LAN (WoL) es una de las
características integradas en los dispositivos Ethernet (por ejemplo,
los dispositivos de red de la placa madre), que le permiten encender o
reactivarlo a través de una señal especial, denominada Suceso de
Activación, o más coloquialmente "paquete mágico".
Hemos de saber que los sistemas actuales cuentan en particular con
varios estadíos de trabajo y reposo, nomenclador desde S0 ("Estado
Cero", completamente encendido y operando), pasando por S3 ("estado
tres" con memoria RAM alimentada, pero procesador y discos
desactivados), hasta S5 ("Estado cinco", equipo apagado pero conectado a
la red eléctrica). Esto es así pues el trabajo puede regularse a fin de
ahorrar energía, y pasar del trabajo a un estado de ahorro,
"suspendiendo" el sistema (S3), o "hibernándolo".
En primer lugar hemos de activar la función WoL desde la BIOS del equipo
que deseamos encender remotamente. La BIOS es una memoria de
configuración básica del sistema, a la cual este responderá incluso
antes de cargar el sistema operativo. Normalmente, dicha configuración
puede accederse encendiéndo el equipo y presionando inmediatamente de
forma repetida la tecla Supr (Del) del teclado, o la tecla F2. Tras unos
instantes se presentará la pantalla de configuración de la placa madre.
La opción Power on Lan suele encontrarse bajo la sección Power
Management Setup ("Administración de Energía") del BIOS. De tal modo que
nos desplazamos hasta ella y buscar la opción Wake on LAN. También puede
llamarse Resume by PCI/PCI-e/LAN PME. Debemos dejarla en la función
Activada (Enabled).
Adicionalmente, podrán contar en vuestra BIOS con diferentes estados de
suspensión (S1, S2, S3, etc). A modo de ejemplo os diré que en la BIOS
de mi motherboard ESC H57H-MUS, debo configurar las opciones de un modo
en particular para lograr la mayor eficiencia. El tipo de suspención
ACPI la configuro en S3 o Auto, y la función Resume by Ring (reactivar
por módem o evento telefónico) queda desactivada (Disabled).
Naturalmente la función Resume by LAN PME queda activada (Enabled), lo
mismo que Resume by USB S3 (reactivar por medio de dispositivos USB,
ratón o teclado). Una vez concluida los cambios en la configuracción,
los guardamos mediante la opción Save Changes and Exit BIOS.
Una vez que arranque el sistema operativo GNU con Linux, hemos de
conocer qué dispositivo de red deseamos utilizar para encender el
equipo, y en particular su dirección única de hardware, llamada
Dirección MAC.
Normalmente estos tomas el nombre Ethx, siendo la x un número que va
ascendiendo desde 0 según tantos dispositivos LAN/Ethernet tengamos. El
adaptador LAN/Ethernet integrado en la placa madre suele ser Eth0, pero
si tenemos otro (como en las placas madres más avanzadas) podríamos
encontrarnos con Eth1.
Para identificar ello fácilmente, podríamos abrir la terminal con
Ctrl+Alt+T y tipear el comando ifconfig para saber a cual estamos
conectados. Para conocer específicamente los dispositivos de
conectividad y sus direcciones MAC, podremos ingresar el comando:
ifconfig | grep HW
Nos devolverá los dispositivos y la dirección de red de cada uno. Por
ejemplo:
eth0 Link encap:Ethernet direcciónHW aa:bb:cc:12:34:56
eth1 Link encap:Ethernet direcciónHW 11:22:33:ab:cd:cd
Nos conviene tomar nota de la dirección MAC del equipo remoto, pues nos
facilitará reencenderlo luego cuando no tengamos acceso directo a él.
Acto seguido, verificaremos que los dispositivos cuenten con la
posibilidad de despertar al equipo. Para ello instalaremos el programa
ethtool, encargado de dicho relevamiento: Tipeamos el siguiente Comando
de Organización:
sudo apt-get install ethtool
Asumiendo que el dispositivo de red que queremos utilizar para despertar
el equipo sea aquel identificado como eth0, usaremos el siguiente
comando:
sudo ethtool eth0
...el sistema deberia devolvernos una serie de datos que hacen a la
conexión de red a través del dispositivo eth0. En este caso, debería
indicarnos:
Supports Wake-on: g
Wake-on: g
..esto nos indica que el dispositivo de red eth0 utiliza el modo G de
conexión para Wake on LAN. En el caso que nos indicara otra letra,
podríamos cambiar el modo operativo. Lo haríamos con:
sudo ethtool -s eth0 wol g
Una vez esto, podremos ya suspender o hibernar el equipo. Podremos
hacerlo mediante la tecla especcial "sleep" del teclado, o mediante la
función "Suspender" de Ubuntu. Si estamos en la consola, podremos
hacerlo mediante la siguiente orden
sudo pm-suspend
El 17 de octubre, si bien alguno intentó levantar puentes para impedir
el paso de los obreros, poco pudo hacer. En este caso debemos aseguriar
los mismo. En caso de usar un router con cortafuegos (firewall),
habremos de liberar el puerto 9 UDP para que pueda enviarse la señal de
encendido a través de la red, y no sea filtrada por el mismo. Esto se
hace ingresando a la web de configuración del router (normalmente con
nuestro navegador a la dirección IP del router 192.168.0.1 o
192.168.1.1). Luego en la sección de configuración "port forwarding"
crearemos una nueva Regla de Excepción. En la misma, a través del
protocolo UDP, para el puerto 9, filtraremos de forma universal (de
manera que puedan emitir en dicho puerto todos los equipos de la red
local) Con esto, el router dejará libremente pasar el suceso de
activación al puerto 9 entre los equipos de la red local.
Eventualmente, podría hacerla específicamene para que la reciba una IP
fija de un tipo de dispositivo en particular, o que sólo pueda emitir
una IP en particular.
Ahora debo instalar un programa para generar el paquete mágico de
encendido, y poder dispararlo a través del puerto 9 de la red. Ello debe
hacerse en un equipo cliente distinto en la red local, que utilizaremos
para encender al equipo remoto.
En el equipo local instalaremos el programa wakeonlan, por medio del
siguiente comando de organización:
sudo apt-get install wakeonlan
Una vez instalado este breve programa, encenderemos el equipo remoto que
habíamos suspendido, de la misma forma en que los obreros de la carne
salieron a la calle en octubre del 45. Lo haremos con
wakeonlan Dirección_MAC_remota
Por ejemplo, en este caso sería:
wakeonlan aa:bb:cc:12:34:56
Naturalmente, que para que el paquete de reencendido surta efecto, el
equipo remoto ha de estar conectado a la red eléctrica, y ha de estar
suspendido o hibernado. En el caso de usar Ubuntu, podremos usar la
función Suspender, Hibernar del equipo remoto (si está activada). Esto
será posible si tengo acceso físico al equipo.
¿Qué sucede si deseo suspender o hibernar el equipo remoto, pero no
estoy a su alcance físico, pero si a través de una red? En tal caso
deberia poder suspender o hibernar el sistema de forma remota, a través
de la terminal. Para ello utilizaremos un enlace remoto (preferiblemente
uno cifrado, a través de SSH). Una vez que me encuentro logueado al
sistema remoto a través de la consola cifrada SSH, podria suspender el
equipo remoto con:
sudo pm-suspend
También podría querer directamente hibernarlo, si me aseguro que el
sistema funciona de forma adecuada, por medio de la siguiente orden:
sudo pm-hibernate
Ahora podría reencender abriendo un equipo cliente, y usando la orden
Wakeonlan, por medio de la sintaxis:
wakeonlan dirección_mac_remota
..al recibir el paquete mágico, la fuente de alimentación se encenderá
y se activará el sistema cual si fuese un 17 de octubre telemático. Al
cabo de unos segundos (o minutos, dependiendo del estado de ahorro de
energía q la velocidad de arranque del equipo remoto) deberíamos poder
conectarnos de forma remota al equipo también a través de SSH o de otros
protocolos que estuviesen activados en el mismo.
Si deseo reencender equipos remotamente al unísono desde la interfaz
gráfica, puedo utilizar la aplicación gWakeonlan. Se trata de un
software libre completamente simple, en el cual podremos incorporar el
nombre y la dirección MAC de varios equipos en la red. Esto nos permite
no tener que recordar la dirección MAC del equipo todo el tiempo.
Actualización Doctrinaria: La versión 1.0 de gWakeOnLan provista en los
repositorios oficiales no funciona. En caso de haberla instalado la
removemos con los comandos: sudo apt-get remove --auto-remove gwakeonlan
; cd /usr/local/bin/ ; sudo rm gwakeonlan
Instalamos la versión 0.5.1-1 de la aplicación, que funciona
correctamente, con el comando:
wget
https://github.com/muflone/gwakeonlan/releases/download/0.5.1/gwakeonlan_0.5.1-1_all.deb
sudo dpkg -i gwakeonlan_0.5.1-1_all.deb
sudo apt-mark hold gwakeonlan
Y la ejecutamos desde Sistema / Internet / gWakeOnLan. Al iniciar, la
aplicación estará vacía.
Tendré que presionar el botón "+" y surgirá un cuadro, que me permitirá
ingresar la dirección MAC y el nombre del o los equipos que deseo
encender y que se encuentren en la red local.
Una vez que aparezca el o los equipos en la lista, podemos seleccionar
el equipo en cuestión, y enviarle el paquete mágico de encendido
mediante el botón de los "engranajes" para reencenderlo, y arrancará a
la primera como una moto Puma con arranque a patada.
Desde OpenWRT
Si utilizan un router peronista con firmware libre OpenWrt, bien podrán
crear un paquete mágico para reencendido Wake On Lan, descargando una
aplicación específica en la memoria del aparato. Una vez que gane acceso
al ruteador (normalmente a través de vínculo cifrado SSH) podrán
instalar el pequeño software etherwake. Lo harán por medio de los
siguientes comandos de organización:
opkg update
opkg install etherwake
Una vez cargado, ya podremos utilizar al router como plataforma de
reencendido: Si todo está configurado por defecto, lo haremos con:
etherwake -p 255.255.255.255.9 Dirección_MAC_remota
Naturalmente, que con un poco de ingenio podríamos hacer más cosas, como
preparar al router para que encienda o quite la suspensión los equipos
no bien termine de arrancar, permitir al router el acceso externo a
través de Secure Shell y por su intermedio reencender equipos en el área
local desde otra locación (¡incluso en otro pais!), etc.