Wie kann ich den Paketverlust bei meiner AWS VPN-Verbindung beheben?
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
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Monat
- AWS OFFICIALAktualisiert vor 2 Jahren