兩個預設 Ubuntu 執行個體無法透過 Amazon VPC 相互存取

兩個預設 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

兩台機器只能透過 Internet 相互訪問,而不能透過 VPC(即 LAN)存取。禁用防火牆沒有幫助。機器 1 只能 ping 通 10.0.0.100。機器 2 只能 ping 通 10.0.0.30。我無法透過 LAN 使用 TCP/UDP 協定連接到任何機器。沒有 ACL,機器上的守護程式正在偵聽所有 IP、所有介面。可能是什麼問題呢?

編輯1:

看來問題出在路由表。在刪除機器 2 上的 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 中,則根本不會出現此問題。

相關內容