O módulo de cota iptables também pode ser bastante útil.
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:
Qual é a melhor maneira de fazer isso?
O módulo de cota iptables também pode ser bastante útil.
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.
Tags networking bandwidth traffic linux