Häufige Konnektivitätsprobleme von EC2-Instanzen diagnostizieren und beheben
Dieser umfassende Leitfaden hilft Ihnen, häufige Probleme mit der Netzwerkkonnektivität von Amazon EC2-Instanzen zu beheben und zu lösen. Erfahren Sie Schritt für Schritt, wie Sie Probleme diagnostizieren, indem Sie Security Groups, NACLs, Route Tables, Internet Gateways, NAT Gateways und VPC Peering untersuchen. Enthält praktische Beispiele und bewährte Verfahren, um sicherzustellen, dass Ihre EC2-Instanzen jederzeit zugänglich sind und effektiv kommunizieren.
So diagnostizieren und beheben Sie häufige EC2-Instanz-Konnektivitätsprobleme
EC2-Konnektivitätsprobleme lassen sich in der Regel auf einen blockierten Hop zurückführen: die Instanz, die Sicherheitsgruppe, die Subnetzregeln, die Routentabelle oder den Gateway-Pfad. Wenn Sie keine SSH-Verbindung zu einer EC2-Instanz herstellen, einen Anwendungsport erreichen oder von einer Instanz zu einer anderen verbinden können, arbeiten Sie den Netzwerkpfad der Reihe nach durch, anstatt wahllos Regeln zu ändern.
Die folgenden Überprüfungen helfen Ihnen, den Ort zu isolieren, an dem der Datenverkehr stoppt, und die kleinste Änderung anzuwenden, die den Zugriff wiederherstellt.
Häufige Ursachen für EC2-Konnektivitätsprobleme
Konnektivitätsprobleme können auf verschiedenen Ebenen des AWS-Netzwerkstacks auftreten. Die Identifizierung der Grundursache erfordert oft die Überprüfung einer Kombination dieser Elemente:
- Sicherheitsgruppen: Dies sind zustandsbehaftete virtuelle Firewalls, die an elastische Netzwerkschnittstellen angehängt sind. Sie steuern eingehenden und ausgehenden Datenverkehr auf Instanzebene.
- Netzwerkzugriffskontrolllisten (NACLs): NACLs arbeiten auf Subnetzebene und bieten eine zusätzliche Schicht zustandsloser Filterung für Datenverkehr, der in Subnetze ein- und aus ihnen austritt.
- Routentabellen: Diese bestimmen, wohin der Subnetzverkehr geleitet wird, z. B. lokal innerhalb des VPC, zu einem Internet-Gateway, zu einem NAT-Gateway oder zu einem Transit-Gateway.
- Instanzstatus und Netzwerkkonfiguration: Probleme mit der EC2-Instanz selbst, z. B. dass sie gestoppt ist oder falsche Netzwerkschnittstelleneinstellungen aufweist.
- Internet-Gateway (IGW) / NAT-Gateway: Für Instanzen, die Internetzugriff benötigen, ist die Konfiguration des IGW (für öffentliche Subnetze) oder des NAT-Gateways (für private Subnetze) entscheidend.
- VPC-Peering / Transit-Gateway: Wenn eine Verbindung zwischen VPCs hergestellt wird, müssen diese Inter-VPC-Konnektivitätsdienste korrekt konfiguriert sein.
Schritt-für-Schritt-Diagnose und -Behebung
Beginnen Sie mit dem Symptom und folgen Sie dann dem Paketpfad.
1. Überprüfen des Instanzstatus und der grundlegenden Netzwerkerreichbarkeit
Bevor Sie sich in komplexe Netzwerkkonfigurationen vertiefen, stellen Sie sicher, dass sich die Instanz selbst in einem fehlerfreien Zustand befindet und über grundlegende Netzwerkkonfigurationen verfügt:
- Instanz-Statusprüfungen: Wählen Sie in der EC2-Konsole die Instanz aus und überprüfen Sie den Tab "Status checks". Sowohl System- als auch Instanzprüfungen sollten bestanden werden.
- Öffentliche und private IPs: Bestätigen Sie, dass die Instanz die erwartete Adresse hat. Eine Instanz in einem öffentlichen Subnetz benötigt dennoch eine öffentliche IPv4-Adresse oder eine elastische IP für den direkten Internetzugriff über IPv4.
- Listener des Betriebssystems: Wenn der Netzwerkpfad offen ist, der Port aber dennoch fehlschlägt, bestätigen Sie, dass der Dienst auf der Instanz lauscht. SSH sollte beispielsweise auf TCP 22 lauschen, es sei denn, Sie haben die Daemon-Konfiguration geändert.
- DNS-Auflösung: Wenn die Verbindung per IP funktioniert, die Hostnamenauflösung jedoch fehlschlägt, überprüfen Sie die VPC-DNS-Einstellungen, benutzerdefinierte Resolver und
/etc/resolv.confunter Linux.
2. Untersuchen von Sicherheitsgruppen
Sicherheitsgruppen sind zustandsbehaftete Firewalls, die den Datenverkehr zu und von Ihren EC2-Instanzen steuern. Sie sind eine sehr häufige Ursache für Konnektivitätsprobleme.
2.1. Eingehende Regeln
Wenn Sie keine Verbindung zu Ihrer Instanz herstellen können, z. B. SSH unter Linux oder RDP unter Windows:
- Überprüfen Sie die Sicherheitsgruppe, die an Ihre EC2-Instanz angehängt ist.
- Überprüfen Sie die eingehenden Regeln: Erlauben Sie den erforderlichen TCP-Port von Ihrer Quell-IP oder einem vertrauenswürdigen CIDR. Bevorzugen Sie für den Administrationszugriff Ihre aktuelle öffentliche IP als
<your_ip>/32anstelle von0.0.0.0/0. - Beispiel: So erlauben Sie SSH-Zugriff von Ihrer IP-Adresse:
Typ: SSH Protokoll: TCP Portbereich: 22 Quelle: <your_ip>/32
2.2. Ausgehende Regeln
Wenn Ihre Instanz keine externen Ressourcen erreichen kann (z. B. Pakete herunterladen, eine Verbindung zu anderen AWS-Diensten herstellen):
- Überprüfen Sie die Sicherheitsgruppe, die an Ihre EC2-Instanz angehängt ist.
- Überprüfen Sie die ausgehenden Regeln: Standardmäßig erlauben Sicherheitsgruppen den gesamten ausgehenden Datenverkehr. Wenn benutzerdefinierte ausgehende Regeln erstellt wurden, stellen Sie sicher, dass sie den erforderlichen Datenverkehr zu Ihren Zielports und IPs zulassen.
- Beispiel: So erlauben Sie den gesamten ausgehenden Datenverkehr:
Typ: Gesamter Datenverkehr Protokoll: Alle Portbereich: Alle Ziel: 0.0.0.0/0
3. Untersuchen von Netzwerkzugriffskontrolllisten (NACLs)
NACLs sind zustandslose Firewalls, die auf Subnetzebene arbeiten. Sie filtern Datenverkehr, bevor er die Sicherheitsgruppe oder Instanz erreicht.
- Identifizieren Sie die NACL, die dem Subnetz Ihrer Instanz zugeordnet ist.
- Überprüfen Sie die eingehenden Regeln: NACLs werden der Reihe nach nach Regelnummer ausgewertet. Stellen Sie sicher, dass eine eingehende Regel vorhanden ist, die Datenverkehr auf dem erforderlichen Port von der Quell-IP zulässt.
- Überprüfen Sie die ausgehenden Regeln: Stellen Sie gleichermaßen sicher, dass die ausgehenden Regeln Datenverkehr zum Ziel zulassen.
- Zustandsloser Charakter: NACLs merken sich keine etablierten Verbindungen. Sie benötigen eingehende und ausgehende Regeln für beide Seiten des Flusses. Für SSH von Ihrem Laptop aus benötigt die Subnetz-NACL normalerweise eingehendes TCP 22 von Ihrer IP und ausgehende kurzlebige Ports zu Ihrer IP für den Rückverkehr. Die Bereiche der kurzlebigen Ports variieren je nach Betriebssystem und Client, verwenden Sie daher den für Ihre Umgebung geeigneten Bereich.
- Regelnummerierung: Niedrigere Regelnummern werden zuerst ausgewertet. Verwenden Sie explizite Deny-Regeln (z. B. Regel
100, um bestimmten Datenverkehr zu verweigern) und Allow-Regeln (z. B. Regel200, um breiteren Datenverkehr zuzulassen) mit Bedacht.
4. Überprüfen von Routentabellen
Routentabellen bestimmen, wohin der Netzwerkverkehr von Ihren Subnetzen geleitet wird. Eine falsche Weiterleitung kann verhindern, dass Datenverkehr sein Ziel erreicht.
- Finden Sie die Routentabelle, die dem Subnetz Ihrer Instanz zugeordnet ist.
- Überprüfen Sie auf eine Standardroute: Damit Instanzen in einem öffentlichen Subnetz auf das Internet zugreifen können, muss eine Route
0.0.0.0/0vorhanden sein, die auf ein Internet-Gateway (IGW) verweist.Ziel | Ziel ----------------|-------- 10.0.0.0/16 | local 0.0.0.0/0 | igw-xxxxxxxxxxxxxxxxx - Private Subnetze und NAT-Gateways: Damit Instanzen in einem privaten Subnetz ausgehende Internetverbindungen initiieren können, benötigt die Routentabelle für dieses Subnetz eine
0.0.0.0/0-Route, die auf ein NAT-Gateway oder eine NAT-Instanz verweist.Ziel | Ziel ----------------|-------- 10.0.0.0/16 | local 0.0.0.0/0 | nat-xxxxxxxxxxxxxxxxx - VPC-Peering, Transit-Gateway oder VPN: Wenn Ihre Instanz mit einem anderen VPC oder einem lokalen Netzwerk kommunizieren muss, fügen Sie auf beiden Seiten, wo Routing erforderlich ist, Routen für die entfernten CIDR-Blöcke zum richtigen Ziel hinzu.
5. Fehlerbehebung bei der Konnektivität von Internet-Gateway (IGW) und NAT-Gateway
Internet-Gateway
* Stellen Sie sicher, dass das IGW erstellt und an Ihr VPC angehängt ist.
* Überprüfen Sie, ob die Routentabelle für Ihr öffentliches Subnetz eine `0.0.0.0/0`-Route hat, die auf das IGW verweist.
* Bestätigen Sie, dass Ihrer Instanz eine öffentliche IP-Adresse oder eine elastische IP-Adresse zugewiesen ist.
* Die Regeln der Sicherheitsgruppe und der NACL müssen den erforderlichen eingehenden und ausgehenden Datenverkehr zulassen. Öffnen Sie sensible Ports nicht für das gesamte Internet, es sei denn, Sie haben einen klaren Grund und kompensierende Kontrollen.
NAT-Gateway
* Stellen Sie sicher, dass das NAT-Gateway erstellt wurde und sich in einem öffentlichen Subnetz befindet.
* Überprüfen Sie, ob dem NAT-Gateway eine elastische IP-Adresse zugeordnet ist.
* Bestätigen Sie, dass die Routentabelle für Ihr privates Subnetz eine `0.0.0.0/0`-Route hat, die auf das NAT-Gateway verweist.
* NACL-Regeln in den privaten und öffentlichen Subnetzen müssen die ausgehende Verbindung und den Rückverkehr zulassen. NAT-Gateways verwenden keine Sicherheitsgruppen.
6. VPC-Peering und Transit-Gateway
Wenn Konnektivitätsprobleme zwischen VPCs auftreten:
- VPC-Peering:
- Stellen Sie sicher, dass die Peering-Verbindung aktiv ist und von beiden VPCs akzeptiert wurde.
- Überprüfen Sie, ob die Routentabellen in beiden VPCs Routen hinzugefügt haben, um Datenverkehr zu den CIDR-Blöcken des gepeerten VPC zuzulassen.
- Stellen Sie sicher, dass Sicherheitsgruppen und NACLs in beiden VPCs Datenverkehr zwischen den erforderlichen IP-Bereichen zulassen.
- Transit-Gateway:
- Bestätigen Sie, dass das Transit-Gateway erstellt wurde und die relevanten VPCs daran angehängt sind.
- Überprüfen Sie die Routentabellen des Transit-Gateways, um sicherzustellen, dass sie Datenverkehr korrekt zwischen VPC-Anhängen weiterleiten.
- Überprüfen Sie, ob die Routentabellen innerhalb jedes VPC ebenfalls Routen haben, die für Datenverkehr zu anderen VPCs auf das Transit-Gateway verweisen.
- Sicherheitsgruppen und NACLs innerhalb jedes VPC müssen den VPC-übergreifenden Datenverkehr zulassen.
7. Verwenden von AWS-Netzwerkerreichbarkeitstools
AWS stellt Tools zur Verfügung, die bei der Diagnose von Netzwerkproblemen helfen:
- VPC Reachability Analyzer: Dieses Tool analysiert die Erreichbarkeit zwischen unterstützten Quell- und Zielressourcen. Es kann Pfadfehler identifizieren, die durch Sicherheitsgruppen, NACLs, Routentabellen, Gateways und zugehörige Netzwerkkonfigurationen verursacht werden.
- VPC Flow Logs: Obwohl sie Verbindungsfehler nicht direkt diagnostizieren, erfassen VPC Flow Logs Informationen über den IP-Verkehr, der zu und von Netzwerkschnittstellen in Ihrem VPC fließt. Die Analyse dieser Protokolle kann Muster von blockiertem oder unerwartetem Datenverkehr aufdecken und Ihnen helfen, Fehlkonfigurationen in Sicherheitsgruppen oder NACLs zu identifizieren.
8. Andere potenzielle Probleme
- Elastische Netzwerkschnittstelle (ENI): Stellen Sie sicher, dass die ENI an die Instanz angehängt und korrekt konfiguriert ist.
- Zuordnung der Routentabelle des Subnetzes: Überprüfen Sie, ob das Subnetz korrekt seiner vorgesehenen Routentabelle zugeordnet ist.
- DNS-Konfiguration: Wenn Sie ein benutzerdefiniertes DNS verwenden, stellen Sie sicher, dass es korrekt aufgelöst wird. Für das standardmäßige VPC-DNS überprüfen Sie, ob die DNS-Auflösung für Ihr VPC aktiviert ist.
- Proxy-Server: Wenn Ihre Instanz für die Verwendung eines Proxys konfiguriert ist, stellen Sie sicher, dass der Proxy selbst erreichbar und korrekt konfiguriert ist.
Best Practices zur Vermeidung von Konnektivitätsproblemen
- Prinzip der geringsten Rechte: Konfigurieren Sie Sicherheitsgruppen und NACLs mit den minimal erforderlichen Berechtigungen. Vermeiden Sie die Verwendung von
0.0.0.0/0für sensible Ports, es sei denn, dies ist unbedingt erforderlich und durch andere Mittel geschützt. - Tagging: Taggen Sie Ihre Netzwerkressourcen (VPCs, Subnetze, Sicherheitsgruppen, Routentabellen) konsistent, um deren Zweck und zugehörige Instanzen leicht identifizieren zu können.
- Dokumentation: Pflegen Sie eine klare Dokumentation Ihrer Netzwerktopologie, IP-Adressierungsschemata und Sicherheitsregeln.
- Regelmäßige Audits: Überprüfen Sie regelmäßig Ihre Sicherheitsgruppen- und NACL-Regeln, um sicherzustellen, dass sie noch relevant und sicher sind.
- AWS-Tools nutzen: Machen Sie sich mit dem VPC Reachability Analyzer und VPC Flow Logs für proaktives Monitoring und Fehlerbehebung vertraut.
Fazit
Wenn die EC2-Konnektivität unterbrochen wird, verfolgen Sie den Pfad der Reihe nach: Instanzzustand, Listener, Sicherheitsgruppe, NACL, Routentabelle, Gateway und Regeln der Gegenseite. Ändern Sie jeweils eine Ebene und testen Sie dann erneut. Das hält Ihren Fix eng und macht den nächsten Ausfall viel einfacher zu diagnostizieren.