Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >So verwenden Sie iPerf zum Testen und Beheben von UDP-Paketverlusten
Der Inhalt dieses Artikels befasst sich mit der Verwendung von iPerf zum Testen und Beheben von UDP-Paketverlustproblemen. Ich hoffe, dass er für Sie hilfreich ist.
Verwenden Sie iPerf, um UDP-Paketverlustprobleme zu testen und zu beheben
Phänomenbeschreibung
Verwenden Sie Hochgeschwindigkeitskanäle, um die zu öffnen gleiche Region (Region Nach dem Einrichten von zwei ECS-Instanzen des VPC-Netzwerktyps unter Die Rate zeigt einen steigenden Trend. Wie unten gezeigt:
Problemanalyse
Angenommen, dass die privaten IPs von zwei ECS-Instanzen vom Netzwerktyp sind Sind VPC ECS A (192.168.104.235) und ECS B (10.182.83.13) und verwenden Netcat (NC) zum Überwachen und Senden von UDP-Datenpaketen, sieht das Kommunikationsverbindungsdiagramm zwischen ECS-Instanz A und Instanz B des Netzwerktyps wie folgt aus :
Die Datenflussrichtung ist:
ECS A(192.168.104.235)-> NC 1(100.105.59.3)-> VGW(10.141.166.253)-> NC 2(100.105.59.9)-> ECS B(10.182.83.13)
Wir müssen den Link beheben und analysieren, um die letztendliche Ursache für den Paketverlust herauszufinden.
Lösung
Hinweis: Da nur die Kommunikation zwischen Quell-Netcat (d. h. NC 1) und Ziel-Netcat (d. h. NC 2) angezeigt wird, Durch die Paketerfassung und Fehlerbehebung sollten Missverständnisse vermieden werden, d. h. die willkürliche Beurteilung, dass der Paketverlust durch die direkte Kommunikation zwischen Netcat (NC) verursacht wird.
Bei der Fehlerbehebung wird festgestellt, dass die erfassten Pakete von eth0 am Quellende an VGW gesendet werden. Bei der Erfassung von Paketen am Zielende wird jedoch festgestellt, dass die Shell die Ziel-NC 2-IP kapselt. wie im Beispiel:
[Time ] 17:32:07.130844 Point: `input ` [ETHER] 24:4c:07:33:0e:02 -> 00:04:37:28:00:65, eth_type: 0x0800 [IPv4 ] 100.105.59.3 -> 10.141.166.253 proto: 17, ver: 04, ihl: 05, len: 1534, ident: 59824,R: 0, DF: 1, MF: 0, offset: 0, ttl: 60, chksum: 0xfe47 [UDP ] sport: 46703, dport: 250, size: 1514, chksum: 0x0000 [VxLan] debug_flag: 0, vlan_tag: 0, payload_type: 0, version: 1, tunnel_id: 1878597, tos: 0, tof: 0 [IPv4 ] 192.168.104.235 -> 10.182.83.13 proto: 17, ver: 04, ihl: 05, len: 1498, ident: 55469,R: 0, DF: 1, MF: 0, offset: 0, ttl: 64, chksum: 0xd50e [UDP ] sport: 36687, dport: 5001, size: 1478, chksum: 0xa0aa [Time ] 17:32:07.130854 Point: `output` [ETHER] 24:4c:07:33:0e:02 -> 00:04:37:28:00:65, eth_type: 0x0800 [IPv4 ] 100.105.59.3 -> 100.105.59.9 proto: 17, ver: 04, ihl: 05, len: 1534, ident: 59824,R: 0, DF: 1, MF: 0, offset: 0, ttl: 60, chksum: 0x0000 [UDP ] sport: 46703, dport: 250, size: 1514, chksum: 0x0000 [VxLan] debug_flag: 0, vlan_tag: 0, payload_type: 0, version: 1, tunnel_id: 2125861, tos: 0, tof: 0 [IPv4 ] 192.168.104.235 -> 10.182.83.13 proto: 17, ver: 04, ihl: 05, len: 1498, ident: 55469,R: 0, DF: 1, MF: 0, offset: 0, ttl: 64, chksum: 0xd50e [UDP ] sport: 36687, dport: 5001, size: 1478, chksum: 0xa0aa
Bestätigen Sie, dass das Datenpaket weitergeleitet wird. Beginnen Sie nach VGW mit der Zählung der Paketerfassungsinformationen:
ECS A empfängt UDP-Verkehr über iPerf: iperf -c 10.182.83.13 -u - b 600m
ECS B empfängt über iPerf: iperf -u - s
erfasst Pakete innerhalb der Instanz.
ECS A:sudo tcpdump -w ~/client.pcap -n -i eth0 src host 192.168.104.25 and src port 1234 ECS B:sudo tcpdump -w ~/server.pcap -n -i eth0 src host 192.168.104.25 and src port 1234
Erfassen Sie Pakete bei zwei NC eth0.
NC 1:sudo houyi-tcpdump -w /apsara/i-6we6pnh19n2q7srkgomd.pcap -nnK -i eth0 udp and src inner_port 1234 and dst inner_host 10.182.83.13 NC 2:sudo houyi-tcpdump -B 4096 -w /apsara/i-6we53i9h3ducbju5rmuw.pap -nn -i eth0 udp -K and src inner_host 192.168.104.235 and src inner_port 1234
Stellen Sie das System in ASW und LSW bereit.
100.105.59.3:46728 -> 10.141.166.253:250
Hinweis: Da die Zielpaket-Shell die Ziel-NC 1-IP automatisch kapselt, lautet das Nachrichtenformat des VGW-seitigen Datenpakets: 100.105.59.3:46728 -> 100.105.59.9:250.
Analyse basierend auf den Ergebnissen der Paketerfassung.
ECS A-Paketverlust/-Versand: 171/510203
NC 1 Eth0-Paketversand: 510204
ASW- und LSW-Flussstatistik-Paketversand: 510204
NC 2 eth0-Paket empfangen: 510204
ECS B-Paket empfangen: 510204, Erfassung 507442, verworfen von Kernel 2162
Die obige Analyse lokalisiert Paketverluste im Instanzprotokollstapel und passt das interne UDP an Puffergrößen der Instanz. Passen Sie den Netzwerkstapel (Stack) an. Die Standard-UDF-Puffergröße beträgt 212992 (208 KB) und Sie können sie auf 2097152 (2 MB) anpassen.
/proc/sys/net/core/rmem_default #默认的接收数据包内存大小 /proc/sys/net/core/rmem_max #最大的接收数据包内存大小
Testen Sie den UDP-Paketverlust nach der Anpassung.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie iPerf zum Testen und Beheben von UDP-Paketverlusten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!