web-dev-qa-db-fra.com

Comment créer un trafic intense sur une liaison Ethernet à partir de la ligne de commande?

Il semble que je rencontre un problème de réseau lorsque l'un de mes serveurs transfère une grande quantité de données sur le lien réseau sur lequel il se trouve. Je suis sûr que par le passé, j’ai été capable de canaliser des données aléatoires vers une adresse IPv4 ou MAC donnée à partir de la ligne de commande pendant un laps de temps déterminé. C'est un moyen très simple de vérifier si la charge de trafic sur un lien spefici est à l'origine du problème.

Je ne suis pas inquiet à propos du calcul de la vitesse du lien, je voudrais juste essayer de saturer ou au moins de charger fortement (~ 100 Mbit/s) le lien. Pouvoir le faire facilement à partir d'une ligne de commande typique d'Ubuntu 16.04 avec des outils de base me permettrait facilement de passer en ssh sur une machine (mettre en place une session GNU Screen) et de cibler une autre machine. Je pourrais ensuite travailler à travers des liens ou des hôtes pour déterminer lequel d'entre eux (le cas échéant) déclencherait mon problème de mise en réseau.

1
TafT

Il est possible de faire cela en utilisant Netcat.

Sur la machine cible (qui recevra les données), configurez netcat pour recevoir les données sur un port (12345 dans l'exemple ci-dessous) et dirigez-le vers/dev/null./dev/null est utilisé car il devrait être le lieu le plus rapide pour envoyer les données. Si vous utilisez un fichier sur disque, il risque de ralentir le transfert.

nc -vvlnp 12345 >/dev/null

Maintenant, sur la machine source (qui enverra les données), configurez netcat pour transmettre un ensemble de données à la machine cible. Cela peut être/dev/zero ou/dev/random si vous voulez vous assurer qu'aucune compression n'est en cours. Dans l'exemple ci-dessous, 1M bit de données est envoyé 1k fois à la cible à l'adresse 10.10.0.2.

dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
1
TafT

Ceci peut être réalisé avec iperf. Plus de détails peuvent être trouvés ici https://www.freebsd.org/cgi/man.cgi?query=iperf&sektion=1&manpath=freebsd-release-ports . Il est pris en charge sur plusieurs plates-formes, y compris Windows, il ne devrait donc pas y avoir de problèmes avec différentes plates-formes.

0
Waqar Ahmed