Domanda

Dove posso conoscere il controllo / interrogare l'interfaccia di rete sotto Linux? Mi piacerebbe ottenere applicativi velocità di upload / download specifici, e far rispettare un limite di velocità per una specifica applicazione.

Mi piacerebbe piace particolarmente informazioni che possono aiutarmi a scrivere un'applicazione traffic shaping utilizzando Python.

È stato utile?

Soluzione

Si vuole la suite iproute2, in cui si utilizza il href="http://www.linuxfoundation.org/en/Net:Iproute2_examples" rel="nofollow noreferrer"> tc comando

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

Ecco un'applicazione traffico-shaping Python esistente che utilizza iproute2.

Altri suggerimenti

In realtà è molto difficile preannuncia per ogni applicazione utilizzando gli strumenti del kernel Linux, a meno che l'applicazione utilizza gli indirizzi e / o le porte IP specifici è possibile abbinare via.

Supponendo che è il caso, allora avrete bisogno di leggere su iptables ed in particolare fwmarks. Avrete anche bisogno di leggere su tc. In combinazione questi due strumenti possono fare quello che vuoi. Il Linux Advanced Routing & Traffic Control è un buon punto di partenza.

Supponendo che l'applicazione non fa uso di un insieme prevedibile di porte / indirizzi IP allora avrete bisogno di utilizzare uno shaper userspace come Trickle . Questo si inserisce tra l'applicazione e il kernel e dà forma al traffico per l'applicazione in userspace.

Non credo che ci siano i binding python dirette di uno di tali strumenti, ma sarebbe semplice script utilizzando Python e solo chiamando direttamente gli eseguibili.

C'è un motivo che si desidera utilizzare Python? Come già detto, è probabile che solo la mano-off per già sviluppato strumenti per questo scopo. Tuttavia, se si guarda intorno, si possono trovare cose come Click! modular router, XORP, e altri che forniscono un drop-in per le cose che vuoi fare - per non parlare di tutti i suggerimenti già previste (come iptables e tc)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top