+ Responder ao Tópico



  1. #1

    Padrão cache full funcionando..mas preciso de ajuda com HTB

    émo seguinte estou montando outro servidor com cache full funcionando mas a única coisa que o cliente me pediu é para deixar a internet sem QoS só fazendo cache...isso é, ele não que limitar nada então queria saber como fazer para deixar os 1mb dele total para navegação sem limitar mais para nada....


    Uso squid + iptables + htb+tc


    segue abaixo o scritp da placa de rede interna que uso na empresa com Qos para algumas portas:

    #!/bin/bash

    tc qdisc del dev eth1 root

    tc qdisc add dev eth1 root handle 1:0 htb default 40
    #----------------------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 # portas 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 512kbit prio 4 # HTTP
    #--------------adiciona essa classe para receber o tr�fego do zph
    tc class add dev eth1 parent 1:1 classid 1:50 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 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 0x60 0xff flowid 1:50

    e placa externa:

    #!/bin/bash

    tc qdisc del dev eth0 root

    tc qdisc add dev eth0 root handle 1:0 htb default 440
    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 # portas cameras
    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 512kbit prio 4 # HTTP


    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 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



    então nesses scripts acima uso limitações para algumas coisas juntamente como cache full...agora se eu quiser deixar a navegação para a internet liberando todo o link que é de 1mb como faço? que porta coloco? a do squid? a porta 80?


    se alguém puder me ajudar pois tenho que fazer isso até amanhã.

  2. #2

    Padrão

    Bom dia lfernandosg.

    Cara desculpe se não entendi tua necessidade direito e estou pensando de forma simplista, mas se não queres fazer controle de tráfego basta não criar regra alguma de qos com tc + htb, simplesmente deixar o squid rodando e direcionar o tráfego da porta 80 para ele, pois sem controle de tráfego os computadores da rede interna vão receber o que estiver em cache na velocidade máxima possível pela infraestrutura de rede.

    Abraço

  3. #3

    Padrão

    Flávio,

    obrigado por responder mas o que quero é deixar sem controle de banda mas preciso das regras do cache full então não sei como faço para deixar somente o cache full pensei em fazer o seguinte mas não sei se está correto:

    na placa de rede interna:


    #!/bin/bash

    tc qdisc del dev eth1 root

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

    #--------------adiciona essa classe para receber o tr�fego do zph
    tc class add dev eth1 parent 1:1 classid 1:10 htb rate 5mbit prio 1 #ZPH
    tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10



    tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip protocol 0x6 0xff match ip tos 0x60 0xff flowid 1:10

    e remover a placa de rede externa então queria saber se posso e se estar correto o script acima para as necessidades que preciso que é deixar o cache full ativado mas ficar sem control de banda...posso deixar se uma regra default?

    e no caso como não vou ter controle de banda eu deixaria a placa externa que controla o upload sem nenhum script visto que o cache full usa só a placa interna....o que acham??


    EdITADO:

    tentei fazer o script acima mas deu o erro quando tento reinciar o script:

    proxy:/home/novaf# /etc/init.d/htbinterna retart
    RTNETLINK answers: No such file or directory
    RTNETLINK answers: No such file or directory
    RTNETLINK answers: No such file or directory
    RTNETLINK answers: No such file or directory
    RTNETLINK answers: Invalid argument
    We have an error talking to the kernel
    proxy:/home/novaf#
    Última edição por lfernandosg; 17-02-2009 às 08:50.

  4. #4

    Padrão

    Mas pelo que sei as regras de cache full só se aplicam quando tu está fazendo QoS, ou seja, regras para controle de tráfego, então se não tens regras de controle de tráfego, não precisa de regras de cache full, pois vai ser full "naturalmente".

    Abraço

  5. #5

    Padrão

    não não acho que vc está misturando o cache do squid com cache full....o cache full baixo os arquivos via placa de rede do servidor a 5mbit sendo que minha internet tem no máximo 1mb entendeu?

  6. #6

    Padrão

    Entendi sim lfernandosg, mas não estou entendendo porque queres limitar a velocidade do servidor ao computador da rede interna a 5mbit. Qual o problema de o acesso ser feito na velocidade máxima da tua estrutura de rede, por exemplo, 100mbit?

  7. #7

    Padrão

    porque tenho uma estrutura mista com rede wireless a 54Mbit e uma rede wireless de 60km sem fio a 10mbit e tenho algumas máquinas do outro lado entende?


    como ficaria o script?

  8. #8

    Padrão

    Bom, pelo que continuo entendendo tu não vais fazer limitação alguma de tráfego, ou seja, vais ter este 1mbit liberado na rede para internet, por isto, não precisa configurar teu squid para cache full, simplesmente ele estará em operando análogo a full sem regras de QoS.

    Desculpe se continuo insistindo na não utilização de regras para cache full, pois entendo que não são necessárias se tu não faz QoS.

    Exemplo:
    Num ponto A a 60 Km do meu ponto B (onde está minha rede interna) tenho um link de 1mbit e meu servidor squid, então meu tráfego entre o ponto A e B deve ser de uns 5mbits por limitações da infraestrutura física. Em meu servidor proxy tenho regra de iptables para direcionar o tráfego da porta 80 para a porta 3128 do squid, digamos que o IP deste servidor squid seja 192.168.128.1 em uma rede 255.255.255.0:
    iptables -t nat -A POSTROUTING -p tcp -s 192.168.128.0/24 --dport 80 -j REDIRECT --to-port 3128

  9. #9

    Padrão

    amigo já fiz os testes....se eu tirar a regra do zph do htb(que não é controle de banda e sim marcação de pacotes para o cache full e regras dentro do squid.conf do zph) o squid não faz cache full e sim só faz cache normal...baixei um arquivo agora para testar...o redirecionamento já faço para porta 3128.


    para vc endenter melhor:

    dentro do meu squid.conf tenho as configurações do path zph e dentro do htb tenho que marcar esses pacotes...testei agora com 1mb liberado baixei um arquivo e ele baixou a 70KB/s depois limpei o cache do navegador e baixar novamente ele baixou a 90KB/s..então starttei o script ai ele baixou a 550KB/s entendeu?

    a marcação se não for feita no HTB tem que ser feita no iptables mas no iptables já ouvir dizer que não é tão boa quanto no htb.


    EDITADO:

    acho que condseguir:

    deixei somente as regras do cache full:

    #!/bin/bash

    tc qdisc del dev eth1 root

    tc qdisc add dev eth1 root handle 1:0 htb default 10

    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 5mbit prio 1


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


    deixando como default(quando eu tirei deu erro) marcando os que estão no squid.conf 0x60 e testei está dando 1mb de velocidade e estou baixando os arquivos a 5mbit...agora como vou implantar isso numa rede cabeada de um cliente vou colocar a placa a 100mbit e baixar a 50mbit para não usar todo o tráfego da rede do servidor.


    eu só não sei se preciso colocar a velocidade default 10 como a da placa de rede mas acho que sim pois não estou limitando nenhuma porta.
    Última edição por lfernandosg; 17-02-2009 às 10:12.

  10. #10

    Padrão

    Ta, mas se tu tirar as marcação de pacotes feita pelo ZPH no squid e não rodar teu script que faz QoS, deixar o tráfego totalmente liberado entre tua rede e o proxy, então não vais ter limitação alguma de tráfego e certamente vais conseguir os mesmos 550kb/s.

  11. #11

    Padrão

    Ah sim! Desculpe, agora que terminei de ler o restante do teu último post, na verdade tu não quer esgotar o link até o servidor proxy, por isto está limitando em 5mbits, isto eu não tinha entendido.

    Desculpe.

  12. #12

    Padrão

    não vai..acabei de testar novamente....parei o script, tirei as linhas do squid.conf ai ele baixa relamente na velocidade total da internet que é 1mb pois ele não pega a velocidade da placa de rede feita via htb.

  13. #13

    Padrão

    Não entendi o "não vai" quer dizer que sem QoS funcionou ou não?

  14. #14

    Padrão

    sem as regras do squid.conf e as regras no HTB como coloquei acima não vai...ele não baixa a cache full.

  15. #15

    Padrão

    Muito estranho, pois se com ZPH ele está trazendo do cache sem QoS nenhuma e sem ZPH ele deveria trazer do cache também. Posta aí teu squid.conf pra gente dar uma olhada.