Como configurar o controle de largura de banda por IP usando o TC?

4

Requisitos:

Existe um número arbitrário de usuários por grupo. Largura de banda para qualquer grupo em particular é de 1000kbps. A largura de banda de cada usuário em um grupo é de 70 kbps. A qualquer momento, nenhum usuário deve consumir mais de 70kbps de largura de banda. Estou usando tc & iptables & ipset.

ipset -L slowips

Name: slowips
Type: hash:ip
Revision: 1
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 240
References: 3
Members:
172.16.79.3
172.16.79.4

IPTABLES:

iptables -t mangle -I POSTROUTING -m set --match-set slowips dst -j CLASSIFY --set-class 1:12

Meu script para o TC:

#!/bin/bash
tc qdisc del dev eth0 root
tc qdisc del dev eth1 root

tc qdisc add dev eth0 parent root handle 1: hfsc default 11
tc class add dev eth0 parent 1: classid 1:1 hfsc sc rate 1000kbps ul rate 1000kbps
tc class add dev eth0 parent 1:1 classid 1:11 hfsc sc rate 1000kbps ul rate 1000kbps
tc class add dev eth0 parent 1:1 classid 1:12 hfsc sc rate 70kbps ul rate 70kbps

tc qdisc add dev eth0 parent 1:11 handle 11:1 pfifo
tc qdisc add dev eth0 parent 1:12 handle 12:1 pfifo

Com a configuração acima, o usuário único obtém 70kbps de largura de banda, quando outro usuário efetua login, a largura de banda de 70 kbps é dividida entre eles. O que eu realmente quero é que o usuário recém-logado tenha 70kbps de largura de banda, já que a laje é de 1000kbps.

    
por techiek7 30.03.2017 / 18:09

0 respostas