Estoy ejecutando dos instancias de Ubuntu 12.04, las cuales no pueden acceder entre sí.
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 máquinas tienen acceso entre sí sólo a través de Internet, pero no a través de VPC (LAN, en otras palabras). Deshabilitar el firewall no ayuda. La máquina 1 solo puede hacer ping a 10.0.0.100. La máquina 2 solo puede hacer ping a 10.0.0.30. No puedo conectarme a ninguna de las máquinas con protocolos TCP/UDP a través de LAN. No hay ACL y los demonios de las máquinas escuchan en todas las IP y en todas las interfaces. ¿Cual podría ser el problema?
Edición 1:
Parece que el problema estaba en las tablas de enrutamiento. Resolví el problema en la Máquina 1 después de eliminar 1 NIC en la Máquina 2 y realizar algunas acciones aleatorias. Esto resultó en que DHCP obtuviera estas reglas:
~$ 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
~$
No puedo reproducir esto en la Máquina 2, pero puedo agregar las reglas y tablas de enrutamiento manualmente con:
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
¿Cómo podría evitar hacerlo manualmente?
Respuesta1
Intente agregar las rutas más específicamente. El enrutamiento preferirá la primera ruta coincidente ordenada por especificidad, métrica y luego por orden de adición.
Por ejemplo, en la máquina 1, agregue la siguiente ruta:
ip route add 10.0.0.40/32 dev eth1 src 10.0.0.30
Y en la máquina 2:
ip route add 10.0.0.30/32 dev eth1 src 10.0.0.40
es posible que desees eliminar las rutas más generales para eth1 en ambas máquinas:
ip route del 10.0.0.0/24 dev eth1
Dado que están en /24, debe intentar obtenerlos en diferentes subredes; por ejemplo, si ambos eth1 estuvieran en 10.0.1.0/24, no tendría este problema en absoluto.