A saída de 'ip route show' parece incompleta: nenhuma rota padrão, mas a internet é acessível de qualquer maneira

1

No meu telefone Android, onde eu tenho um sistema Debian rodando no userspace (apt, ferramentas GNU e outros softwares rodam em um chroot, acessível através de ssh), a tabela de roteamento parece incompleta.

Saída de ip route -all -details show :

unicast 192.168.2.0/24 dev wlan0 proto kernel scope link src 192.168.2.108 
unicast 192.168.43.0/24 dev p2p-p2p0-0 proto kernel scope link src 192.168.43.1 

Saída de ip route get 1.1.1.1 :

1.1.1.1 via 192.168.2.1 via ??? ??? dev wlan0 src 192.168.2.108 
    cache 

De onde obtém 192.168.2.1 ? Esse é realmente o gateway correto, mas a saída da tabela de roteamento não mostra isso. Eu também posso alcançar endereços externos.

Questionando minha sanidade, tentei outra ferramenta e, quando isso me deu a mesma saída, encontrei uma maneira de perguntar diretamente ao kernel:

$ route -v
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0
192.168.43.0    0.0.0.0         255.255.255.0   U     0      0        0 p2p-p2p0-0

$ cat /proc/net/route
Iface   Destination Gateway     Flags   RefCnt  Use Metric  Mask        MTU Window  IRTT
wlan0   0002A8C0    00000000    0001    0   0   0   00FFFFFF    0   0   0
p2p-p2p0-0  002BA8C0    00000000    0001    0   0   0   00FFFFFF    0   0   0

O dispositivo está operando no modo "ponte de WiFi", onde está conectado a uma rede Wi-Fi e oferece um ponto ativo ao mesmo tempo; daí as duas redes locais. O kernel é um:

$ uname -a
Linux localhost 4.1.18-g0fcbc9f #1 SMP PREEMPT Thu Dec 28 10:57:06 CST 2017 armv7l GNU/Linux

De onde vem esta rota padrão mágica?

    
por Luc 13.09.2018 / 03:26

1 resposta

2

O programa padrão ip route não conhece as opções -all ou -details , então você provavelmente tem uma versão específica do Android aqui.

Pode haver entradas de roteamento em tabelas diferentes do padrão.

Assumindo que seu comando ip é compatível com o padrão ip , execute

ip rule

Você deve ver uma lista de tabelas, pelo menos

0:      from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default 

Então você pode examinar cada um deles

ip route show table 32767

E assim por diante com os números da tabela da lista acima.

    
por 13.09.2018 / 07:46