Página 1 de 3 123 ÚltimoÚltimo
+ Responder ao Tópico



  1. #1

    Padrão Segredo ZPH

    Boa noite caro amigos. Venho mais uma vez recorrer a ajuda dos amigos. Sobre CacheFull. Tenho usado com sucesso com o CONNMARK:

    iptables -A OUTPUT -t mangle -j CONNMARK --restore-mark
    iptables -A OUTPUT -t mangle -m mark ! --mark 0 -j ACCEPT
    iptables -A OUTPUT -t mangle -m string --string 'X-Cache: HIT from' --algo kmp -j MARK --set-mark 6
    iptables -A OUTPUT -t mangle -j CONNMARK --save-mark

    Daí direciono para um classe de HTB e controlo por cliente a velocidade do acesso ao cache.

    Está funcionando bem. Mais gostaria de usar pelo ZPH no squid, mais não dá certo.

    No squid.conf:

    zph_local 0x60
    zph_mode tos
    zph_option 136
    zph_parent 0
    zph_sibling 0

    Classe de HTB:

    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip protocol 0x6 0xff match ip tos 0x10 0xff flowid 1:2

    Squid usado é o 2.7. Tem que fazer mais alguma coisa? Tem que aplicar o path no kernell?

    Grato a todos.

  2. #2

    Padrão

    Dá certo sim e funciona muito bem. Mas o squid não vem por padrão com o patch, tem que baixar e aplicar na mão . E também nao tem , ou tinha , para todas as versões. Se não me engano tinha para algumas da série 2.5 e 2.6 . Num lembro bem. Mas na pratica o é.

    - baixar os fontes do squid
    - baixar o patch no site. (que num lembro agora)
    - aplicar o patch
    - compilar o squid patcheado

    e alterar seu script htb e squid.conf

    Quando eu testei deu um pouco de trabalho pra por pra funcionar mas ficou beleza. mas como eu distribuo internet via rede sem fio, o tráfego na rede fica enorme devido ao fato de todo tráfego que vinha do cache nao ter controle de banda que, extrapolava os limites de tráfego do rádio , entao desisti do ZPH.



  3. #3
    MODERADOR-CHEFE Avatar de osmano807
    Ingresso
    Aug 2008
    Localização
    Araguari - Minas Gerais
    Posts
    1.985
    Posts de Blog
    5

    Padrão

    O 2.7 já vem com o patch por padrão. Eu acho que você só deveria marcar pacotes com o ZPH, nada de iptables, e depois verificar essa sua regra de QOS

  4. #4

    Padrão

    Citação Postado originalmente por ALVERNEPAIVA Ver Post
    Dá certo sim e funciona muito bem. Mas o squid não vem por padrão com o patch, tem que baixar e aplicar na mão . E também nao tem , ou tinha , para todas as versões. Se não me engano tinha para algumas da série 2.5 e 2.6 . Num lembro bem. Mas na pratica o é.

    - baixar os fontes do squid
    - baixar o patch no site. (que num lembro agora)
    - aplicar o patch
    - compilar o squid patcheado

    e alterar seu script htb e squid.conf

    Quando eu testei deu um pouco de trabalho pra por pra funcionar mas ficou beleza. mas como eu distribuo internet via rede sem fio, o tráfego na rede fica enorme devido ao fato de todo tráfego que vinha do cache nao ter controle de banda que, extrapolava os limites de tráfego do rádio , entao desisti do ZPH.
    O Squid 2.7 já tem o ZPH, não sendo necessário aplicar o path, apenas configurar no squid.conf. Porém fiz como postei, conforme a documentação mais não funcionou. Tem que aplicar alguma coisa no kernnel também? Configurei errado no squid.conf? No site do ZPH tem uns path´s para kernell.

    A questão do tráfego contornei limitando o cache full a 1 mega por usuário.
    Última edição por Josue Guedes; 25-01-2009 às 12:23.



  5. #5

    Padrão

    Citação Postado originalmente por osmano807 Ver Post
    O 2.7 já vem com o patch por padrão. Eu acho que você só deveria marcar pacotes com o ZPH, nada de iptables, e depois verificar essa sua regra de QOS
    Sim, foi como eu fiz, mais não funcionou ainda, atualmente estou usando a marcação pelo iptables e tá funcionando bem, a regra do QOS foi essa ai que postei, bom esse ai é o filtro, o que você me diz.

    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip protocol 0x6 0xff match ip tos 0x10 0xff flowid 1:2

    A 1:2 se subdivide em outras classes para cada ip de usuário a 1 mega cada um, está show, porém queria que os pacotes fossem marcados pelo ZPH.

  6. #6

    Padrão

    Citação Postado originalmente por Josue Guedes Ver Post
    O Squid 2.7 já tem o ZPH, não sendo necessário aplicar o path, apenas configurar no squid.conf. Porém fiz como postei, conforme a documentação mais não funcionou. Tem que aplicar alguma coisa no kernnel também? Configurei errado no squid.conf? No site do ZPH tem uns path´s para kernell.

    A questão do tráfego contornei limitando o cache full a 1 mega por usuário.

    Não, no kernel não precisa mexer, pelo menos quando eu testei. quanto a limitar a 1M , eu também testei e não ajudou muito pois o pessoal quando tem uma net muito rápida aumenta muito a vontade de navegar ai fica mais gente navegando e baixando arquivos a 1M. Pelo menos pra mim não ficou legal. Mas na intranet ficou ótimo, quase instantâneo a abertura dos sites.



  7. #7

    Padrão

    Boa noite a todos, parece que consegui fazer funcionar, tinha um erro na regra do filtro conforme postei, no squid.conf estava zph_local 0x60 e no filtro 0x10, sendo que deveria ser 0x60 conforme está no squid.conf, e no zph_parent coloquei 0x60, parece que está funcionando agora. Vou testar mais e posto os resultados.

  8. #8

    Padrão

    Josue Guedes pode me ajudar?

    estou com o squid 2.7 + iptables como quais regras coloco no squid e no htb para funcionar o cache full?


    Se puder me ajudar pois acho que tem 3 meses que estou atrás disso para o squid 2.7 e não acho nada...o colega aqui do fórum amaia estava me ajudando mas estou aguardando ele me responder...se puder passar o passo a passo aqui fico grato tanto do squid quanto do HTB para eu enteder as regras.


    na verdade minhas placas tem 100Mbps então queria colocar uma regra para baixar a 10Mbps arquivos de sites no cache e acelerar abertura de sites.Aguardo
    me add no msn se puder: [email protected]
    Última edição por lfernandosg; 26-01-2009 às 21:38.



  9. #9

    Padrão

    Citação Postado originalmente por lfernandosg Ver Post
    Josue Guedes pode me ajudar?

    estou com o squid 2.7 + iptables como quais regras coloco no squid e no htb para funcionar o cache full?


    Se puder me ajudar pois acho que tem 3 meses que estou atrás disso para o squid 2.7 e não acho nada...o colega aqui do fórum amaia estava me ajudando mas estou aguardando ele me responder...se puder passar o passo a passo aqui fico grato tanto do squid quanto do HTB para eu enteder as regras.


    na verdade minhas placas tem 100Mbps então queria colocar uma regra para baixar a 10Mbps arquivos de sites no cache e acelerar abertura de sites.Aguardo
    me add no msn se puder: [email protected]


    --------------------------------------------------------------------------------------------

    Olá, no iptables você não mexe. Apenas no squid e no seu script htb.

    primeiro o squid deve estar instalado e rodando normalmente, claro. depois você adiciona as seguintes linhas no seu squid:

    zph_local 60 --> esta linha é a que determina qual o valor que o squid vai marcar o pacote vindo do cache. eu uso o valor 60 (em decimal mesmo). é bom que você atribua um valor que ja não esteja sendo usado no seu firewall na tabela mangle pra não enviar pacotes indesejados para a classe que será designada pro zph.
    zph_mode tos
    zph_option 136
    zph_parent 0
    zph_sibling 0


    depois disso você vai criar uma classe no seu htb para classificar todo fluxo que tiver a marca 60 , pois elas, com certeza virão do cache. no meu caso está assim

    classe de 1Mb para onde os dados do zph serão desviadas
    /sbin/tc class add dev eth2 parent 1: classid 1:0010 htb rate 1Mbit prio 1
    agora o filtro que desviará o tráfego com a marca 60 para a classe 1:0010 (no meu caso)
    /sbin/tc filter add dev eth2 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:0010

    se você usar o script htb.init é so criar uma classe e usar a palavra chave TOS=60 para isso.
    lembrando que o script htb.init não vem por padrao com essa opcão. Tem que baixar o patch pra isso.

    Espero que clareado alguma coisa.

  10. #10

    Padrão

    certo muito obrigado e clarerou muito..vou te mostrar o script que uso hoje de hTB:

    essa é minha placa de acesso a rede interna:

    #!/bin/bash

    tc qdisc del dev eth1 root

    tc qdisc add dev eth1 root handle 1:0 htb default 50
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 1024kbit

    tc class add dev eth1 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth1 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth1 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth1 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth1 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral


    tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
    tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
    tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10
    tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 10
    tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 10


    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5060 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5061 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 10000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 20000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip sport 3389 0xffff flowid 1:30
    tc filter add dev eth1 parent 1:0 protocol ip prio 4 u32 match ip sport 80 0xffff flowid 1:40


    eu tenho 1mb de link dedicado embratel e preciso dividir o link em 512k para internet/terminal service e etc.. e 512k para nosso voip então fora o que está acima o que devo alterar para o download ficar com taxa de 10Mbps e acelerar as páginas de internet?

    sei que essa linha tem que ser alterada para a veloidade da placa de rede ficando mais ou menos assim:

    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 100mbit


    mas o restante o que devo acrescentar??se puder me ajudar pois essa parte de HTB não entendo muito pois esse scritp achei na net.E queria saber como acrescentar o path para o HTB que vc fala..pois instalei só o iproute e etc...



  11. #11

    Padrão

    Citação Postado originalmente por lfernandosg Ver Post
    certo muito obrigado e clarerou muito..vou te mostrar o script que uso hoje de hTB:

    essa é minha placa de acesso a rede interna:

    #!/bin/bash

    tc qdisc del dev eth1 root

    tc qdisc add dev eth1 root handle 1:0 htb default 50
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 1024kbit

    tc class add dev eth1 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth1 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth1 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth1 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth1 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral


    tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
    tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
    tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10
    tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 10
    tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 10


    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5060 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5061 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 10000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 20000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip sport 3389 0xffff flowid 1:30
    tc filter add dev eth1 parent 1:0 protocol ip prio 4 u32 match ip sport 80 0xffff flowid 1:40


    eu tenho 1mb de link dedicado embratel e preciso dividir o link em 512k para internet/terminal service e etc.. e 512k para nosso voip então fora o que está acima o que devo alterar para o download ficar com taxa de 10Mbps e acelerar as páginas de internet?

    sei que essa linha tem que ser alterada para a veloidade da placa de rede ficando mais ou menos assim:

    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 100mbit


    mas o restante o que devo acrescentar??se puder me ajudar pois essa parte de HTB não entendo muito pois esse scritp achei na net.E queria saber como acrescentar o path para o HTB que vc fala..pois instalei só o iproute e etc...

    Apesar de sua rede estar no padrão que , supostamente, pode alcaçar 100mbits esses valores só são alcançados em condições especiais , não quer dizer que ela vá trabalhar a 100mbits.
    se fosse comigo, primeiro eu alteraria a taxa da classe raiz para 10Mbits, que é 10% da taxa máxima da rede.

    esta linha que você colocou
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 10Mbit
    #!/bin/bash

    tc qdisc del dev eth1 root

    tc qdisc add dev eth1 root handle 1:0 htb default 50
    #----------------------alterar essa linha-------------------
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 10mbit

    tc class add dev eth1 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth1 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth1 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth1 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth1 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral
    #--------------adiciona essa classe para receber o tráfego do zph
    tc class add dev eth2 parent 1: classid 1:60 htb rate 5mbit prio 1 #ZPH


    tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
    tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
    tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10
    tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 10
    tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 10
    tc qdisc add dev eth1 parent 1:60 handle 60: sfq perturb 10

    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5060 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5061 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 10000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 20000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip sport 3389 0xffff flowid 1:30
    tc filter add dev eth1 parent 1:0 protocol ip prio 4 u32 match ip sport 80 0xffff flowid 1:40
    #-------------e finalmente o filtro que vai classificar o tráfego e jogar na classe certa
    tc filter add dev eth2 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:60



    feito isso não há motivo para nao funcionar. Para ver o tráfego na classe digite o seguinte comando:

    tc -s -d class show dev eth1

    que deverá retornar as estatísticas das classes nessa placa de rede. Algo como isso abaixo para cada classe pra ver se realmente está tendo tráfego na classe 1:60 verique os números que ficam a frente do parâmetro Send . Se ficar em zero é por que não há tráfego sendo desviado pra ela.

    class htb 1:60 root prio 5 quantum 1000 rate 512000bit ceil 512000bit burst 1855b/8 mpu 0b overhead 0b cburst 1855b/8 mpu 0b overhead 0b level 0
    Sent 1233769731 bytes 1207747 pkt (dropped 0, overlimits 0 requeues 0)
    rate 187504bit 26pps backlog 0b 0p requeues 0
    lended: 1207747 borrowed: 0 giants: 0
    tokens: 1408 ctokens: 1408

  12. #12

    Padrão

    Citação Postado originalmente por ALVERNEPAIVA Ver Post
    Apesar de sua rede estar no padrão que , supostamente, pode alcaçar 100mbits esses valores só são alcançados em condições especiais , não quer dizer que ela vá trabalhar a 100mbits.
    se fosse comigo, primeiro eu alteraria a taxa da classe raiz para 10Mbits, que é 10% da taxa máxima da rede.

    esta linha que você colocou
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 10Mbit
    #!/bin/bash

    tc qdisc del dev eth1 root

    tc qdisc add dev eth1 root handle 1:0 htb default 50
    #----------------------alterar essa linha-------------------
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 10mbit

    tc class add dev eth1 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth1 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth1 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth1 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth1 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral
    #--------------adiciona essa classe para receber o tráfego do zph
    tc class add dev eth2 parent 1: classid 1:60 htb rate 5mbit prio 1 #ZPH


    tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
    tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
    tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10
    tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 10
    tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 10
    tc qdisc add dev eth1 parent 1:60 handle 60: sfq perturb 10

    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5060 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5061 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 10000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 20000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip sport 3389 0xffff flowid 1:30
    tc filter add dev eth1 parent 1:0 protocol ip prio 4 u32 match ip sport 80 0xffff flowid 1:40
    #-------------e finalmente o filtro que vai classificar o tráfego e jogar na classe certa
    tc filter add dev eth2 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:60



    feito isso não há motivo para nao funcionar. Para ver o tráfego na classe digite o seguinte comando:

    tc -s -d class show dev eth1

    que deverá retornar as estatísticas das classes nessa placa de rede. Algo como isso abaixo para cada classe pra ver se realmente está tendo tráfego na classe 1:60 verique os números que ficam a frente do parâmetro Send . Se ficar em zero é por que não há tráfego sendo desviado pra ela.

    class htb 1:60 root prio 5 quantum 1000 rate 512000bit ceil 512000bit burst 1855b/8 mpu 0b overhead 0b cburst 1855b/8 mpu 0b overhead 0b level 0
    Sent 1233769731 bytes 1207747 pkt (dropped 0, overlimits 0 requeues 0)
    rate 187504bit 26pps backlog 0b 0p requeues 0
    lended: 1207747 borrowed: 0 giants: 0
    tokens: 1408 ctokens: 1408


    Corrigindo pois eu coloquei a interface eth2 nas linhas que adicionei e esta é a minha interface. No seu caso eth1.
    Agora corrigido.



    #!/bin/bash

    tc qdisc del dev eth1 root

    tc qdisc add dev eth1 root handle 1:0 htb default 50
    #----------------------alterar essa linha-------------------
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 10mbit

    tc class add dev eth1 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth1 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth1 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth1 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth1 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral
    #--------------adiciona essa classe para receber o tráfego do zph
    tc class add dev eth1 parent 1: classid 1:60 htb rate 5mbit prio 1 #ZPH


    tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
    tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
    tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10
    tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 10
    tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 10
    tc qdisc add dev eth1 parent 1:60 handle 60: sfq perturb 10

    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5060 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5061 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 10000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 20000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip sport 3389 0xffff flowid 1:30
    tc filter add dev eth1 parent 1:0 protocol ip prio 4 u32 match ip sport 80 0xffff flowid 1:40
    #-------------e finalmente o filtro que vai classificar o tráfego e jogar na classe certa
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:60



  13. #13

    Padrão

    cara nem sei como te agradecer mas não sei se ficou correto olha o que fiz:

    no script da placa de rede interna coloquei o script que vc passou:

    #!/bin/bash

    tc qdisc del dev eth1 root

    tc qdisc add dev eth1 root handle 1:0 htb default 50
    #----------------------alterar essa linha-------------------
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 10mbit

    tc class add dev eth1 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth1 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth1 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth1 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth1 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral
    #--------------adiciona essa classe para receber o tr�fego do zph
    tc class add dev eth1 parent 1: classid 1:60 htb rate 5mbit prio 1 #ZPH


    tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
    tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
    tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10
    tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 10
    tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 10
    tc qdisc add dev eth1 parent 1:60 handle 60: sfq perturb 10

    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5060 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5061 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 10000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 20000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip sport 3389 0xffff flowid 1:30
    tc filter add dev eth1 parent 1:0 protocol ip prio 4 u32 match ip sport 80 0xffff flowid 1:40
    #-------------e finalmente o filtro que vai classificar o tr�fego e jogar na classe certa
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:60


    depois no squid.conf adicionei as linhas:

    #ZPH cache FULL
    zph_mode tos
    zph_option 136
    zph_parent 0
    zph_sibling 0


    rodei os scripts...estou baixando um arquivo para ver depois com qual velocidade ele vai ser baixado mas nos testes que vc passou o sent está me "0"

    class htb 1:60 root leaf 60: prio 1 quantum 62500 rate 5000Kbit ceil 5000Kbit burst 1600b/8 mpu 0b overhead 0b cburst 1600b/8 mpu 0b overhead 0b level 0
    Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
    rate 0bit 0pps backlog 0b 0p requeues 0
    lended: 0 borrowed: 0 giants: 0
    tokens: 2500 ctokens: 2500

    nas outras classes tem valores na frente do sent mas na 1.60 não tem...o que pode estar faltando? outra coisa na placa de rede externa(recebe o ip valido da embratel) precisa colocar algo?

  14. #14

    Padrão

    Faltou o ZPH_LOCAL ai no squid.conf. Aqui está trabalhando bem, minhas configurações são tipo essa sua mesmo. Porém tenho sub-classes dividindo a banda do cache full para cada usuário.



  15. #15

    Padrão

    agora acho que está do jeito que vc passou:

    #ZPH cache FULL
    zph_mode tos
    zph_option 136
    zph_parent 0
    zph_sibling 0
    zph_local 0x60


    e no HTB:

    #!/bin/bash

    tc qdisc del dev eth1 root

    tc qdisc add dev eth1 root handle 1:0 htb default 50
    #----------------------alterar essa linha-------------------
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 10mbit

    tc class add dev eth1 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth1 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth1 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth1 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth1 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral
    #--------------adiciona essa classe para receber o tr�fego do zph
    tc class add dev eth1 parent 1: classid 1:60 htb rate 5mbit prio 1 #ZPH


    tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
    tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
    tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10
    tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 10
    tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 10
    tc qdisc add dev eth1 parent 1:60 handle 60: sfq perturb 10

    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5060 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5061 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 10000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 20000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip sport 3389 0xffff flowid 1:30
    tc filter add dev eth1 parent 1:0 protocol ip prio 4 u32 match ip sport 80 0xffff flowid 1:40
    #-------------e finalmente o filtro que vai classificar o tr�fego e jogar na classe certa
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:60


    mas os testes continuam com o sent zerado...e baixei um arquivo para testar..limpei o cache do navegador e ele foi baixado na mesma velocidade da internet 49KB/s

    o que pode estar faltando?meu squid é autendicado não sei se isso pode interferir mas acho que não!se puder me ajudar...preciso colocar algo no script da placa externa de rede?

    está assim meu script:


    #!/bin/bash

    tc qdisc del dev eth0 root

    tc qdisc add dev eth0 root handle 1:0 htb default 50
    tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1024kbit

    tc class add dev eth0 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth0 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth0 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth0 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth0 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral


    tc qdisc add dev eth0 parent 1:10 handle 10: pfifo limit 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


    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 5060 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 5061 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 10000 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 20000 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32 match ip dport 53 0xffff flowid 1:20
    tc filter add dev eth0 parent 1:0 protocol ip prio 3 u32 match ip dport 3389 0xffff flowid 1:30
    tc filter add dev eth0 parent 1:0 protocol ip prio 4 u32 match ip dport 80 0xffff flowid 1:40

    não alterei nada!!

  16. #16

    Padrão

    Citação Postado originalmente por lfernandosg Ver Post
    agora acho que está do jeito que vc passou:

    #ZPH cache FULL
    zph_mode tos
    zph_option 136
    zph_parent 0
    zph_sibling 0
    zph_local 0x60


    e no HTB:

    #!/bin/bash

    tc qdisc del dev eth1 root

    tc qdisc add dev eth1 root handle 1:0 htb default 50
    #----------------------alterar essa linha-------------------
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 10mbit

    tc class add dev eth1 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth1 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth1 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth1 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth1 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral
    #--------------adiciona essa classe para receber o tr�fego do zph
    tc class add dev eth1 parent 1: classid 1:60 htb rate 5mbit prio 1 #ZPH


    tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
    tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
    tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10
    tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 10
    tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 10
    tc qdisc add dev eth1 parent 1:60 handle 60: sfq perturb 10

    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5060 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5061 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 10000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 20000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip sport 3389 0xffff flowid 1:30
    tc filter add dev eth1 parent 1:0 protocol ip prio 4 u32 match ip sport 80 0xffff flowid 1:40
    #-------------e finalmente o filtro que vai classificar o tr�fego e jogar na classe certa
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:60


    mas os testes continuam com o sent zerado...e baixei um arquivo para testar..limpei o cache do navegador e ele foi baixado na mesma velocidade da internet 49KB/s

    o que pode estar faltando?meu squid é autendicado não sei se isso pode interferir mas acho que não!se puder me ajudar...preciso colocar algo no script da placa externa de rede?

    está assim meu script:


    #!/bin/bash

    tc qdisc del dev eth0 root

    tc qdisc add dev eth0 root handle 1:0 htb default 50
    tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1024kbit

    tc class add dev eth0 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth0 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth0 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth0 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth0 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral


    tc qdisc add dev eth0 parent 1:10 handle 10: pfifo limit 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


    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 5060 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 5061 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 10000 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 20000 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32 match ip dport 53 0xffff flowid 1:20
    tc filter add dev eth0 parent 1:0 protocol ip prio 3 u32 match ip dport 3389 0xffff flowid 1:30
    tc filter add dev eth0 parent 1:0 protocol ip prio 4 u32 match ip dport 80 0xffff flowid 1:40

    não alterei nada!!

    Veja bem uma coisa:

    60 e 0x60 são coisas diferentes, usam bases diferentes. 60 está expresso em base(10) e 0x60 está expresso em base(16) hexadecimal.
    Então se você puser no squid :

    zph_local 0x60, você tem que colocar também no htb.



  17. #17

    Padrão

    Citação Postado originalmente por lfernandosg Ver Post
    agora acho que está do jeito que vc passou:

    #ZPH cache FULL
    zph_mode tos
    zph_option 136
    zph_parent 0
    zph_sibling 0
    zph_local 0x60


    e no HTB:

    #!/bin/bash

    tc qdisc del dev eth1 root

    tc qdisc add dev eth1 root handle 1:0 htb default 50
    #----------------------alterar essa linha-------------------
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 10mbit

    tc class add dev eth1 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth1 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth1 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth1 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth1 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral
    #--------------adiciona essa classe para receber o tr�fego do zph
    tc class add dev eth1 parent 1: classid 1:60 htb rate 5mbit prio 1 #ZPH


    tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
    tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
    tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10
    tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 10
    tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 10
    tc qdisc add dev eth1 parent 1:60 handle 60: sfq perturb 10

    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5060 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5061 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 10000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 20000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip sport 3389 0xffff flowid 1:30
    tc filter add dev eth1 parent 1:0 protocol ip prio 4 u32 match ip sport 80 0xffff flowid 1:40
    #-------------e finalmente o filtro que vai classificar o tr�fego e jogar na classe certa
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:60


    mas os testes continuam com o sent zerado...e baixei um arquivo para testar..limpei o cache do navegador e ele foi baixado na mesma velocidade da internet 49KB/s

    o que pode estar faltando?meu squid é autendicado não sei se isso pode interferir mas acho que não!se puder me ajudar...preciso colocar algo no script da placa externa de rede?

    está assim meu script:


    #!/bin/bash

    tc qdisc del dev eth0 root

    tc qdisc add dev eth0 root handle 1:0 htb default 50
    tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1024kbit

    tc class add dev eth0 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth0 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth0 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth0 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth0 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral


    tc qdisc add dev eth0 parent 1:10 handle 10: pfifo limit 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


    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 5060 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 5061 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 10000 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 20000 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32 match ip dport 53 0xffff flowid 1:20
    tc filter add dev eth0 parent 1:0 protocol ip prio 3 u32 match ip dport 3389 0xffff flowid 1:30
    tc filter add dev eth0 parent 1:0 protocol ip prio 4 u32 match ip dport 80 0xffff flowid 1:40

    não alterei nada!!

    Mas você precisa adicionar a regra que filtra o conteudo que vem do cache. se está assim não vai funcionar. Seu script htb está faltando esta linha no final

    #-------------e finalmente o filtro que vai classificar o tr�fego
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:60

    perceba o trecho onde vai filtrar o material vindo com a marca (match ip tos 60) está em decimal e não 0x60. E você disse que botou zph_local 0x60. Então você precisa trocar, ou no squid pra ficar zph_local 60 ou no filtro:
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:60.

    Feito isso , é so botar pra funcionar e vê o trafego na classe sair do zero.

  18. #18

    Padrão

    Lembre-se também de criar a classe do Cache full, no exemplo que o amigo te deu você tem que criar a classe 1:60, e setar a velocidade do cache para ela, se for cabo pode colocar 100mbits

    tc class add dev eth0 parent 1:0 classid 1:60 htb rate 100mbit

    recomendo uma classe a parte:

    tc class add dev eth0 parent 1:2 classid 1:2 htb rate 100mbit

    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:2 ......(se no squid estiver 60)

    Dessa maneira o cache full vai ficar a parte do seu controle ai. Essa dica é quente hein!

    Você poderá criar sub-classes da classe 1:2 controlando o conteúdo cache para cada host.

    Se tiver dúvidas recomendo um leitura para você dominar esse esquema de classes de HTB. Este controle na minha opnião é o melhor.




  19. #19

    Padrão

    blz..fiz a alteração no squid de 0x60 para 60 agora na placa eth1 eu já tinha colocado a última linha do filtro nos outros scripts que tinha te passado..só não coloquei na eth0:

    #!/bin/bash

    tc qdisc del dev eth1 root

    tc qdisc add dev eth1 root handle 1:0 htb default 50
    #----------------------alterar essa linha-------------------
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 10mbit

    tc class add dev eth1 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth1 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth1 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth1 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth1 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral
    #--------------adiciona essa classe para receber o tr�fego do zph
    tc class add dev eth1 parent 1: classid 1:60 htb rate 5mbit prio 1 #ZPH


    tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
    tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
    tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10
    tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 10
    tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 10
    tc qdisc add dev eth1 parent 1:60 handle 60: sfq perturb 10

    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5060 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5061 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 10000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 20000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip sport 3389 0xffff flowid 1:30
    tc filter add dev eth1 parent 1:0 protocol ip prio 4 u32 match ip sport 80 0xffff flowid 1:40
    =>olha ela aqui#-------------e finalmente o filtro que vai classificar o tr�fego e jogar na classe certa
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:60

    agora na placa eth0:
    #!/bin/bash

    tc qdisc del dev eth0 root

    tc qdisc add dev eth0 root handle 1:0 htb default 50
    tc class add dev eth0 parent 1:2 classid 1:2 htb rate 100mbit


    tc class add dev eth0 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth0 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth0 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth0 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth0 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral
    =>está certo?
    tc class add dev eth0 parent 1:2 classid 1:2 htb rate 100mbit prio 1 #ZPH


    tc qdisc add dev eth0 parent 1:10 handle 10: pfifo limit 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
    =>está certo?
    tc qdisc add dev eth0 parent 1:2 handle 2: sfq perturb 10


    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 5060 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 5061 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 10000 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 20000 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32 match ip dport 53 0xffff flowid 1:20
    tc filter add dev eth0 parent 1:0 protocol ip prio 3 u32 match ip dport 3389 0xffff flowid 1:30
    tc filter add dev eth0 parent 1:0 protocol ip prio 4 u32 match ip dport 80 0xffff flowid 1:40
    =>está certo?
    tc filter add dev eth0 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:2


    onde coloquei "está certo?" ainda não sei se está certo...e colouqei o 60 no squid.conf

    como vc pediu mas ela não aparece no sent do eth0 e no sent do eth1 ainda continua zerada...

    class htb 1:60 root leaf 60: prio 1 quantum 62500 rate 5000Kbit ceil 5000Kbit burst 1600b/8 mpu 0b overhead 0b cburst 1600b/8 mpu 0b overhead 0b level 0
    Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
    rate 0bit 0pps backlog 0b 0p requeues 0
    lended: 0 borrowed: 0 giants: 0
    tokens: 2500 ctokens: 2500

    class htb 1:2 root leaf 2: prio 0 quantum 200000 rate 100000Kbit ceil 100000Kbit burst 1600b/8 mpu 0b overhead 0b cburst 1600b/8 mpu 0b overhead 0b level 0
    Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
    rate 0bit 0pps backlog 0b 0p requeues 0
    lended: 0 borrowed: 0 giants: 0
    tokens: 125 ctokens: 125



    desde já agradeço a ajuda!

  20. #20

    Padrão

    Citação Postado originalmente por lfernandosg Ver Post
    blz..fiz a alteração no squid de 0x60 para 60 agora na placa eth1 eu já tinha colocado a última linha do filtro nos outros scripts que tinha te passado..só não coloquei na eth0:

    #!/bin/bash

    tc qdisc del dev eth1 root

    tc qdisc add dev eth1 root handle 1:0 htb default 50
    #----------------------alterar essa linha-------------------
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 10mbit

    tc class add dev eth1 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth1 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth1 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth1 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth1 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral
    #--------------adiciona essa classe para receber o tr�fego do zph
    tc class add dev eth1 parent 1: classid 1:60 htb rate 5mbit prio 1 #ZPH


    tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
    tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
    tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10
    tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 10
    tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 10
    tc qdisc add dev eth1 parent 1:60 handle 60: sfq perturb 10

    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5060 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5061 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 10000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 20000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip sport 3389 0xffff flowid 1:30
    tc filter add dev eth1 parent 1:0 protocol ip prio 4 u32 match ip sport 80 0xffff flowid 1:40
    =>olha ela aqui#-------------e finalmente o filtro que vai classificar o tr�fego e jogar na classe certa
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:60

    agora na placa eth0:
    #!/bin/bash

    tc qdisc del dev eth0 root

    tc qdisc add dev eth0 root handle 1:0 htb default 50
    tc class add dev eth0 parent 1:2 classid 1:2 htb rate 100mbit


    tc class add dev eth0 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
    tc class add dev eth0 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
    tc class add dev eth0 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
    tc class add dev eth0 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
    tc class add dev eth0 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral
    =>está certo?
    tc class add dev eth0 parent 1:2 classid 1:2 htb rate 100mbit prio 1 #ZPH


    tc qdisc add dev eth0 parent 1:10 handle 10: pfifo limit 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
    =>está certo?
    tc qdisc add dev eth0 parent 1:2 handle 2: sfq perturb 10


    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 5060 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 5061 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 10000 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 20000 0xffff flowid 1:10
    tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32 match ip dport 53 0xffff flowid 1:20
    tc filter add dev eth0 parent 1:0 protocol ip prio 3 u32 match ip dport 3389 0xffff flowid 1:30
    tc filter add dev eth0 parent 1:0 protocol ip prio 4 u32 match ip dport 80 0xffff flowid 1:40
    =>está certo?
    tc filter add dev eth0 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:2


    onde coloquei "está certo?" ainda não sei se está certo...e colouqei o 60 no squid.conf

    como vc pediu mas ela não aparece no sent do eth0 e no sent do eth1 ainda continua zerada...

    class htb 1:60 root leaf 60: prio 1 quantum 62500 rate 5000Kbit ceil 5000Kbit burst 1600b/8 mpu 0b overhead 0b cburst 1600b/8 mpu 0b overhead 0b level 0
    Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
    rate 0bit 0pps backlog 0b 0p requeues 0
    lended: 0 borrowed: 0 giants: 0
    tokens: 2500 ctokens: 2500

    class htb 1:2 root leaf 2: prio 0 quantum 200000 rate 100000Kbit ceil 100000Kbit burst 1600b/8 mpu 0b overhead 0b cburst 1600b/8 mpu 0b overhead 0b level 0
    Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
    rate 0bit 0pps backlog 0b 0p requeues 0
    lended: 0 borrowed: 0 giants: 0
    tokens: 125 ctokens: 125



    desde já agradeço a ajuda!

    A interface eth0 é a que vai pra internet? se for não vai fazer diferença pois o htb na forma que está configurado só está controlando tráfego de saida. No caso da interface eth1 (download) e , se for o caso eth0 ( upload). Lembrando que se você tiver usando NAT (MASCARADE) não vai ser possível fazer controle de banda com htb a não ser marcando os pacotes -claro - , mesmo porque o seu squid não deverá funcionar pra receber solicitações vindas da internet. Eu acredito pelo menos. Para fazer controle de entrada com o htb você precisaria usar um lance chamado IMQ ou alguma coisa do estilo. Existem algumas opções. Mas isso não vem ao caso.

    altere essa linha de :
    tc class add dev eth1 parent 1: classid 1:60 htb rate 5mbit prio 1 #ZPH
    para:
    tc class add dev eth1 parent 1:1 classid 1:60 htb rate 5mbit prio 1 #ZPH

    só mais uma coisa: você ja confirmou o funcionamento do squid? fez testes pra ver se o squid está recebendo mesmo o tráfego que vem da porta 80? Foi feito o redirecionamento da porta 80 pra porta do squid? se você negar o acesso pra todos no squid aparece a mensagem de erro do squid na máquina do cliente?

    Fora isso , parece tudo normal com sua configuraçao, tirando a última linha que mensionei acima era pra estar tudo normal.
    esperimente ai e dê retorno.
    faça um teste assim:

    #tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5060 0xffff flowid 1:10
    #tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5061 0xffff flowid 1:10
    #tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 10000 0xffff flowid 1:10
    #tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 20000 0xffff flowid 1:10
    tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip sport 3389 0xffff flowid 1:30
    tc filter add dev eth1 parent 1:0 protocol ip prio 4 u32 match ip sport 80 0xffff flowid 1:40
    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 60 0xff flowid 1:10

    desviando o tráfego pra essa classe 1:10 pra confirmar se o defeito está na configuração e comentando as linhas que vão pra esta classe. As alteraçoes estao em negrito.