Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >So verwenden Sie iPerf zum Testen und Beheben von UDP-Paketverlusten

So verwenden Sie iPerf zum Testen und Beheben von UDP-Paketverlusten

坏嘻嘻
坏嘻嘻Original
2018-09-28 15:37:168919Durchsuche

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:

So verwenden Sie iPerf zum Testen und Beheben von UDP-Paketverlusten

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 :

So verwenden Sie iPerf zum Testen und Beheben von UDP-Paketverlusten

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.

So verwenden Sie iPerf zum Testen und Beheben von UDP-Paketverlusten

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn