2009-10-10 8 views
5

Où puis-je apprendre à contrôler/interroger l'interface réseau sous Linux? Je souhaite obtenir des vitesses de téléchargement/téléchargement d'applications spécifiques et appliquer une limite de vitesse pour une application spécifique.Mise en forme du trafic sous Linux

Je voudrais particulièrement des informations qui peuvent m'aider à écrire une application de mise en forme du trafic en utilisant Python.

Répondre

6

Vous voulez la suite iproute2, dans lequel vous utilisez la commande tc. commandes tc ressemblent

tc class add dev eth2 parent 1: classid 1:1 htb rate 100Mbit ceil 100Mbit quantum 1600 

est ici an existing Python traffic-shaping application que iproute2 utilise.

+0

+1 pour les pointeurs python. – whatnick

6

Il est en fait assez difficile façonner par application à l'aide des outils du noyau Linux, à moins que l'application utilise des adresses IP spécifiques et/ou ports que vous pouvez rechercher des correspondances sur.

En supposant que c'est le cas, alors vous aurez besoin de lire sur iptables et en particulier fwmarks. Vous aurez également besoin de lire sur tc. En combinaison, ces deux outils peuvent faire ce que vous voulez. Le Linux Advanced Routing & Traffic Control est un bon point de départ.

En supposant que votre application n'utilise pas un ensemble prévisible de ports/adresses IP, vous devez utiliser un shaper d'espace utilisateur tel que Trickle. Cela s'insère entre l'application et le noyau et forme le trafic pour cette application dans l'espace utilisateur.

Je ne pense pas qu'il y ait des liaisons python direct pour l'un de ces outils, mais il serait simple de les utiliser de script python et simplement appeler directement les exécutables.

+1

iptables peut correspondre à uid/gid pour le trafic généré localement. Cela constitue un moyen pratique de travailler sur des applications spécifiques, à condition que vous ayez un certain contrôle sur la configuration utilisateur/groupe de l'environnement de déploiement. –

0

Y a-t-il une raison pour laquelle vous souhaitez utiliser python? Comme mentionné précédemment, il ne sera probablement transféré qu'à des outils déjà développés à cette fin. Toutefois, si vous regardez autour, vous pouvez trouver des choses telles que Click! modular router, XORP, et d'autres qui offrent une halte-accueil pour les choses que vous voulez faire - sans parler de toutes les suggestions déjà fournies (telles que iptables et tc)

+0

Il pourrait être pour la maintenabilité. Dans un magasin python, les autres utilisateurs seront plus productifs plus rapidement s'il existe un wrapper python. – Dave