2009-10-10 25 views
5

¿Dónde puedo obtener información sobre cómo controlar/interrogar la interfaz de red en Linux? Me gustaría obtener velocidades específicas de carga/descarga de aplicaciones y aplicar un límite de velocidad para una aplicación específica.Modelado de tráfico en Linux

Me gustaría especialmente la información que me puede ayudar a escribir una aplicación de configuración de tráfico con Python.

Respuesta

6

Desea el conjunto de aplicaciones iproute2, en el que utiliza el comando tc. comandos tc parecen

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

Aquí es an existing Python traffic-shaping application que utiliza iproute2.

+0

+1 para punteros de pitón. – whatnick

6

En realidad, es una forma bastante difícil por aplicación utilizando las herramientas del kernel de Linux, a menos que la aplicación utilice direcciones IP y/o puertos específicos con los que pueda coincidir.

Suponiendo que es el caso, tendrá que leer iptables y, en particular, fwmarks. También necesitará leer en tc. En combinación, esas dos herramientas pueden hacer lo que quieras. El Linux Advanced Routing & Traffic Control es un buen lugar para comenzar.

Suponiendo que su aplicación no usa un conjunto predecible de puertos/direcciones IP, entonces necesitará usar un modelador de espacio de usuario como Trickle. Esto se inserta entre la aplicación y el núcleo y da forma al tráfico para esa aplicación en el espacio de usuario.

No creo que haya ningún enlace directo de python para ninguna de esas herramientas, pero sería sencillo crear las secuencias de comandos utilizando python y simplemente llamar directamente a los ejecutables.

+1

iptables puede coincidir en uid/gid para el tráfico generado localmente. Eso constituye una manera conveniente de trabajar en aplicaciones específicas, siempre que tenga cierto control sobre la configuración del entorno de despliegue del usuario/grupo. –

0

¿Hay alguna razón por la que desee usar Python? Como se mencionó, es probable que solo se transfiera a herramientas ya desarrolladas para este fin. Sin embargo, si se mira alrededor, se pueden encontrar cosas como Click! modular router, XORP, y otros que proporcionan una gota en cosas que quieres hacer - por no hablar de todas las sugerencias ya previstas (tales como iptables y tc)

+0

Podría ser para mantenimiento. En una tienda de python, otros usuarios se volverán más productivos si hay un contenedor de Python. – Dave