Не удается подключиться к экземпляру EC2 в VPC (Amazon AWS)

46

Я предпринял следующие шаги:

  1. Создан VPC (с одной общедоступной подсетью)
  2. Добавлен экземпляр EC2 в VPC
  3. Выделен эластичный IP
  4. Связал эластичный IP с экземпляром
  5. Создал группу безопасности и назначил ее экземпляру
  6. Изменены правила безопасности, чтобы разрешить входящий ICMP-эхо и TCP через порт 22

Я сделал все это, и я все еще не могу пинговать или ssh в экземпляр. Если я выполняю те же действия, за исключением битов VPC, я могу установить это без проблем. Какой шаг я пропускаю?

Райан Линч
источник
2
Вы назначили шлюз и маршрут к подсети VPC?
Зорлем
Если я иду в Интернет-шлюзы, есть шлюз, назначенный на VPC. Как проверить, был ли назначен маршрут?
Райан Линч
Является ли маршрут таблицей маршрутов?
Райан Линч
2
да, вам нужно назначить "интернет-шлюз" для публичной таблицы маршрутизации.
Зорлем
1
Отлично, спасибо, мужик. Если вы поставите это в форме ответа, я приму это. В своем ответе, не могли бы вы также указать, что именно положить в таблицу маршрутов? Я вставил 0.0.0.0/0 и цель в качестве интернет-шлюза, но это не похоже на то, что нужно делать.
Райан Линч

Ответы:

75

Для связи за пределами VPC каждая подсеть не по умолчанию нуждается в таблице маршрутизации и связанном с ней интернет-шлюзе (по умолчанию подсети получают внешний шлюз и таблицу маршрутизации).

В зависимости от того, как вы создали общедоступную подсеть в VPC, вам может потребоваться добавить их явно. Ваша настройка VPC звучит так, как будто она соответствует сценарию 1 - частное облако (VPC) с одной общедоступной подсетью и шлюз Интернета для обеспечения связи через Интернет из документации AWS VPC.

Вам нужно будет добавить интернет-шлюз к вашему VPC и в таблице маршрутизации общедоступной подсети назначить0.0.0.0/0 (маршрут по умолчанию), чтобы перейти к назначенному интернет-шлюзу. Есть хорошая иллюстрация точной топологии сети внутри документации.

Кроме того, для получения дополнительной информации вы можете проверить документацию VPS Internet Gateway AWS. К сожалению, это немного грязно и неочевидно.

Подробнее о проблемах с подключением см. Также: Устранение неполадок при подключении к вашему экземпляру .

zorlem
источник
2
В дополнение к назначению маршрута по умолчанию для интернет-шлюза мне также пришлось связать подсеть с таблицей маршрутизации. Но как только я сделал эти две вещи, я начал работать. Благодарю.
Сэм Кенни
4
Управление VPC> Таблица маршрутов> [Маршруты]> Добавить, 0.0.0.0/0, выпадающий список, чтобы выбрать ваш интернет-шлюз
Скотт Р. Фрост
Я добавлю это в интернет, чтобы учиться на своей ошибке. Если ваш маршрут к интернет-шлюзу имеет пункт назначения 0.0.0.0/32, он не будет работать. Маршрут необходимо изменить на 0.0.0.0/0, как указано в ответе Зорлема.
Дуглас провел
4

Не уверен, что это именно тот случай, но я только что создал VPC с публичными и частными подсетями и заметил, что существует группа безопасности по умолчанию, в которой адрес источника совпадает с именем группы безопасности. Эффективно не имеет доступа. Пришлось сменить этот источник на Anywhere и он начал работать.

разб
источник
Здравствуйте, я тестирую этот сценарий 2 тоже. Публичный и частный экземпляр в публичной и частной подсетях. Дело в том, что я не понимаю, как частный экземпляр мог получить доступ к Интернету и обновить программное обеспечение.
1
Спасибо, это была моя проблема, я предполагал, что это означает, что все экземпляры внутри VPC имеют доступ
Santthosh
3

Я заметил, что (я думаю) вы должны быть осторожны с тем, в какой зоне доступности создается ваш экземпляр. Подсеть, сетевой интерфейс и экземпляр должны находиться в одной зоне доступности, в противном случае невозможно подключиться к общедоступному IP-адресу. для этого экземпляра.

Возможно, я ошибаюсь - но я так не думаю, это стоило мне 12 часов работы, чтобы понять.

Надеюсь, это поможет кому-то еще.

malsmith
источник
Это правильно. Сценарий 1, как упомянуто в ответе, - это то, где вы создаете /16VPC, а затем создаете /24в каждом AZ, в котором хотите работать
Machavity
1

Вы должны выделить ENI и назначить Эластичный IP этому ENI. Кроме того, вы должны назначить этот ENI вашему VPC. Таблица маршрутов также должна быть правильной, чтобы правильно пересылать внешние пакеты в ваш VPC.

Лукас Фрейтас
источник
Я считаю, что добавление ENI необходимо, когда вам нужны дополнительные сетевые интерфейсы в ваших экземплярах, по умолчанию они поставляются с одним NIC.
Зорлем
0

Поскольку SSH является протоколом Statefull, вам необходимо убедиться, что в вашем ACL сети есть следующее правило OUTBOUND:

Rule #  Type            Protocol        Port Range      Destination     Allow / Deny
100     Custom TCP Rule TCP (6)         49152-65535     0.0.0.0/0       ALLOW
Халид Анвар
источник