Estou executando duas instâncias do Ubuntu 12.04, e ambas não podem acessar uma à outra.
Máquina 1:
eth0 - 10.0.0.20
eth1 - 10.0.0.30
netstat -nr:
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Máquina 2:
eth0 - 10.0.0.100
eth1 - 10.0.0.40
netstat -nr:
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Ambas as máquinas têm acesso uma à outra apenas através da internet, mas não através de VPC (LAN, em outras palavras). Desativar o firewall não ajuda. A máquina 1 pode executar ping apenas em 10.0.0.100. A máquina 2 pode executar ping apenas em 10.0.0.30. Não consigo me conectar a nenhuma das máquinas nos protocolos TCP/UDP através da LAN. Não há ACLs e os daemons nas máquinas estão escutando todos os IPs, todas as interfaces. Qual poderia ser o problema?
Editar 1:
Parece que o problema estava nas tabelas de roteamento. Resolvi o problema na Máquina 1 depois de excluir 1 NIC na Máquina 2 e realizar algumas ações aleatórias. Isso resultou na obtenção destas regras pelo DHCP:
~$ ip rule
0: from all lookup local
32765: from 10.0.0.30 lookup 2
32766: from all lookup main
32767: from all lookup default
~$
Não consigo reproduzir isso na Máquina 2, mas posso adicionar regras e tabelas de roteamento manualmente com:
ip route add default via 10.0.0.1 dev eth0
ip route add default via 10.0.0.1 dev eth1 table 2
ip rule add from 10.0.0.167 lookup 2 prio 1000
Como eu poderia evitar fazer isso manualmente?
Responder1
Tente adicionar as rotas de forma mais específica. O roteamento preferirá a primeira rota correspondente ordenada por especificidade, métrica e depois ordem de adição.
Por exemplo, na máquina 1, adicione a seguinte rota:
ip route add 10.0.0.40/32 dev eth1 src 10.0.0.30
E na máquina 2:
ip route add 10.0.0.30/32 dev eth1 src 10.0.0.40
você pode querer excluir as rotas mais gerais para eth1 em ambas as máquinas:
ip route del 10.0.0.0/24 dev eth1
Como eles estão em /24s, você deve tentar obtê-los em sub-redes diferentes, por exemplo, se ambos os eth1s estivessem em 10.0.1.0/24, você não teria esse problema.