+ Responder ao Tópico



  1. #1
    fabricio_
    Visitante

    Padrão Duvida HTB

    Como no HTB eu deixo uma classe com uma banda fixa sem que ela use banda de outras classes ???

  2. #2

    Padrão faça assim

    #!/bin/sh
    tc qdisc del dev eth0 root
    tc qdisc add dev eth0 root handle 1: htb default 50

    #CLASSE RAIZ 1 NAO USAR !!!
    tc class add dev eth0 parent 1: classid 1:1 htb rate 100kbps

    #CLASSES FILHAS O PESSOAL VAI NAVEGAR AQUI
    tc class add dev eth0 parent 1:1 classid 1:10 htb rate 8kbps
    tc class add dev eth0 parent 1:1 classid 1:20 htb rate 16kbps ceil 16kbps burst 2k
    tc class add dev eth0 parent 1:1 classid 1:30 htb rate 32kbps ceil 32kbps burst 2k
    tc class add dev eth0 parent 1:1 classid 1:40 htb rate 64kbps ceil 64kbps burst 2k
    tc class add dev eth0 parent 1:1 classid 1:50 htb rate 4kbps

    #NOVA CLASSE SÓ PARA EMAIL
    tc qdisc add dev eth0 root handle 2: htb default 10
    #CLASSE RAIZ 2 NAO USAR !!!
    tc class add dev eth0 parent 2: classid 2:1 htb rate 200kbps
    tc class add dev eth0 parent 2:1 classid 2:10 htb rate 200kbps ceil 200kbps burst 2k prio 0

    Pronto agora vc tem 2 classes uma que usa 100K e distribui conforme a sua necessidade outra que garante 200K com prioridade 0 !!!!

  3. #3
    fabricio_
    Visitante

    Padrão Duvida HTB

    ok entendi , vou fazer uns testes aqui
    mas vc poderia me explicar oq q significa o burst ?

  4. #4

    Padrão Posso sim

    A placa de rede do seu micro nao consegue mandar apenas 1 pacote de cada vez ela foi projetada para enviar centenas/ milhares de pacotes por segundo, para aproximar mais a velocidade de cada link virtual é usado o parametro burst visto que a combinação de rate e ceil não mensura instantaneamente o link.

    Isso tudo ai em cima para explicar isso:

    ARQUIVO DE 1MB DE DOWNLOAD SUA REGRA DIZ QUE O NEGO PODE FAZER NA VELOCIDADE MAXIMA DE 32Kbps

    Quando voce inicia o download ele da 64K cai em 1sec para 56K no 2sec cai para 36K e no 3sec fica em 32K.
    Isso porque o algoritimo do HTB demora alguns milisegundo para calcular qual a faixa real de download,banda permitida.

    Abração !

  5. #5
    fabricio_
    Visitante

    Padrão Re: Posso sim

    Entendi !!!
    Agora , fui fazer um teste do jeito que voce me ensinou ali em cima , e me retornou os seguintes erros :
    Código :
    + tc qdisc add dev eth0 root handle 2: htb default 10
    RTNETLINK answers: File exists
    + tc class add dev eth0 parent 2: classid 2:1 htb rate 500kbit ceil 500kbit
    RTNETLINK answers: No such file or directory
    + tc class add dev eth0 parent 2:1 classid 2:10 htb rate 500kbit ceil 500kbit burst 2k prio 0
    RTNETLINK answers: No such file or directory

    bom vou mostrar aqui oq eu to tentando e nao esta dando muito certo :
    EU estou tentando dividir a banda de 1mb , em 2 de 500k
    Código :
    tc qdisc add dev $DEV root handle 1: htb default 20
    # Cria uma classe raiz abaixo de 1: , denominada 1:1 , e com rate definido
    tc class add dev $DEV parent 1: classid 1:1 htb rate 1000kbit
     
    # Cria duas classes filhas da classe 1:1 , a quais dividem a banda
    tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${link_VPN}kbit ceil ${link_VPN}kbit
    tc class add dev $DEV parent 1:1 classid 1:20 htb rate ${link_OTH}kbit ceil ${link_OTH}kbit
     
    # Cria manipuladores sfq , que fazem a banda ser dividida corretamente
    tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
    tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
     
    tc filter add dev $DEV parent 1:0 protocol ip u32 \
       match ip src $ftp1 flowid 1:10
    tc filter add dev $DEV parent 1:0 protocol ip u32 \
       match ip src $ftp2 flowid 1:20
     
    tc filter add dev $DEV parent 1:0 protocol ip u32 \
       match ip dst $ftp1 flowid 1:10
    tc filter add dev $DEV parent 1:0 protocol ip u32 \
       match ip dst $ftp2 flowid 1:20

    Porem , quando faco o teste da propria maquina do QOS ele nao limita a banda .
    Fiz o teste fazendo 3 downloads juntos por um link , e um pelo outro , e pelo resultado ele esta dividindo a banda igualmente para todos .
    Nos status do tc (etc -s class show dev eth0) u vejo os pacotes sendo direcionados para as classes corretas , mas parece que ele nao esta limitando a banda .

    help?


    Citação Postado originalmente por wps
    A placa de rede do seu micro nao consegue mandar apenas 1 pacote de cada vez ela foi projetada para enviar centenas/ milhares de pacotes por segundo, para aproximar mais a velocidade de cada link virtual é usado o parametro burst visto que a combinação de rate e ceil não mensura instantaneamente o link.

    Isso tudo ai em cima para explicar isso:

    ARQUIVO DE 1MB DE DOWNLOAD SUA REGRA DIZ QUE O NEGO PODE FAZER NA VELOCIDADE MAXIMA DE 32Kbps

    Quando voce inicia o download ele da 64K cai em 1sec para 56K no 2sec cai para 36K e no 3sec fica em 32K.
    Isso porque o algoritimo do HTB demora alguns milisegundo para calcular qual a faixa real de download,banda permitida.

    Abração !

  6. #6

    Padrão VAmos la !

    vc nao tem nenhuma regra carregada ainda
    entao vamos fazer um script shell !!!!

    #!/bin/sh
    tc qdisc del dev eth0 root
    tc qdisc add dev eth0 root handle 1: htb default 50

    #CLASSE RAIZ NAO USAR !!!
    tc class add dev eth0 parent 1: classid 1:1 htb rate 100kbps

    #CLASSES FILHAS
    tc class add dev eth0 parent 1:1 classid 1:10 htb rate 8kbps
    tc class add dev eth0 parent 1:1 classid 1:20 htb rate 16kbps ceil 16kbps burst 2k
    tc class add dev eth0 parent 1:1 classid 1:30 htb rate 32kbps ceil 32kbps burst 2k
    tc class add dev eth0 parent 1:1 classid 1:40 htb rate 64kbps ceil 64kbps burst 2k
    tc class add dev eth0 parent 1:1 classid 1:50 htb rate 4kbps

    #VARIAS CONEXOES ULTILIZEM DE FORMA MAIS EQUILIBRADA POSSIVEL A REGRA
    tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
    tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10
    tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10
    tc qdisc add dev eth0 parent 1:40 handle 40: sfq perturb 10
    tc qdisc add dev eth0 parent 1:50 handle 50: sfq perturb 10

    #VAMOS LIMITAR 1 MAQUINA AGORA SÓ PARA TESTAR
    tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.1.3 flowid 1:40

  7. #7

    Padrão me chama no msn

    me chama no msn depois nois posta tudo aqui !