+ Responder ao Tópico



  1. #1
    blaizer
    Visitante

    Padrão 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á !!!

  2. #2
    redeprotegida
    Visitante

    Padrão Re: Controle de velocidade

    ow.. to no mesmo barco q vc, vc ja conseguiu algo??

  3. #3
    jrlinux
    Visitante

    Padrão 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.