starcat Posted June 16, 2010 Share Posted June 16, 2010 If you are interested in how you can make your unRAID server (or any other computer) wake up automatically as soon as another device connects to it, both from sleep or powered-off state, and also regardless of the protocol or application, then read on. What you need: 1. Intel NIC, that supports wake-on-ARP, i.e. ethtool must return the "a" option. This is not to be confused with Wake-On Magic Package, i.e. the "g" option. See here for a sample output of ethtool http://lime-technology.com/forum/index.php?topic=3657.msg63091#msg63091 The problem is that set that way the server will wake up each time a multicast broadcast ist sent within the network (which happens typically each couple of minutes), so the next thing we need in order to wake the server when a real access is made, is 2. A network switch that supports IGMP snooping. By snooping IGMP registration information within a frame, a list of workstations in the multicast group is created. The switch uses this list to intelligently forward packets to the appropriate workstations, i.e. the switch do not any longer have to multicast broadcast packets to all computers on the network as he knows which IP address is on which MAC address and limits the traffic to only the ports that have requested that traffic. A packet is actually sent through a port only when the server is accessed regardless of protocol or application (may be SMB, NFS, VNC, etc) and then the NIC wakes the server. More Info: Switches with IGMP snooping support include: Linksys SLM2008, the D-Link DGS-1216T, DGS-1224T, DGS-1248T and others The Apple world of computers including the Apple TVs implement Wake-On-LAN using Magic Packet. Sending the Magic Packet however is integrated and done automatically as soon as one Mac connects to the other. By using IGMP Snooping enabled network the same effect may be achieved between all computers in a network, between dumb streaming clients that do not allow installation of any software and any other servers in the network. Quote Link to comment
dlmh Posted June 23, 2010 Share Posted June 23, 2010 Hi Starcat, I'm currently also looking into sleeping my unRAID server and (remotely) waking it up when requested. My server "only" consumes around 50W when idle, but it still allows for a nice energy saving . The problem I ran into was that my Airport Extreme won't allow an incoming packet (from the internet) to be sent to the broadcasting address on the subnet (xxx.xxx.xxx.255), so the Magic Packet can't be broadcasted. This is necessary because the TCP/IP stack in the router will only remember the path to the computer for a short while when it's gone to sleep, so broadcasting is the only way to wake it up after it's lost it's path. The great thing about Snow Leopard is the addition of Wake-on-demand, a feature that must be supported by the router (currently only the Airport Express and Extreme support his). The way it works that there's a special entry in the mDNS responder that says the computer is WoD-compatible. When the router receives a request for the WoD-enabled computer, be it HTTP, VNC, iTunes, AFP, SMB, or whatever, it checks if the computer responds and if not, it will send a magic packet to wake it up. This seems fairly simple, and it is! The guys from Avahi picked this up and are currently working to implement this. This will add an entry to the mDNS responder of the zeroconf service by Avahi and the Airport will pick this up. If you require external access, you only have to port forward the specific ports for that service. Quote Link to comment
starcat Posted June 25, 2010 Author Share Posted June 25, 2010 dlmh, this is great info, however this is the Apple-only implementation of things. The approach I was describing is a general one and an IGMP snooping capable switch will solve this by waking unRAID by reverse-ARP and not by Magic Packet. Magic Packet is nice but in order to fully automate wakeup (like Apple is doing) there are hardware specific additions needed (like the ones described in the Airport Express/Extreme) and will work only with dedicated OS'es, otherwise you must send the Magic Packet manually.. or use the method described in the OP :-) The WoD will also never work from dumb streaming clients with a special and unmodifiable firmware as they typically can't send a Magic Packet. Quote Link to comment
dcdead Posted December 10, 2010 Share Posted December 10, 2010 Hi! After reading this topic, i bought a linksys 2008 switch and an intel NIC for my server. Waking it up with magic packet works perfectly. Wake on Arp does not, though. It doesn't matter if i enable igmp snooping or not, the server stays off. /proc/acpi/wakeup is set properly and the ethernet device is also correctly set to wake on: a Any help? Quote Link to comment
dgaschk Posted December 13, 2010 Share Posted December 13, 2010 The problem with wake on ARP is that most routers clear the ARP cache frequently and thus a broadcast is required in order to find host. Some routers can be tricked into port forwarding a packet to the broadcast address by using a mask other than 255. Quote Link to comment
starcat Posted December 13, 2010 Author Share Posted December 13, 2010 The SLM2008 shouldn't clear the cache and thus don't need subsequent broadcasts in order to find the hosts. This feature should be enabled as soon as IGMP snooping is enabled on the router. Quote Link to comment
MvL Posted December 15, 2010 Share Posted December 15, 2010 Thanks for the information starcat. Very interesting. So if understand it correctly you can wake up your server when it is off by switching on your media player? You just need a NIC that supports wake on ARP and a switch that supports IGMP snooping. This has nothing to with your router? My server handles the router functions. This also works with two switches? Quote Link to comment
Falcosc Posted July 26, 2021 Share Posted July 26, 2021 (edited) Since this topic is referenced in some related topics, I want to add my point of view in this over 10 years old topic. You don't need a Switch with IGMP snooping support, and you don't need a wake on ARP capable NIC. If you want a cheap solution, just setup a 10$ RaspberryPi with 1 W power consumption and convert the ARPs to Magic packages. This is possible because ARPs are broadcasted to all network clients anyway. You can even filter them to prevent unwanted wake-up calls from misbehaving sources. I do use this tool: https://github.com/nikp123/wake-on-arp I needed to extend it a bit to add monitoring and to exclude unwanted wake-up calls from the router. And I did share my config https://github.com/nikp123/wake-on-arp#how-to-install Edited July 26, 2021 by Falcosc Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.