2つのデフォルトのUbuntuインスタンスはAmazon VPC経由で相互にアクセスできない

2つのデフォルトのUbuntuインスタンスはAmazon VPC経由で相互にアクセスできない

2 つの 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 (つまり LAN) 経由ではアクセスできません。ファイアウォールを無効にしても効果はありません。マシン 1 は 10.0.0.100 のみに ping できます。マシン 2 は 10.0.0.30 のみに ping できます。LAN 経由で TCP/UDP プロトコルでどのマシンにも接続できません。ACL はなく、マシン上のデーモンはすべての IP、すべてのインターフェースでリッスンしています。何が問題なのでしょうか?

編集1:

問題はルーティング テーブルにあったようです。マシン 2 の NIC を 1 つ削除し、いくつかのランダムな操作を実行した後、マシン 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 
~$ 

これをマシン 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

手動で行うのを避けるにはどうすればよいですか?

答え1

ルートをより具体的に追加してみてください。ルーティングでは、詳細度、メトリック、追加順の順に最初に一致するルートが優先されます。

たとえば、マシン 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

これらは /24 にあるため、異なるサブネットに配置するようにしてください。たとえば、両方の eth1 が 10.0.1.0/24 にある場合、この問題はまったく発生しません。

関連情報