limite máximo de download

4

Estou escrevendo software para gerenciamento de largura de banda no Linux. Eu uso TC para modelagem de largura de banda e funcionou bem. Eu quero limitar a largura de banda do usuário por um período de tempo. Por exemplo:

  • Para o usuário 1, 100 MB em uma semana

Qual é a melhor maneira de fazer isso?

    
por hamedsh 30.07.2010 / 18:03

2 respostas

3

O módulo de cota iptables também pode ser bastante útil.

    
por 31.07.2010 / 17:59
6

Você pode adicionar uma regra iptables para cada IP e usá-la para contar o tráfego que passou pela regra. Basta adicionar 2 regras para cada IP:

 iptables -A FORWARD -s <ip>
 iptables -A FORWARD -d <ip>

E então você pode obter os resultados com iptables -nv -L FOWARD que retornará algo assim:

# iptables -nvL FORWARD
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      virbr0  0.0.0.0/0            192.168.122.0/24    state RELATED,ESTABLISHED

Este é zero, mas a coluna bytes vai te dar o que você quer, eu juro:)

Depois disso, tudo o que você precisa é de um trabalho cron para salvar esses valores e verificar se eles estão acima dos bytes alocados daquela semana, altere as regras para bloquear o tráfego ou use tc para limitar sua largura de banda, ou qualquer outra coisa.

    
por 30.07.2010 / 18:46