Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have 3 IP blocks and 3 Cisco Switches. Each switch has its own IP block - 10.45.100.0/24, 10.45.101.0/24 and 10.45.102.0/24

I have got a PC on 10.45.100.0/24 block. I can wake up whole computers (with IP Address, Mac Address, Subnet, Port) in this IP block from C#.

But when I try to wake up another machine from a different IP block it does not work.

This is a Network Problem or code problem? How can I solve it?

share|improve this question
add comment

migrated from stackoverflow.com Jun 29 '11 at 4:35

This question came from our site for professional and enthusiast programmers.

3 Answers

This is a fundamental problem: WOL only works inside a subnet, because a WOL magic packet isn't a valid IP packet and therefore is not routable beyound the local LAN.

The wikipedia entry outlines a solution for this problem (subnet directed broadcasts), but I've never seen this in action. Another way around the problem might be to create a WOL proxy agent that forwards WOL packets into other subnets (i.e. as a UDP packet).

share|improve this answer
    
So How Can i create a WOL Proxy ? Need to configure my switchs for this or any application? –  Ibrahim AKGUN Jun 28 '11 at 21:19
    
A WOL proxy is easy in theory: Write a small daemon that (a) sniffs the local network and encapsulates WOL packets it detects into UDP packets that get send to its counterparts in the other two subnets and (b) if it receives such an UDP packet, it converts it into a real WOL magic packet for the local subnet. –  SvW Jun 28 '11 at 21:34
add comment

If you have three different subnets, those subnets cannot talk to each other without a router.

This is 100% deliberate and by design.

Your Default Gateway from the machine you're trying to do the WOL from must explicity know how to get to those other subnets, or else it sends your packet out onto the internet, where it will be immediately dropped by your ISP.

So, you have two choices:

  1. Set up proper routing between the subnets
  2. Reduce your subnet mask to something like 255.255.0.0 (/16) so that all the machines are on the same subnet. I do not reccomend this, as I'm sure there's a reason that your machines are subnetted off from eachother.
share|improve this answer
add comment

It's probably a network problem. You are sending a broadcast message that probably is blocked in your firewall/router, because you rarely allow broadcast traffic to cross nets.

I assume that you can wake up computers on their individual IP? IF you can't do that either, I would say that your firewall blocks wake on lan traffic completely.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.