PfSense – WOL – Wake On Lan
-
Hola.
pfSense – WOL – Wake On Lan
Referencia: https://doc.pfsense.org/index.php/Wake_on_LAN
Hacer un WOL (Wake On Lan) es simplemente enviar a traves de una red local (LAN) un “magic packet” a una dirección mac (de capa 2) de una NIC de un equipo para que se inicie (“se encienda” o power on).
Esta utilidad está restringida al dominio de broadcast (no trasciende dispositivos de capa 3: routers/firewall), es decir, a las redes localmente conectadas al pfSense.
La condición necesaria es que el equipo a encenderse, tenga configurada en su BIOS, la opción WOL habilitada (enable).
Desde la GUI del pfSense, en Services > Wake-on-LAN: Elegimos la interfaz por donde enviar el “magic packet” e indicamos la mac de la tarjeta de red del equipo a encender
Clikamos en enviar (send) y si está todo correcto, el equipo deberá iniciar su encendido (power on).
Lo acabo de testear con un pfSense 2.3.2_1 y un portatil Toshiba, y todo OK.
¿Su utilidad?. Imagina que das soporte a una red remota, y puedes acceder a la administración del pfsense vía VPN, pero el equipo remoto al que quieres dar soporte esta apagado y no hay nadie que pueda encenderlo … pues si lo tienes ese equipo con la opción en BIOS de WOL habilitada (y conoces su mac) … pues coser y cantar
Para los que usen scripting:
La utilidad que envía el magic packet, en pfSense es: /usr/local/bin/wol
/usr/local/bin/wol –help
Usage: /usr/local/bin/wol [OPTION] … MAC-ADDRESS ...
Wake On LAN client - wakes up magic packet compliant machines.--help display this help and exit
-V, --version output version information and exit
-v, --verbose verbose output
-w, --wait=NUM wait NUM millisecs after sending
-h, --host=HOST broadcast to this IP address or hostname
-i, --ipaddr=HOST same as --host
-p, --port=NUM broadcast to this UDP port
-f, --file=FILE read addresses from file FILE ("-" reads from stdin)
--passwd[=PASS] send SecureON password PASS (if no PASS is given, you
will be prompted for the password)Each MAC-ADDRESS is written as x
x
x:x, where x is a hexadecimal number
between 0 and ff which represents one byte of the address, which is in
network byte order (big endian).PASS is written as x-x-x-x-x-x, where x is a hexadecimal number between 0
and ff which represents one byte of the password.Report bugs to krennwallner@aon.at/krennwallner@aon.at
Por ejemplo para envíar un wol a la mac 00:50:56:00:01:02 en la red local (LAN), siendo la IP de la interfaz LAN del pfSense 192.168.0.254/24 y la IP de broadcast 192.168.0.255
/usr/local/bin/wol -i 192.168.0.255 00:50:56:00:01:02
/usr/local/bin/wol -i 192.168.0.255 00:50:56:00:01:02
Waking up 00:50:56:00:01:02…Salu2
-
Gracias por el manual. Muy útil.
Deberían poner PIN a estos manuales.
-
Hola
De nada. :)
Por cierto, comento un caso que se puede dar.
¿Y si no conocemos la mac del equipo a encender, pero sabemos que obtiene su config tcp/ip vía dhcp server del pfSense?
Pues una manera seria enviar un WOL a todas las macs en las entradas de dhcp leases, que se encuentran en:
/var/dhcpd/var/db/dhcpd.leasesVía scripting seria:
#!/bin/sh # wol-dhcpleases.sh # wol all dhcp leases # by javcasta - 2016 - https://javcasta.com BROADCAST=192.168.0.255 DHCPLEASES=$(cat /var/dhcpd/var/db/dhcpd.leases | grep "hardware ethernet" | cut -d ' ' -f 5 | sort -u | sed "s|;||") for LAMAC in $DHCPLEASES; do echo "wake on lan: ${LAMAC}" /usr/local/bin/wol -i ${BROADCAST} ${LAMAC} done
Output
[2.3.2-RELEASE][root@pfSense232a.localdomain]/scripts: sh wol.sh
wake on lan: 50:01:02:03:04:05
Waking up 50:01:02:03:04:05…
wake on lan: 50:01:02:03:04:06
Waking up 50:01:02:03:04:06...
wake on lan: 50:01:02:03:04:07
Waking up 50:01:02:03:04:07...
...Salu2