3

There is office network (with single wifi router). I'm trying to connect (web browser, telnet) android devices to my host (both connected to the same router via wifi).

The router settings:

IP: 192.168.1.1
Mask: 255.255.255.0

On destination host

#ifconfig
eth2   inet addr:192.168.1.108  Bcast:192.168.1.255  Mask:255.255.255.0

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth2
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth2
192.168.1.0     0.0.0.0         255.255.255.0   U     2      0        0 eth2

My host address: 192.168.1.108

Android device address: 192.168.1.105

When I'm trying to ping my host from android (2.x/4.x) (tablet pc/mobile) following messages are printed:

From 192.168.1.105: icmp_seq=xx Destination Host Unreachable

I tried to trace route to the host with "traceroute" tool on two android devices. One device shown its own address but after several attempts it shown destination address and the host name. Then I tried to connect to a web service running on destination host and it had connected.

Then after some time it couldn't connect again and traceroute shown the same "own" address and host name.

I've not managed to force other android device to show destination host name with "traceroute".

The same behaviour was with previous wifi router.

What's wrong? Why do they think that "192.168.1.108" belong to different network?

  • There is something wrong with your ARP, or DHCP setup, very possibly there is either a duplicate MAC address, or your DHCP server is giving out addresses that are somehow already assigned statically.. Or it could just be you haven't enabled ICMP responses on your host machine. – NickW Jan 15 '14 at 11:32
  • The host (my laptop) is available (echo, HTTP) for other host of the same network. I just tried to disable wifi on it and ping its address from one of android devices (to check if there is other device having the same address as my host). No answer. – gumkins Jan 15 '14 at 11:46
  • That's almost certainly an ARP issue then, for some reason the android devices are not associating the IP -> MAC, why is another question.. – NickW Jan 15 '14 at 11:50
  • How that can be detected? – gumkins Jan 15 '14 at 12:12
  • in the android device /proc/net/arp, you can run arp -a on some of the working hosts, and see if the androids have matching entries.. something like 192.168.1.108 aa-cc-22-4f-33 dynamic – NickW Jan 15 '14 at 12:34
6

The problem is that Android does not add the main route table to its filesystem.

In this case, pinging the outside from Android can only work with the -I interface_number option, for example:

 ping -I eth3 192.168.0.108

But pinging Android from the outside does not work.

To fix this issue, the main route table needs to be added:

ip rule add from all lookup main pref 1

You can find the main route table added:

ip rule

0:      from all lookup local

1:      from all lookup main

10000:  from all fwmark 0xc0000/0xd0000 lookup 99

13000:  from all fwmark 0x10063/0x1ffff lookup 97

15000:  from all fwmark 0x0/0x10000 lookup 99

16000:  from all fwmark 0x0/0x10000 lookup 98

17000:  from all fwmark 0x0/0x10000 lookup 97

And the route entry:

ip route list table main

192.168.0.0/24 dev eth3  proto kernel  scope link  src 192.168.0.105
1

There are several routing tables in Linux. My Android Phone uses a "hidden" table with number 2.

Table 0 shows you every entries:

ip route show table 0

You could try to add your host to table 2:

ip route add table 2 192.168.1.108 via 192.168.1.1

Further Information can be found here: http://linux-ip.net/html/routing-tables.html

0

Not sure that this is your problem, but some wifi routers and access points have a feature called "Station Separation" or "Wireless Isolation", that restricts connected devices from talking to each other. When this feature is enabled, the access point will not route packets between different connected devices: only between devices and the uplink port.

The feature is intended for business networks offering guest access, where services like printers, servers, and network shares are all connected via the wired lan, so you don't really need wireless-wireless communication, and it helps keeps guests separated from the sensitive business network.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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