Los paquetes de red fluyen en ambos sentidos pero aún no pueden comunicarse

Los paquetes de red fluyen en ambos sentidos pero aún no pueden comunicarse

Tengo una caja Linux con dos NICS:

eth0 192.168.11.14

eth1 192.168.12.14

Mi tabla de enrutamiento es la siguiente:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.11.1    0.0.0.0         UG    100    0        0 eth0
192.168.11.0    *               255.255.255.0   U     0      0        0 eth0
192.168.12.0    *               255.255.255.0   U     0      0        0 eth1

La ruta predeterminada (a través de eth0) funciona bien, pero los problemas están en la interfaz eth1. He configurado una puerta de enlace predeterminada para eth1 de la siguiente manera:

#ip rule list
0:  from all lookup local 
32765:  from 192.168.12.14 iif eth1 lookup tbl_eth1 
32766:  from all lookup main 
32767:  from all lookup default

#ip route show table tbl_eth1
default via 192.168.12.1 dev eth1 

La caja de Linux está conectada a un conmutador de capa 3 que enruta tres subredes:

192.168.1.0    interface ip 192.168.1.1
192.168.11.0   interface ip 192.168.11.1
192.168.12.0   interface ip 192.168.12.1

Desde una dirección en la primera subred puedo hacer ping a todas las interfaces.

Los problemas surgen cuando intento llegar a 192.168.12.14 desde la subred 192.168.1.0 o viceversa.

Aquí están los resultados de traceroute:

#traceroute 192.168.12.14
traceroute to 192.168.12.14 (192.168.12.14), 30 hops max, 60 byte packets
1  192.168.1.1 (192.168.1.1)  0.532 ms  0.911 ms  1.074 ms
2  * * *
3  * * *
4  * * *
etc..

# traceroute -i eth1 -s 192.168.12.14 192.168.1.51
traceroute to 192.168.1.51 (192.168.1.51), 30 hops max, 60 byte packets
1  192.168.12.1 (192.168.12.1)  1.196 ms  1.559 ms  1.739 ms
2  * * *
3  * * *
4  * * *
etc..

Ahora viene lo realmente extraño: usando tshark puedo ver los paquetes de traceroute llegando en cada caso a sus respectivos destinos. Esto me dice que tanto la ruta de ida como la de retorno se están enrutando correctamente. Pero por mi vida no puedo entender por qué fallan tanto el ping como el traceroute.

Estoy razonablemente seguro de que no es un problema con el conmutador porque si hago de eth1 la puerta de enlace predeterminada en la máquina Linux, entonces funciona bien (pero luego tengo el mismo problema con eth0).

Estoy desesperado por esto; cualquier ayuda sería muy apreciada.

Respuesta1

Para referencia futura, @kasperd resolvió el problema subyacente en otro SFpregunta

información relacionada