Назад | Перейти на главную страницу

Два экземпляра 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 (другими словами, LAN). Отключение брандмауэра не помогает. Машина 1 может пинговать только 10.0.0.100. Машина 2 может пинговать только 10.0.0.30. Я не могу подключиться к какой-либо машине с протоколами TCP / UDP через локальную сеть. ACL отсутствуют, а демоны на машинах прослушивают все IP-адреса и все интерфейсы. В чем может быть проблема?

Изменить 1:

Похоже, проблема была в таблицах маршрутизации. Я решил проблему на машине 1 после удаления 1 сетевой карты на машине 2 и выполнения некоторых случайных действий. В результате 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 добавьте следующий маршрут:

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, у вас вообще не было бы этой проблемы.