I have been trying to use the Wake on LAN feature but I have been struggling very much with it. Limitation with my router.
My config is
The workaround: When I intend to do is send the magic packets to PC2 (always awake). The understanding I got is that the hub will broadcast to both PC1 and PC2. PC1 is sleeping. Is it possible for me to capture that the broadcast is made to both PC1 and PC2? I currently can only see that the packet is sent to PC2.
If the packet is truly a broadcast, it's made to all machines on the network segment, i.e. to every machine plugged into the hub except for the machine sending the broadcast (I don't know of any Ethernet adapters that receive their own transmissions - they might listen to their own transmissions for collision detection, but they don't treat it as an incoming packet, eve in promiscuous mode).
If the hub truly is a hub, rather than a switch that's called a hub, and if the router and the two PCs (all of which I assume are plugged into the hub) are all running at the same speed (all at 10Mb/s or all at 100Mb/s), then, if you have an unused port on the hub, you should be able to run a sniffer on a machine plugged into that port and see all the traffic going through the hub.
You could also try running Wireshark on PC1 and, even though it's awake, try sending it a Wake-on-LAN packet, and see whether it shows up in Wireshark. If it shows up in Wireshark, that would strongly suggest that, if PC1 isn't waking up, the problem isn't that it's not receiving the wakeup packet - perhaps its Ethernet adapter doesn't support Wake-on-LAN, or does but doesn't have its wakeup signal wired to the appropriate support chip (i.e., the adapter supports Wake-on-LAN but the PC as a whole doesn't), or the operating system doesn't support that wakeup signal.
answered 12 Jul '12, 20:28
Guy Harris ♦♦
If the destination MAC address of the packet, arriving at PC2, is the broadcast address (FF:FF:FF:FF:FF:FF), you can assume that this packet will also arrive at PC1, if the link to that machine is active! Please check LEDs on the HUB/Switch. If you want to be sure, you need to capture in front of PC1 by using a network tap. You cannot capture on PC1, as you have to switch it on to do that, which changes things, like enabling the network link, if it was disabled before.
If you send the magic packet to PC2, you can do this in two ways. Either you send it to the MAC address of PC2 or you send it to the broadcast address, with the MAC address of PC2 as payload. However, neither case will awake PC1, even if PC1 receives the broadcast packet, as the WOL packet is not intended for PC1.
See WOL sample capture.
As Guy Harris already said the problem might be proper "addressing" of the WOL packet.
However, as you said it works for 1-2 minutes after you shutdown PC1, I believe that the link of PC1 goes down for whatever reason (maybe power settings in the BIOS) or that the ARP cache of the router is somehow involved.
I found this article, which describes pretty much how to configure your router: http://www.dslreports.com/faq/6790
You just forward incoming UDP packets (port will be defined by the WOL tool) to your network broadcast IP. So, if your network is 192.168.1.0/24 you forward the UDP packet to 192.168.1.255. IF, and only IF the router uses the broadcast MAC address (FF:FF:FF:FF:FF:FF) for that broadcast IP address (some routers do, some don't), then it will work. If it does not work for your router, you can try to add a manual ARP entry, if the router supports that (192.168.1.255 -> FF:FF:FF:FF:FF:FF).
I tested it with this online WOL tool: http://www.dslreports.com/wakeup
If the router forwards the packet, if will go to FF:FF:FF:FF:FF:FF and the payload contains the MAC address of the PC you want to wake (00:01:02:03:04:05).
The setup you described, with the "allways on" IP address, is not guaranteed to work. I guess it depends on the WOL implementation of the adapter if it accepts WOL packets solely by the mac address in the payload, ignoring the fact, that the MAC destination of the WOL packet is the one of the "allways on" IP.
According to the WOL specifications, the magic packet should be a broadcast packet, not a unicast packet for another mac address. However, you seem to have indicated that sending a unicast packet to the mac address of PC2 did indeed wake up PC1, but only if it was sent max 1-2 minutes after shutting PC1 down.
You may want to try different scenarios to see whether they do or do not work.
1) and 2) should work, as these magic packets are according to the WOL specification.
3) and 4) might work, but it might be that the NIC stuts down to a state that it only listens to the broadcast address. Maybe this is what happens 1-2 minutes after shutting down the PC.
5) and 6) should not work IMHO, but of course the firmware of the NIC might just be tolerant enough to let it work.
If you can add a static ARP entry on your router, then you may be able to add a port forwarder to send packet 4) from a remote location. Otherwise your best bet would be to use a WOL tool on PC2 and make PC2 remotely accessible.
answered 13 Jul '12, 02:43
Maybe a Wake on Lan "Proxy" can help as well. If you have one machine that is allways on, you can install desleeper on it in "proxy mode" (windows service). Then just port forward the required proxy ports (HINT: think about the security implications of such a construct!).
FYI, I am the one that wrote the Wake on LAN/WAN guide that pete quoted.
I was able to get WoW working with the hub behind the router and it worked even when the PC was off for several hours or days.
The equipment I used to get this working is a Netgear WPN-824 router, Netgear DS-104 Hub, and a Sprint Airave 3G version. I used the Airwave as my always on device. I setup in the router to forward port 9 to a static LAN address for the Airwave. I used my Android phone and the free app "WoL Wake On LAN WAN" to send the magic packet while on 3G, 4G, and other outside networks to wake up my PC using the PC's MAC and port 9. It worked every single time no matter how long the PC was off. The app sends 5 packets by default. It has an option to check for "Send as Broadcast" but I never use it.
I got this method from a guy on Netgear forums who was helping someone with WoW and the PC being behind the router. I purchased the hub off of ebay on the cheap, $15, and got working rather easy.
The reason to do this, is because most consumer grade routers do not support WoW. Also most consumer grade routers will not let you forward to the router's broadcast address. People have gotten by that by either turning off java and inputing the routers braodcast address in the port forward section then turning it back on or they have modified the range value to include the routers broadcast address as a legit entry. Either way, these two methods open you up to smurf attacks or so I have read.
If you can install custom firmware, you can get around these limitations but some routers have very low memory available to install custom firmware, i.e. like mine. I can't even assign a static ARP entry, which would help and probably be much easier.
So the only options left are to either get a router that supports WoW, have 2 NICs and have 1 NIC in front of router with a Hub , or use a hub behind the router.
Lastly, I have no network certification nor any formal networking background. I am just some average joe who read and researched this stuff and got it to work after trying several different methods and weeks worth of troubleshooting. With that said, if you want me to help you, I will try my best to with the knowledge I have gleaned but don't expect miracles. You can find me over at filesharingtalk if you do want help.
answered 14 Aug '12, 20:49