Comment utiliser iPerf pour tester et dépanner la perte de paquets UDP

坏嘻嘻
Libérer: 2018-09-28 15:37:15
original
8846 Les gens l'ont consulté

Le contenu de cet article explique comment utiliser iPerf pour tester et résoudre les problèmes de perte de paquets UDP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Utilisez iPerf pour tester et résoudre les problèmes de perte de paquets UDP

Description des phénomènes

Utilisez des canaux haut débit pour ouvrir le même région (Région Après avoir configuré deux instances ECS du type de réseau VPC sous Le taux montre une tendance à la hausse. Comme indiqué ci-dessous :

Comment utiliser iPerf pour tester et dépanner la perte de paquets UDP

Analyse du problème

Supposons que les adresses IP privées de deux instances ECS de type réseau sont VPC ECS A (192.168.104.235) et ECS B (10.182.83.13) et utilisent Netcat (NC) pour surveiller et envoyer des paquets de données UDP, le schéma de liaison de communication entre l'instance ECS A et l'instance B du type de réseau est le suivant :

Comment utiliser iPerf pour tester et dépanner la perte de paquets UDP

La direction du flux de données est :

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)
Copier après la connexion

Nous devons dépanner et analyser son lien pour découvrir la cause ultime de la perte de paquets.

Solution

Remarque : Puisque seule la communication entre la source Netcat (c'est-à-dire NC 1) et la destination Netcat (c'est-à-dire NC 2) est vue, La capture et le dépannage des paquets doivent éviter les malentendus, c'est-à-dire juger arbitrairement que la perte de paquets est causée par une communication directe entre Netcat (NC).

Lors du dépannage, on constate que la capture du paquet eth0 à l'extrémité source est envoyée à VGW, mais lors de la capture du paquet à l'extrémité de destination, on constate que le shell encapsule l'IP NC 2 de destination , comme dans l'exemple :

 [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
Copier après la connexion

Confirmez les données Une fois le paquet passé via VGW, les statistiques des informations de capture de paquets sont lancées :

ECS A reçoit le trafic UDP via iPerf : iperf -c 10.182.83.13 -u -b 600m

ECS B reçoit via iPerf : iperf -u -s

capture les paquets à l'intérieur de l'instance.

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
Copier après la connexion

Capturez des paquets à deux emplacements 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
Copier après la connexion

Déployer des systèmes de flux dans ASW et LSW.

100.105.59.3:46728 -> 10.141.166.253:250
Copier après la connexion

Remarque : Étant donné que le shell du paquet de destination encapsule automatiquement l'adresse IP NC 1 de destination, le format de message du paquet de données côté VGW est : 100.105.59.3:46728 ->

Analyse basée sur les résultats de capture de paquets.

Perte/envoi de paquets ECS A : 171/510203

Envoi de paquets NC 1 eth0 : 510204

Envoi de paquets de statistiques de flux ASW et LSW : 510204

Paquet NC 2 eth0 reçu : 510204

Paquet ECS B reçu : 510204, capture 507442, abandonné par le noyau 2162

L'analyse ci-dessus localise la perte de paquets dans la pile de protocole d'instance et ajuste l'UDP interne Tailles de tampon de l'instance. Ajustez la pile réseau (Pile). La taille du tampon UDF par défaut est 212992 (208 Ko) et vous pouvez l'ajuster à 2097152 (2 Mo).

/proc/sys/net/core/rmem_default #默认的接收数据包内存大小
/proc/sys/net/core/rmem_max #最大的接收数据包内存大小
Copier après la connexion

Testez la perte de paquets UDP après ajustement.

Comment utiliser iPerf pour tester et dépanner la perte de paquets UDP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal