Wie kann ich den Paketverlust bei meiner AWS VPN-Verbindung beheben?

Lesedauer: 5 Minute
0

Ich sehe konstante oder zeitweilige Paketverluste und Probleme mit hoher Latenz bei meiner AWS Virtual Private Network (AWS VPN)-Verbindung. Ich möchte wissen, welche Tests ich durchführen muss, um zu bestätigen, dass das Problem nicht innerhalb meiner Amazon Virtual Private Cloud (Amazon VPC) auftritt.

Kurzbeschreibung

Die Ursachen für Paketverluste können variieren, da der AWS-VPN-Internetverkehr zwischen dem On-Premises-Netzwerk und Amazon VPC übertragen wird. Es hat sich bewährt, das Problem zu isolieren und festzustellen, woher der Paketverlust kommt.

Auflösung

Um festzustellen, ob Sie die Netzwerkgrenzen erreicht haben, überprüfen Sie die Quell- und Zielhosts auf Probleme mit der Ressourcennutzung. Probleme mit der Ressourcennutzung finden Sie in Werten wie CPUAuslastung, NetzwetkEingang und NetzwerkAusgang, oder NetzwerkPaketeEingang und NetzwerkPaketeAusgang.

Verwendung von MTR, um nach ICMP- oder TCP-Paketverlust und Latenz zu suchen

MTR bietet eine kontinuierlich aktualisierte Ausgabe, mit der Sie die Netzwerkleistung im Laufe der Zeit analysieren können. Der Dienst kombiniert die Funktionen von Traceroute und Ping in einem einzigen Netzwerk-Diagnosetool. Um den Verlust und die Latenz von ICMP- oder TCP-Paketen zu überprüfen, installieren Sie das MTR-Netzwerktool auf Ihrer Amazon Elastic Compute Cloud (Amazon EC2)-Instance, die sich in der VPC befindet.

Amazon Linux:

sudo yum install mtr

Ubuntu:

sudo apt-get install mtr

Windows:

Besuchen Sie die SourceForge-Website, um ](https://sourceforge.net/projects/winmtr/files/)WinMTR zu installieren[.

Hinweis: Für das Windows-Betriebssystem (OS) unterstützt WinMTR kein TCP-basiertes MTR.

Führen Sie die folgenden Tests bidirektional zwischen der privaten und öffentlichen IP-Adresse für Ihre EC2-Instances und den On-Premises-Host durch. Da sich der Pfad zwischen den Knoten in einem TCP/IP-Netzwerk ändern kann, wenn die Richtung umgekehrt wird, erhalten Sie MTR-Ergebnisse aus beiden Richtungen.

Bevor Sie die Tests ausführen, überprüfen Sie die folgenden Konfigurationen:

  • Stellen Sie sicher, dass die Regeln für die Sicherheitsgruppe und die Netzwerk-Zugriffssteuerungsliste (Netzwerk-ACL) ICMP-Verkehr von der Quell-Instance zulassen.
  • Stellen Sie sicher, dass der Test-Port auf der Ziel-Instance geöffnet ist. Vergewissern Sie sich, dass die Sicherheitsgruppen- und Netzwerk-ACL-Regeln den Datenverkehr von der Quelle über das Protokoll und den Port zulassen.

Die TCP-basierten Ergebnisse bestimmen, ob es zu anwendungsbasierten Paketverlusten oder Latenzen bei der Verbindung kommt. MTR-Version 0.85 und höher enthalten eine TCP-Option.

Bericht über den lokalen Host der EC2-Instance mit privater IP-Adresse:

mtr -n -c 200

Bericht über den lokalen Host der EC2-Instance mit privater IP-Adresse:

mtr -n -T -c 200 -P 443 -m 60

Bericht über den On-Premises-Host der öffentlichen IP-Adresse der EC2-Instance:

mtr -n -c 200

Bericht über den On-Premises-Host der öffentlichen IP-Adresse der EC2-Instance:

mtr -n -T -c 200 -P 443 -m 60

Verwenden von traceroute, um Latenz- oder Routing-Probleme zu ermitteln

Das Linux-Dienstprogramm traceroute identifiziert den Pfad von einem Clientknoten zum Zielknoten. Das Dienstprogramm zeichnet die Zeit in Millisekunden auf, die jeder Router benötigt, um auf die Anfrage zu antworten. Das traceroute-Dienstprogramm berechnet darüber hinaus die Zeit, die jeder Hop benötigt, bis er sein Ziel erreicht.

Einige Anfragen, bei denen eine Zeitüberschreitung erfolgt, sind üblich. Achten Sie daher auf Paketverluste bis zum Ziel oder im letzten Hop der Route. Paketverluste über mehrere Hops können auf ein Problem hinweisen.

Hinweis: Es hat sich bewährt, den Befehl traceroute vom Client zum Server auszuführen. Führen Sie dann den Befehl vom Server zurück zum Client aus.

Führen Sie die folgenden Befehle aus, um traceroute zu installieren:

Amazon Linux:

sudo yum install traceroute

Ubuntu:

sudo apt-get install traceroute

Führen Sie die folgenden Befehle aus, um die private IP-Adresse der EC2-Instance und der lokalen Instance zu testen:

Amazon Linux:

sudo traceroutesudo traceroute -T -p 80

Windows:

tracerttracetcp

Hinweis: Diese Befehle führen eine TCP-basierte Ablaufverfolgung auf Port 80 durch. Vergewissern Sie sich, dass entweder Port 80 oder der Port, den Sie testen, in beide Richtungen geöffnet ist.

Wenn Sie Linux verwenden, verwenden Sie die Option traceroute, um einen TCP-basierten Trace anstelle von ICMP anzugeben. Dies liegt daran, dass die meisten Internetgeräte ICMP-basierte Trace-Anfragen depriorisieren.

Verwenden Sie hping3, um Ende-zu-Ende-TCP-Paketverluste sowie Latenzprobleme zu ermitteln

Hping3 auf der die.net-Website ist ein Befehlszeilen-TCP/IP-Paket-Assembler und -Analysator, der den Ende-zu-Ende-Paketverlust und die Latenzzeit über eine TCP-Verbindung misst.

MTRs und traceroute erfassen die Latenz pro Hop. Die hping3-Ergebnisse zeigen jedoch Paketverlust und minimale, maximale und durchschnittliche End-to-End-Latenz über TCP. Führen Sie die folgenden Befehle aus, um hping3 zu installieren:

Amazon Linux:

sudo yum --enablerepo=epel install hping3

Ubuntu:

sudo apt-get install hping3

Führen Sie die folgenden Befehle aus:

hping3 -S -c 50 -V <Public IP of EC2 instance or on-premises host>

hping3 -S -c 50 -V <Private IP of EC2 instance or on-premises host>

Hinweis: Standardmäßig sendet hping3 TCP-Header an den Port 0 des Ziel-Hosts mit einer winsize von 64, ohne dass das tcp-Flag aktiviert ist.

Beispiele für die Paketerfassung mit tcpdump oder Wireshark

Führen Sie gleichzeitige Paketerfassungen zwischen Ihrer EC2-Testinstance in der VPC und Ihrem On-Premises-Host durch, wenn Sie das Problem duplizieren. Auf diese Weise können Sie feststellen, ob bei der VPN-Verbindung Probleme auf Anwendungs- oder Netzwerkebene vorliegen. Sie können tcpdump auf Ihrer Linux-Instance oder Wireshark auf einer Windows-Instance installieren, um Paketerfassungen durchzuführen.

tcpdump auf Amazon Linux:

sudo yum install tcpdump

Installieren Sie tcpdump auf Ubuntu:

sudo apt-get install tcpdump

Wireshark unter Windows OS:

Informationen zur Installation von Wireshark finden Sie auf der Wireshark-Website. Erfassen Sie dann ein Datenpaket.

Ausschalten ECN

Wenn Sie die explizite Überlastungsmeldung (ECN) aktivieren, kann dies zu Paketverlust oder Leistungsproblemen führen, wenn Sie eine Verbindung zu Windows-Instances herstellen. Um die Leistung zu verbessern, schalten Sie ECN aus.

Führen Sie den folgenden Befehl aus, um festzustellen, ob ECN aktiviert ist:

netsh interface tcp show global

Wenn die ECN-Fähigkeit aktiviert ist, führen Sie den folgenden Befehl aus, um sie auszuschalten:

netsh interface tcp set global ecncapability=disabled

Ähnliche Informationen

Wie behebe ich Netzwerk-Leistungsprobleme zwischen Linux-Instances von Amazon EC2 in einer VPC und einem On-Premises-Host über das Internet-Gateway?

Wie kann ich feststellen, ob meine DNS-Abfragen an den von Amazon bereitgestellten DNS-Server aufgrund einer VPC-DNS-Drosselung fehlschlagen?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 9 Monaten