Why does pinging a local router return "Destination Host Unreachable"?

I have two tomato routers. One is bridged wirelessly with the other.

I have a new server on the network. It's running Ubuntu Server 11.04.

They are all connected like this:

A - Linux PC
B - New Server
C - Mac Mini
D - Macbook
T1 - Tomato 1
T2 - Tomato 2

They are connected like so:

A -----+-T1  ==== wireless bridge ==== T2----- ADSL modem
       |                               | C & D Connected wirelessly to T2
B -----+

A, C & D do not experience any issues.

I have an active SSH session to B from A and it's not experiencing any loss.

B, the new server occasionally cannot ping T2 and therefore cannot connect to the internet. However, A can always contact B and B can ping A and B When the network is lost, B can still ping T1, but not T2 yet at the same as B has lost connection to T2, A can still ping T2.

Any ideas on what this could be? there is nothing that gives any clues in any of the logs on either router or the linux server.

One thing that is interesting is that I set up a ping running between B and T2. T2 has the IP address 192.68.1.1

Here is what I am seeing:

From 192.168.1.1 icmp_seq=26 Destination Host Unreachable
From 192.168.1.1 icmp_seq=27 Destination Host Unreachable
From 192.168.1.1 icmp_seq=28 Destination Host Unreachable
From 192.168.1.1 icmp_seq=29 Destination Host Unreachable
From 192.168.1.1 icmp_seq=30 Destination Host Unreachable
From 192.168.1.1 icmp_seq=31 Destination Host Unreachable
From 192.168.1.1 icmp_seq=33 Destination Host Unreachable
From 192.168.1.1 icmp_seq=34 Destination Host Unreachable
From 192.168.1.1 icmp_seq=35 Destination Host Unreachable
64 bytes from 192.168.1.1: icmp_req=36 ttl=63 time=3.40 ms
64 bytes from 192.168.1.1: icmp_req=37 ttl=63 time=5.70 ms
64 bytes from 192.168.1.1: icmp_req=38 ttl=63 time=2.25 ms
64 bytes from 192.168.1.1: icmp_req=39 ttl=63 time=2.18 ms
64 bytes from 192.168.1.1: icmp_req=40 ttl=63 time=3.12 ms
64 bytes from 192.168.1.1: icmp_req=41 ttl=63 time=2.15 ms
64 bytes from 192.168.1.1: icmp_req=42 ttl=63 time=1.97 ms
64 bytes from 192.168.1.1: icmp_req=43 ttl=63 time=

And it cycles to being reachable and not.

So I guess you could say the question is, why is the router responding that it cannot be reached?


Solution 1:

“Destination Host Unreachable” on the same network segment indicates that resolving the IP address to a MAC address using ARP has failed.

Because wireless links assume that there is only one device at the client end, bridges (Repeaters too, btw) cannot work over WiFi unless using special means like relayd or WDS. Usually, you can’t even bridge wireless client interfaces to Ethernet interfaces. There is only one exception to this: A special Broadcom wireless driver that performs “MAC Masquerading” of sorts.

WDS, on the other hand, has to be supported on both access point and client: In this configuration, a wireless packet carries 4 MAC addresses instead of just two. In addition to the immediate sender and recipient addresses, there’s also the source and destination address. This way, true Ethernet bridging is possible.

WDS does have one problem though: Usually, it limits encryption to WPA, which is insecure. Atheros devised a proprietary extension to WPS that allows WPA2. As such, there is but one solution for stable Ethernet bridging over WiFi: Using Atheros devices on both ends.

STP doesn’t have anything to do with this.

The OpenWrt wiki also has a very good article on client mode wireless.