Nie można połączyć się z instancją EC2 w VPC (Amazon AWS)

46

Podjąłem następujące kroki:

  1. Utworzono VPC (z jedną publiczną podsiecią)
  2. Dodano instancję EC2 do VPC
  3. Przydzielono elastyczny adres IP
  4. Powiązano elastyczny adres IP z instancją
  5. Utworzono grupę zabezpieczeń i przypisano ją do instancji
  6. Zmodyfikowano reguły bezpieczeństwa, aby umożliwić przychodzące echo ICMP i TCP na porcie 22

Zrobiłem to wszystko i nadal nie mogę pingować ani ssh do instancji. Jeśli wykonam te same kroki bez bitów VPC, mogę to skonfigurować bez problemu. Jakiego kroku mi brakuje?

Ryan Lynch
źródło
2
Czy przypisałeś bramę i trasę do podsieci VPC?
zorlem,
Jeśli przejdę do bram internetowych, do VPC jest przypisana brama. Jak sprawdzić, czy wyznaczono trasę?
Ryan Lynch,
Czy trasa jest tablicą tras?
Ryan Lynch,
2
tak, musisz przypisać „bramę internetową” do publicznej tablicy routingu.
zorlem,
1
Doskonale, dzięki stary. Jeśli podasz to w formie odpowiedzi, zaakceptuję. Czy w swojej odpowiedzi mógłbyś również określić, co dokładnie umieścić w tabeli tras? Podaję 0.0.0.0/0 i cel jako bramę internetową, ale to nie brzmi dobrze.
Ryan Lynch

Odpowiedzi:

75

Aby komunikować się poza VPC, każda inna niż domyślna podsieć potrzebuje tabeli routingu i powiązanej z nią bramy internetowej (domyślne podsieci domyślnie otrzymują bramę zewnętrzną i tabelę routingu).

W zależności od sposobu utworzenia publicznej podsieci w VPC może być konieczne jawne dodanie ich dodatkowo. Twoja konfiguracja VPC brzmi tak, jakby pasowała do Scenariusza 1 - prywatna chmura (VPC) z pojedynczą publiczną podsiecią i brama internetowa umożliwiająca komunikację przez Internet z dokumentacji AWS VPC.

Musisz dodać bramę internetową do swojego VPC i wewnątrz tabeli routingu podsieci publicznej przypisać0.0.0.0/0 (domyślną trasę), aby przejść do przypisanej bramy internetowej. W dokumentacji znajduje się ładna ilustracja dokładnej topologii sieci.

Aby uzyskać więcej informacji, możesz sprawdzić dokumentację AWS VPC Internet Gateway . Niestety jest trochę niechlujny i nieoczywisty gotcha.

Aby uzyskać więcej informacji na temat problemów z połączeniem, zobacz także: Rozwiązywanie problemów z łączeniem się z instancją .

zorlem
źródło
2
Oprócz przypisania domyślnej trasy dla bramy internetowej musiałem również powiązać podsieć z tablicą routingu. Ale kiedy zrobiłem te dwie rzeczy, zacząłem działać. Dzięki.
Sam Kenny
4
Zarządzanie VPC> Tabela tras> [Trasy]> Dodaj, 0.0.0.0/0, menu rozwijane, aby wybrać bramę internetową
Scott R. Frost
Wyrzucę to, aby internet mógł uczyć się na moim błędzie. Jeśli twoja droga do bramy internetowej ma miejsce docelowe 0.0.0.0/32, to nie będzie działać. Trasę należy zmienić na 0.0.0.0/0, jak określono w odpowiedzi Zorlema.
Douglas odbył się
4

Nie jestem pewien, czy dokładnie tak jest, ale właśnie utworzyłem VPC z podsieciami publicznymi i prywatnymi i zauważyłem, że istnieje domyślna grupa zabezpieczeń, która ma adres źródłowy jako taką samą nazwę grupy zabezpieczeń. Skuteczne nie ma dostępu. Musiałem zmienić to źródło na Anywhere i zaczęło działać.

dil
źródło
Witam, testuję również ten scenariusz 2. Wystąpienie publiczne i prywatne w podsieci publicznej i prywatnej. Chodzi o to, że nie rozumiem, w jaki sposób prywatna instancja może mieć dostęp do Internetu i aktualizować oprogramowanie.
The One
Dzięki, to był mój problem, zakładałem, że oznacza to, że wszystkie instancje w VPC miały dostęp
Santthosh,
3

Zauważyłem, że (myślę) należy uważać na strefę dostępności, w której tworzona jest instancja. Podsieć, interfejs sieciowy i instancja muszą znajdować się w tej samej strefie dostępności, w przeciwnym razie nie będzie możliwości połączenia się z publicznym adresem IP dla tego przypadku

Mogę się mylić - ale nie sądzę, aby to zrozumieć, kosztowało mnie to 12 godzin pracy.

Mam nadzieję, że to pomaga komuś innemu.

malarz
źródło
To jest poprawne. Scenariusz 1, jak wspomniano w odpowiedzi, polega na tym, że tworzysz /16VPC, a następnie tworzysz /24w każdym AZ, w którym chcesz pracować
Machavity,
1

Powinieneś przydzielić ENI i przypisać Elastyczny adres IP do tego ENI. Powinieneś także przypisać ten ENI do swojego VPC. Tabela tras również musi być poprawna, aby poprawnie przekazywać pakiety zewnętrzne do twojego VPC.

Lucas Freitas
źródło
Uważam, że dodanie ENI jest potrzebne, jeśli chcesz dodatkowych interfejsów sieciowych w swoich instancjach, domyślnie są one wyposażone w jedną kartę sieciową.
zorlem,
0

Ponieważ SSH jest protokołem stanowym, musisz upewnić się, że masz w sieci ACL następującą regułę WYJŚCIE:

Rule #  Type            Protocol        Port Range      Destination     Allow / Deny
100     Custom TCP Rule TCP (6)         49152-65535     0.0.0.0/0       ALLOW
Khalid Anwar
źródło