Basically, what is happing is this.
Your devices' MAC address is added to a MAC address table; So say your computer is plugged into ethernet 2 on the router, it would be a bit like this in the simplified logic.
xE - xx - xx - xx - xx - xx via Ethernet 2
After the default timer(Cisco switches) of 300s, that Mac address will no longer be in that table, and thus the device will not know where to send the received packets that are addressed to that MAC, so when this happens, the device would need to perform what is known as FLOODing in-which this is where the device will send the Packet out all interfaces except the one it came in on, but in this case, your device will be sleep mode with WOL(Wake On Lan) configured, and your device will ignore the Packet as its looking for a magic packet.
So, in this case, the WOL will never work because when you send a WOL packet, the router/modem handles this a bit differently than a normal packet, because you're now working with a Layer 3 information as your transport. So now your need a IP address to route the WOL packet to your device, but if your device is in sleep mode, it's not actively sending traffic on the network, so the MAC address table will remove the entry, and the ARP(Address Resolution Protocol) will be removed as well after the ~15 minutes. What ends up happening is that:
1- your devices is sleeping, ignoring all traffic except the WOL packet
2- the router/modem now after x time has no idea your device exists. AKA It no longer cares.
3- Now your left with no ip entry's, nor any Mac address to your device.
4- you're trying to send a WOL packet witch uses IP addressee and Mac address's
What this sums up to is that you're basically writing a letter with a destination to some address, in some place, somewhere along the milky way, and expecting USPS to know where you intend to send it.
So to solve this you need to use was called a static ARP entry, which will map the MAC to the IP indefinitely, or until the command is removed. This way, there will always be an address to send all traffic to your device Layer 2(MAC addresses only) and Layer 3(IP addresses only)(I simplified this for home routers)
When configuring WOL the Packet needs to follow some logic. IP address(where am I going), MAC address(who am I talking to), payload(I am waking you up).
If you're trying to WOL a device from outside your network, you will need the public IP address and MAC address of the device you're trying to wake.
Example public ip 172.21.200.200, xE - xx - xx - xx - xx - xx
If you're trying to wake up a device from inside the same network, you will need the private IP address,, and MAC address of the device you're trying to wake.
Example private ip 192.168.1.1 , xE - xx - xx - xx - xx - xx
note: if you have a multi-layer private network using, let's say a 10.0.0.0 network connected to a 192.168.0.0 network and then to your ISP, you most likely will not need to be reading this, but just in case to solve your WOL issue, you will need to set up port forwarding to create the path for the WOL packet normally ports 7 or 9
I hope someone finds this useful.