Eu tenho uma caixa Linux com dois NICS:
eth0 192.168.11.14
eth1 192.168.12.14
Minha tabela de roteamento é a seguinte:
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
A rota padrão (via eth0) funciona bem, mas os problemas estão na interface eth1. Eu configurei um gateway padrão para eth1 da seguinte forma:
#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
A caixa Linux está conectada a um switch de camada 3 que roteia três sub-redes:
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
A partir de um endereço na primeira sub-rede, posso executar ping em todas as interfaces.
Os problemas surgem quando tento acessar 192.168.12.14 na sub-rede 192.168.1.0 ou vice-versa.
Aqui estão os resultados do 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..
Agora, aqui está a coisa realmente estranha: usando tshark eu posso realmente ver os pacotes traceroute chegando em cada caso em seus respectivos destinos. Isso me diz que os caminhos de saída e de retorno estão sendo roteados corretamente. Mas, pela minha vida, não consigo entender por que o ping e o traceroute estão falhando.
Tenho quase certeza de que não é um problema com a mudança, porque se eu tornar o eth1 o gateway padrão na caixa do Linux, ele funcionará bem (mas tenho o mesmo problema com o eth0).
Estou perdendo o juízo sobre isso - qualquer ajuda seria muito apreciada.
Responder1
Para referência futura, o problema subjacente foi resolvido por @kasperd em outro SFpergunta