Não é possível executar ping nas duas interfaces de rede eth0 e wwan0

0

setup: o linux é configurado com a interface Eth0 e wwan0. Eth0 está conectado a ethernet e wwan0 está conectado via dongle. Ambos da conexão estão tendo conectividade com a Internet.

Problema: Quando eu levanto o meu dispositivo, a rota padrão é eth0 e também posso fazer ping da eth0. Embora wwan0 também esteja ativo, mas não é possível fazer ping através de eth0. Se eu desconectar eth0, o ping funciona bem com o wwan0. Agora, se eu inserir a ethernet novamente, não posso fazer ping com eth0. No meu caso de teste, eu preciso lidar com a inserção frequente de ethernet e dongle.

ifconfig -a

eth0      Link encap:Ethernet  HWaddr 70:B3:D5:9A:EF:FC
      inet addr:192.168.2.166  Bcast:192.168.3.255  Mask:255.255.252.0
      inet6 addr: fe80::72b3:d5ff:fe9a:effc%1996138192/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:129768 errors:0 dropped:0 overruns:0 frame:0
      TX packets:61524 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:12669568 (12.0 MiB)  TX bytes:1411543 (1.3 MiB)

wlan0     Link encap:Ethernet  HWaddr 60:F1:89:39:07:8E
          inet addr:192.168.42.1  Bcast:192.168.42.255  Mask:255.255.255.0
          inet6 addr: fe80::62f1:89ff:fe39:78e%1996138192/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2865 errors:0 dropped:0 overruns:0 frame:0
          TX packets:704 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:530933 (518.4 KiB)  TX bytes:152134 (148.5 KiB)

wwan0     Link encap:Ethernet  HWaddr 00:1E:10:1F:00:00
          inet addr:10.166.235.232  Bcast:10.166.235.239  Mask:255.255.255.240
          inet6 addr: fe80::21e:10ff:fe1f:0%1996138192/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:194 errors:0 dropped:0 overruns:0 frame:0
          TX packets:476 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:30622 (29.9 KiB)  TX bytes:40449 (39.5 KiB)

Rota quando eth0 é padrão

default         192.168.2.1     0.0.0.0         UG    0      0        0 eth0
8.8.8.8         192.168.2.1     255.255.255.255 UGH   0      0        0 eth0
10.166.235.224  *               255.255.255.240 U     0      0        0 wwan0
59.144.127.17   192.168.2.1     255.255.255.255 UGH   0      0        0 eth0
192.168.0.0     *               255.255.252.0   U     0      0        0 eth0
192.168.2.1     *               255.255.255.255 UH    0      0        0 eth0
192.168.42.0    *               255.255.255.0   U     0      0        0 wlan0

Status do ping no momento:

# ping -I eth0 -c 3 -W 10 www.google.com
PING www.google.com (172.217.166.36): 56 data bytes
64 bytes from 172.217.166.36: seq=0 ttl=57 time=17.688 ms
64 bytes from 172.217.166.36: seq=1 ttl=57 time=16.523 ms
64 bytes from 172.217.166.36: seq=2 ttl=57 time=16.279 ms

--- www.google.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 16.279/16.830/17.688 ms
# ping -I wwan0 -c 3 -W 10 www.google.com
PING www.google.com (172.217.166.36): 56 data bytes


--- www.google.com ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss

Rota de rastreamento para wwan0

# traceroute -i wwan0 www.google.com
traceroute to www.google.com (172.217.166.36), 30 hops max, 38 byte packets
 1  local (10.166.235.232)  2996.178 ms !H  2995.670 ms !H  2999.194 ms !H
Here packets are getting dropped at wwan0 interface only.

Iptable -L

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             tcp dpts:0:1023
ACCEPT     udp  --  anywhere             anywhere             udp dpts:0:1023

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             192.168.0.0/16
ACCEPT     all  --  192.168.0.0/16       anywhere
ACCEPT     all  --  anywhere             192.168.0.0/16

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

A tabela IP é a mesma quando wwan0 é a rota padrão.

Em suma, entre duas interfaces, posso sempre fazer ping apenas na interface com o padrão. Por favor me ajude para que eu possa pingar em qualquer interface a qualquer momento.

Eu tentei adicionar rota padrão para wwan0 com

ip route change to default dev wwan0 via 10.166.235.230

mas depois disso eu posso pingar através do wwan0 mas não através do eth0.

EDIT1

Eu posso resolver esse problema adicionando rotas para eth0 e wwan0 toda vez que eu as conecto de volta. Mas agora, preciso adicionar o gateway para rotear cada interface. Na minha tabela de rotas de alguma forma, eu posso ver apenas um gateway (padrão), não o outro. Se eu puder obter o gateway para a interface, posso executar um script que será executado assim que algum plug / un-plug acontecer e possa adicionar rota novamente. Por favor me ajude com relação a isso.

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.2.1     0.0.0.0         UG    0      0        0 eth0
8.8.8.8         192.168.2.1     255.255.255.255 UGH   0      0        0 eth0
**10.177.88.96    *               255.255.255.240 U     0      0        0 wwan0**
59.144.127.17   192.168.2.1     255.255.255.255 UGH   0      0        0 eth0
192.168.0.0     *               255.255.252.0   U     0      0        0 eth0
192.168.2.1     *               255.255.255.255 UH    0      0        0 eth0
    
por Ashish 15.03.2018 / 07:59

0 respostas