diff --git a/blog/2025-05-21-make-one-proxmox-node-to-wol-another/index.md b/blog/2025-05-21-make-one-proxmox-node-to-wol-another/index.md new file mode 100644 index 0000000..0617f43 --- /dev/null +++ b/blog/2025-05-21-make-one-proxmox-node-to-wol-another/index.md @@ -0,0 +1,101 @@ +--- +slug: make-one-proxmox-node-to-wol-another +title: "Make one Proxmox node to wake-on-lan another" +tags: [self-hosting, homelab, Proxmox, WOL] +image: /img/homelab.png +--- +Nothing is eternal, especially the relevance of documentation. I think help.ubuntu.com is an absolute winner, holding the largest number of outdated and irrelevant pages. But that's not a topic for today's post. +One of my Proxmox cluster nodes can't power itself on after the outage. But it supports wake-on-LAN, so I decided that another node could power it on. And the simplicity of this task was overrated by me. + + + +:::warning + +Wake on LAN doesn't work across VLANs. Magic packets could be sent and received only inside a single subnet. + +::: + +## The victim + +First of all, even after enabling "Wake up on PCI event" or something in BIOS it was not working because WoL was still disabled on a software level. It can be checked with: + +```bash +ethtool enp1s0 +``` + +Where `enp1s0` is a physical network interface of a Proxmox node, not a bridge. + +There should be `Wake-on:` setting among others. In my case it was `Wake-on: d`, which means that wake-on-LAN is disabled, according to `ethtool` documentation: + +``` +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. +``` + +We need to set it to wake by the MagicPacket(tm). We need to create a config file for this to be enabled on system start. But first we need to: + +```bash +ip link show enp1s0 +``` + +and write down our network device MAC address. Then create a file: + +```bash +nano /etc/systemd/network/90-wakeonlan.link +``` + +with the next content: + +``` +[Match] +MACAddress= + +[Link] +NamePolicy=kernel database onboard slot path +MACAddressPolicy=persistent +WakeOnLan=magic +``` + +After that we need to reboot and check WOL status again: + +```bash +ethtool enp1s0 +``` + +Now `Wake-on` should be set to `g`. + +## The one who bothering + +On another node we need to install an util that will be sending a magic packet: + +```bash +apt update +apt install etherwake +``` + +Now we can power the victim off and try to wake it with: + +```bash +etherwake -i vmbr0 +``` + +Where `vmbr0` is a bridge network interface of current Proxmox node, and `` is a MAC address of the victim's physical network interface. + +If it works, we can now add a cron job to wake our victim upon current node startup, adding some delay to make sure the network is ready: + +```bash +crontab -e +``` + +Cron job line to add: + +``` +@reboot sleep 30s && /usr/sbin/etherwake -i vmbr0 +``` \ No newline at end of file diff --git a/docusaurus.config.js b/docusaurus.config.js index f046e73..5abc536 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -56,6 +56,9 @@ const config = { showReadingTime: true, feedOptions: { type: ['rss', 'atom'], + title: "Yehor Vialov's Blog", + description: 'Some notes, interesting things and projects', + copyright: 'Copyright © ${new Date().getFullYear()} Yehor Vialov', xslt: true, }, blogSidebarTitle: 'Timeline', @@ -112,6 +115,14 @@ const config = { label: 'Blog', to: '/blog', }, + { + label: 'Blog RSS feed', + to: '/blog/rss.xml', + }, + { + label: 'Blog Atom feed', + to: '/blog/atom.xml', + }, ], }, { diff --git a/static/img/homelab.png b/static/img/homelab.png new file mode 100644 index 0000000..50c38cd Binary files /dev/null and b/static/img/homelab.png differ