- Controle de velocidade
+ Responder ao Tópico
-
Controle de velocidade
bom tenho um servidor que está rodando um pppoe-server .. estou com um grande problema com ele
quando um usuario loga na rede ele atribui a interface pppX para o user...
nao consigo fazer o controle da velocidade dele por esse motivo .. pois pelo cbq ele só aceita controlar quando você especifica uma interface ... por HTB estou tentando mas estou meio perdido no assunto ainda ..
alguem poderia me dizer como fazer isso .. ou dizer um script simples em htb para controlar isso por ip .
ou algum controle de banda que seja por ip e nao precise dizer a interface de onde ele vem ..
Obrigado desde já !!!
-
Re: Controle de velocidade
ow.. to no mesmo barco q vc, vc ja conseguiu algo??
-
Re: Controle de velocidade
vcs terão de usar os arquivos /etc/ppp/ip-up e ip-down.
Esses arquivos saum executados sempre que uma conexão ppp eh estabelecida.
vo forncer o meu ip-up:
#!/bin/bash
#
#Primeiro, o script coleta as variáveis passadas pelo PPPD.
#interface= o numero da interface pppx que o cliente usa pra se conectar ao server
#remoteIP= o ip do cliente
#download= a velocidade setada para o download
interface=$1
remoteIP=$5
download=`grep Download /var/run/radattr.$interface | awk '{ print $3; }'`
download_8=`expr $download / 8`
upload=`grep Upload /var/run/radattr.$interface | awk '{ print $3; }'`
upload_metade=`expr $upload / 2`
contamark=`echo $interface | cut -c 4-99`
mark=`expr $contamark + 500`
mark2=`expr $contamark + 510`
mark2_1=`expr $contamark + 511`
TC="/sbin/tc -b"
UP="eth0"
IPT="/usr/sbin/iptables"
link=256
link_8=`expr 256 / 8`
#Essa linha cria um arquivo de log para a interface com os dados básico.
#util para debug das variáveis.
echo "PPP started at $(date):
interface = $interface
Remote IP = $remoteIP
download = $download
download_8= $download_8
upload = $upload
upload_metade = $upload_metade
mark = $mark
mark2 = $mark2
mark2_1 = $mark2_1
link_8 = $link_8
" >/tmp/$interface
echo "$download" > /tmp/$interface.download
echo "$upload" > /tmp/$interface.upload
echo "$mark" > /tmp/$interface.mark
#Agora setamos o controle de banda efetivamente
#através do htb
#----
# DOWNLOAD
#----
/sbin/tc qdisc add dev $interface root handle 1: htb default 10
/sbin/tc class add dev $interface parent 1: classid 1:1 htb rate 12500kbps ceil 12500kbps burst 2k quantum 1536
/sbin/tc class add dev $interface parent 1:1 classid 1:0x10 htb rate 1kbps ceil 1kbps burst 2k quantum 1536
/sbin/tc qdisc add dev $interface parent 1:0x10 handle 0x10: pfifo limit 5
/sbin/tc class add dev $interface parent 1:1 classid 1:0x20 htb rate "$link_8"kbps ceil "$link_8"kbps burst 2k prio 1 quantum 1536
/sbin/tc class add dev $interface parent 1:0x20 classid 1:0x21 htb rate "$download_8"kbps ceil "$download_8"kbps burst 2k prio 1 quantum 1500
/sbin/tc filter add dev $interface protocol ip parent 1:0 prio 1 u32 match ip dst "$remoteIP"/32 flowid 1:0x21
/sbin/tc qdisc add dev $interface parent 1:0x21 handle 0x21: pfifo limit 5
esse script pega as variaveis da conexãop logo qwue o ppp eh acionadoe ja cria as regras para o usuário. Note que vc deve informar a velocidade pela tabela radreply.
crie kmais um campo com o nome do usuario que vc deseja controlar a banda....
e usando o Reply-message vc seta no valor "Download 256" por exemplo.
e deixe o ip fixo tb.