Verbindung zur EC2-Instanz in VPC nicht möglich (Amazon AWS)

46

Ich habe folgende Schritte unternommen:

  1. Erstellt eine VPC (mit einem einzelnen öffentlichen Subnetz)
  2. Hinzufügen einer EC2-Instanz zur VPC
  3. Zugewiesen eine elastische IP
  4. Verknüpfte die elastische IP mit der Instanz
  5. Erstellt eine Sicherheitsgruppe und weist sie der Instanz zu
  6. Die Sicherheitsregeln wurden geändert, um eingehendes ICMP-Echo und TCP an Port 22 zuzulassen

Ich habe das alles getan und kann immer noch nicht in die Instanz pingen oder ssh. Wenn ich die gleichen Schritte abzüglich der VPC-Bits befolge, kann ich dies ohne Probleme einrichten. Welchen Schritt vermisse ich?

Ryan Lynch
quelle
2
Haben Sie dem VPC-Subnetz ein Gateway und eine Route zugewiesen?
Zorlem
Wenn ich zu Internet-Gateways gehe, ist der VPC ein Gateway zugewiesen. Wie überprüfe ich, ob eine Route zugewiesen wurde?
Ryan Lynch
Ist route eine Routentabelle?
Ryan Lynch
2
Ja, Sie müssen der öffentlichen Routing-Tabelle ein "Internet-Gateway" zuweisen.
Zorlem
1
Exzellent, danke Mann. Wenn du es in Form einer Antwort schreibst, akzeptiere ich es. Können Sie in Ihrer Antwort auch angeben, was genau in die Routentabelle aufgenommen werden soll? Ich habe 0.0.0.0/0 und das Ziel als Internet-Gateway eingegeben, aber das klingt nicht nach der richtigen Vorgehensweise.
Ryan Lynch

Antworten:

75

Für die Kommunikation außerhalb der VPC ist für jedes nicht standardmäßige Subnetz eine Routing-Tabelle und ein damit verbundenes Internet-Gateway erforderlich (die Standard-Subnetze erhalten standardmäßig ein externes Gateway und eine Routing-Tabelle).

Je nachdem, wie Sie ein öffentliches Subnetz in der VPC erstellt haben, müssen Sie diese möglicherweise zusätzlich explizit hinzufügen. Ihr VPC-Setup scheint Szenario 1 zu entsprechen - eine private Cloud (VPC) mit einem einzelnen öffentlichen Subnetz und einem Internet-Gateway, um die Kommunikation über das Internet aus der AWS VPC-Dokumentation zu ermöglichen.

Sie müssen Ihrer VPC ein Internet-Gateway hinzufügen und in der Routing-Tabelle des öffentlichen Subnetzes zuweisen0.0.0.0/0 (Standardroute), um zum zugewiesenen Internet-Gateway zu gelangen. Die genaue Netzwerktopologie finden Sie in der Dokumentation.

Weitere Informationen finden Sie in der AWS-Dokumentation zu VPC Internet Gateway . Leider ist es ein wenig chaotisch und ein nicht offensichtliches Problem.

Weitere Informationen zu Verbindungsproblemen finden Sie unter: Fehlerbehebung beim Herstellen einer Verbindung mit Ihrer Instanz .

zorlem
quelle
2
Neben der Zuweisung der Standardroute für das Internet-Gateway musste ich auch das Subnetz mit der Routingtabelle verknüpfen. Aber nachdem ich diese beiden Dinge getan hatte, war ich am Laufen. Vielen Dank.
Sam Kenny
4
VPC-Verwaltung> Routentabelle> [Routen]> Hinzufügen, 0.0.0.0/0, Dropdown, um Ihr Internet-Gateway auszuwählen
Scott R. Frost
Ich werde das ins Internet werfen, um aus meinem Fehler zu lernen. Wenn Ihre Route zum Internet-Gateway das Ziel 0.0.0.0/32 hat, funktioniert dies nicht. Die Route muss wie in Zorlems Antwort angegeben in 0.0.0.0/0 geändert werden.
Douglas Held
4

Ich bin mir nicht sicher, ob dies genau der Fall ist, habe aber gerade eine VPC mit öffentlichen und privaten Subnetzen erstellt und festgestellt, dass es eine Standardsicherheitsgruppe gibt, deren Quelladresse mit demselben Sicherheitsgruppennamen identisch ist. Effektiv hat es keinen Zugriff. Musste diese Quelle auf Anywhere ändern und es fing an zu funktionieren.

dil
quelle
Hallo, ich teste auch dieses Szenario 2. Öffentliche und private Instanz im öffentlichen und privaten Subnetz. Der Punkt ist, dass ich nicht verstehe, wie die private Instanz auf das Internet zugreifen und Software aktualisieren kann.
Der Eine
Danke, das war mein Problem, ich nahm an, das heißt, alle Instanzen in VPC hatten Zugriff
Santthosh
3

Ich habe festgestellt, dass Sie (glaube ich) vorsichtig sein müssen, in welcher Verfügbarkeitszone Ihre Instanz erstellt wird. Das Subnetz, die Netzwerkschnittstelle und die Instanz müssen sich in derselben Verfügbarkeitszone befinden, da sonst keine Verbindung zu einer öffentlichen IP-Adresse hergestellt werden kann für diesen Fall.

Ich kann mich irren - aber ich glaube nicht, das hat mich 12 Stunden Arbeit gekostet, um es herauszufinden.

Hoffe das hilft jemand anderem.

Schmied
quelle
Das ist richtig. In Szenario 1 erstellen Sie, wie in der Antwort erwähnt, eine /16VPC und anschließend /24in jedem AZ, in dem Sie arbeiten möchten, eine
Machavity
1

Sie sollten eine ENI zuweisen und dieser ENI die elastische IP zuweisen. Außerdem sollten Sie diese ENI Ihrer VPC zuweisen. Die Routentabelle muss ebenfalls korrekt sein, damit die externen Pakete korrekt an Ihre VPC weitergeleitet werden.

Lucas Freitas
quelle
Ich glaube, dass das Hinzufügen einer ENI erforderlich ist, wenn Sie zusätzliche Netzwerkschnittstellen für Ihre Instanzen benötigen. Standardmäßig werden diese mit einer NIC geliefert.
Zorlem
0

Da SSH ein Statefull-Protokoll ist, müssen Sie sicherstellen, dass die folgende OUTBOUND-Regel in Ihrer Netzwerk-ACL enthalten ist:

Rule #  Type            Protocol        Port Range      Destination     Allow / Deny
100     Custom TCP Rule TCP (6)         49152-65535     0.0.0.0/0       ALLOW
Khalid Anwar
quelle