两个默认的Ubuntu实例无法通过Amazon VPC访问每个实例

我正在运行两个Ubuntu 12.04实例,两者都无法访问对方。

机器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 

机器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 

两台机器只能通过互联网访问,而不能通过VPC(换句话说,就是局域网)访问。 禁用防火墙不起作用。 机器1只能ping 10.0.0.100。 机器2只能ping 10.0.0.30。 我无法通过LAN连接到TCP / UDP协议中的任何机器。 没有ACL,机器上的守护进程正在侦听所有IP,所有接口。 可能是什么问题呢?

编辑1:

看来问题出在路由表中。 在机器2上删除1个NIC并执行一些随机操作后,我已经解决了机器1上的问题。 这导致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 ~$ 

我不能在Machine 2上重现这一点,但是我可以手动添加规则和路由表:

 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 

我怎样才能避免手动?

尝试添加更具体的路线。 路由select首选匹配路由将按照特定性,度量标准和添加顺序排列。

例如,在机器1上,添加以下路由:

 ip route add 10.0.0.40/32 dev eth1 src 10.0.0.30 

在机器2上:

 ip route add 10.0.0.30/32 dev eth1 src 10.0.0.40 

您可能需要删除两台机器上eth1的更一般路由:

 ip route del 10.0.0.0/24 dev eth1 

因为他们在/ 24s,你应该尝试让他们在不同的子网,例如,如果eth1s在10.0.1.0/24,你根本就没有这个问题。