Eu recomendo a leitura do Roteamento avançado & amp; HOWTO de Controle de Tráfego , em particular os exemplos da taxa que limitam um único host ou netmask e < uma solução completa com QoS .
Essencialmente, você precisa fazer o seguinte:
- Marque os pacotes desse host específico na cadeia
PREROUTING
da tabelamangle
- Configurar algum controle de tráfego prioritário ou com limite de taxa
- Certifique-se de que os pacotes de mercado se enquadram na prioridade baixa resp. classe limitada
Não testado, mas algo nesse sentido (sinta-se à vontade para editar se você perceber um erro):
iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.666 -j MARK --set-mark 1
tc qdisc add dev ppp0 root handle 1: cbq avpkt 1000 bandwidth 10mbit
tc class add dev ppp0 parent 1: classid 1:1 cbq rate 512kbit \
allot 1500 prio 5 bounded isolated
tc filter add dev ppp0 parent 1: protocol ip prio 1 handle 1 fw classid 1:1
Observe que você não pode usar diretamente tc filter
para filtrar o IP desse host, pois o filtro tc se aplica após NAT, para que ele veja seu IP público, que não pode ser usado para diferenciar o pacote.
Normalmente, você limitaria os pacotes upstream de taxa, já que você tem o maior controle e, como em um link ADSL comum, o upstream é mais facilmente saturado pelo tráfego p2p. Se você quiser, também pode tentar limitar o downstream, descartando deliberadamente os pacotes. Você faria isso usando outra configuração de controle de tráfego, desta vez para pacotes encaminhados pelo dispositivo de rede local.