I'm not sure if this is the right forum for this -- in fact, I'm not even sure if this is a problem with my router -- but I've got a problem that I've been struggling with for a few days and getting nowhere; I'm hoping that someone can point me in the right direction.
I have several systems connected via wifi using a Buffalo WHR-300HP2 router. One of them -- a laptop running Debian -- is running ssh and some web services. Sometimes I can access it just fine from my other systems, but then at other times I just get "destination host unreachable" errors. When that happens, I can't ping it, ssh to it, etc.
This system is able to access the internet the entire time. Also, this problem doesn't necessarily affect all other machines -- for instance, right now from my other laptop I can ping it just fine, but from my android tablet I can't.
I have not been able to determine exactly what triggers the problem (or makes it start working again.)
I know this probably isn't enough info to really figure out what the problem is -- is there anyone who could suggest how I could start debugging this?
An update: it looks like there is a problem somewhere with ARP requests.
I ran tcpdump on machine A (the one I want to connect to) and machine B (the one I'm connecting from). I try to connect to machine A, and on machine B I see the outgoing who-has requests, but get no replies. On machine A I don't see those incoming requests.
I do, however, periodically see incoming ARP requests from some other machines in the network on machine A, so it's not like everything is getting lost. One of the machines that I see requests from is connected via wifi and another is connected via a wired connection to the router, so it doesn't seem to be a wired vs. wireless thing.
If on machine A I run "arping -A -I wlan0 192.168.1.150" to send responses, I see the responses on machine B -- and then I can connect successfully from machine B to machine A. (I suppose that as a workaround I could just run that periodically on the background on machine A, although that's ugly).
If on machine B I run "arping -A -I wlan0 192.168.1.144" to try to see if I see the responses going in the other direction, I don't see them show up on machine A.