61 votes

Comment limiter la bande passante sur une interface réseau Linux ?

Existe-t-il un moyen de limiter la bande passante d'une carte réseau sous Linux ? J'aimerais pouvoir simuler une connexion arbitrairement lente.

33voto

Michael Ratanapintha Points 11957

En netem module du noyau, contrôlé par iproute.

Vous devez compiler Netem avec le noyau :

Networking -->
   Networking Options -->
     QoS and/or fair queuing -->
        Network emulator

Une fois le module netem chargé, le tc d'iproute vous permet des choses comme :

tc qdisc add dev  tap0 root netem delay 50ms loss 50% 

(50 % de perte de paquets, retard supplémentaire de 50 ms)

28voto

Bernard Points 603

Côté client, c'est ça ?

ruissellement devrait faire ce que vous voulez. Si vous êtes sous Ubuntu (ou Debian, je pense), vous pouvez l'installer avec sudo apt-get install trickle et ensuite l'exécuter. trickle -s -d 10 -u 10 firefox (ou presque, je ne l'ai pas utilisé depuis un moment) ferait tourner firefox, en limitant sa vitesse de téléchargement et d'envoi à 10 kilobytes par seconde.

17voto

harry Points 601

J'ai trouvé un moyen d'empêcher ma boîte de manger toute la bande passante disponible sur le réseau en utilisant un outil appelé 'wondershaper' dans ubuntu. J'espère qu'il existe dans d'autres destros linux aussi. Je peux limiter la bande passante que mon ordinateur domestique linux peut consommer en utilisant la commande suivante.

sudo wondershaper eth0 1000 200

Cela limite le téléchargement à 1000 kilobits et l'uplaod à 200 kilobits. Reportez-vous aux pages de manuel de wondershaper pour plus d'informations/options.

8voto

Jason Olson Points 2752

Le NIST réalise un simulateur de réseau appelé NistNet.

http://snad.ncsl.nist.gov/nistnet/ (le lien semble mort)

http://cs.ecs.baylor.edu/~donahoo/tools/nistnet/

NistNet vous permet de créer un routeur qui émule une liaison de communication de votre choix.

Pour le fonctionnement le plus simple, vous l'avez sur une boîte avec deux NIC entre deux réseaux.

Par exemple, j'avais une application qui devait fonctionner sur une liaison satellite.

Les données peuvent circuler sur un lien de 2 Mbps avec une latence importante. Le contrôle devait passer par un lien de 128kbps, avec la même latence.

NistNet a aidé à faire fonctionner le tout à 128kbps.

En utilisant NistNet, j'ai pu simuler non seulement la bande passante, mais aussi la latence, et il peut aussi laisser tomber des paquets pour vous, simulant un lien occupé ou peu fiable.

Si vous voulez simuler une connexion abitraire, ne vous contentez pas de limiter la bande passante, augmentez aussi la latence.

N'oubliez pas non plus de fragmenter les paquets. Vous pouvez définir de petites MTU sur le lien bidon.

L'ajout de la gigue des paquets vous permettra de savoir si vous pouvez faire face à des paquets hors d'ordre.

4voto

J'ai personnellement utilisé façonneur de merveilles dans le passé pour cela, bien qu'il ait été écrit pour un cas d'utilisation opposé - tirer le meilleur parti de votre connexion ADSL.

Je vais devoir essayer les autres produits mentionnés ici.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X