Dispositivos Android não conhecem rota para um host localizado na mesma rede

1

Existe uma rede de escritório (com roteador wifi único). Estou tentando conectar (navegador da web, telnet) dispositivos Android ao meu host (ambos conectados ao mesmo roteador via wifi).

As configurações do roteador:

IP: 192.168.1.1
Mask: 255.255.255.0

No host de destino

#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

Meu endereço de host: 192.168.1.108

Endereço do dispositivo Android: 192.168.1.105

Quando estou tentando executar ping no meu host a partir do android (2.x / 4.x) (tablet pc / mobile), as seguintes mensagens são impressas:

From 192.168.1.105: icmp_seq=xx Destination Host Unreachable

Eu tentei traçar a rota para o host com a ferramenta "traceroute" em dois dispositivos Android. Um dispositivo mostrou seu próprio endereço, mas depois de várias tentativas ele mostrou o endereço de destino e o nome do host. Então tentei me conectar a um serviço da web em execução no host de destino e ele havia se conectado.

Depois de algum tempo, ele não pôde se conectar novamente e o traceroute mostrou o mesmo endereço "próprio" e o nome do host.

Não consegui forçar outro dispositivo Android a mostrar o nome do host de destino com "traceroute".

O mesmo comportamento foi com o roteador wifi anterior.

O que há de errado? Por que eles acham que "192.168.1.108" pertencem a redes diferentes?

    
por gumkins 15.01.2014 / 12:27

3 respostas

1

Existem várias tabelas de roteamento no Linux. Meu telefone Android usa uma tabela "oculta" com o número 2.

A Tabela 0 mostra todas as entradas:

ip route show table 0

Você pode tentar adicionar seu host à tabela 2:

ip route add table 2 192.168.1.108 via 192.168.1.1

Mais informações podem ser encontradas aqui: link

    
por 17.02.2017 / 20:05
1

O problema é que o Android não adiciona a tabela de rotas principal ao seu sistema de arquivos.

Nesse caso, o ping do lado de fora do Android só funciona com a opção -I interface_number , por exemplo:

 ping -I eth3 192.168.0.108

Mas o ping do Android não funciona.

Para corrigir este problema, é necessário adicionar a tabela de rotas principal:

ip rule add from all lookup main pref 1

Você pode encontrar a tabela de rotas principal adicionada:

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

E a entrada da rota:

ip route list table main

192.168.0.0/24 dev eth3  proto kernel  scope link  src 192.168.0.105
    
por 10.07.2018 / 11:54
0

Não tenho certeza se esse é o seu problema, mas alguns roteadores e pontos de acesso Wi-Fi têm um recurso chamado "Separação de estação" ou "Isolamento sem fio", que impede que dispositivos conectados conversem entre si. Quando esta funcionalidade está activada, o ponto de acesso não irá encaminhar pacotes entre diferentes dispositivos conectados: apenas entre dispositivos e a porta de ligação ascendente.

O recurso destina-se a redes comerciais que oferecem acesso de convidado, onde serviços como impressoras, servidores e compartilhamentos de rede estão todos conectados via lan com fio, para que você realmente não precise de comunicação sem fio e ajuda a manter os convidados separados da rede empresarial sensível.

    
por 30.09.2014 / 15:23