+ Responder ao Tópico



  1. #1

    Padrão Problema de Time Out com o Squid

    Bom dia a todos, venho enfrentando uma problema com meu squid aqui a algum tempo ja e não encontro a solução e o seguinte

    Habilito o squid normal, inicializa o cache, grava nos disco, usa memoria tudo normal, ai do nada ele para a navegação, nota que o msn e alguns outro serviços continuam rodando normal, e isso e varial talvez de 1h depois ou 3 dias, ai quando da o erro de time out no squid, vo la e do um restart nele, volta a funfa blz, to achando que o problema e no dns, mais ja alterei de tudo quando e forma, meu resolv, ta com os nameserver da brt, vo postar minha regras de firewall e do squid, tava pensando se eu liberasse a porta do dns no firewall resolveria ou se add a regra de dns no proprio squid, alguem mi de uma luz pra da proxima vez que acontecer eu ja altere aqui

    firewall

    #!/bin/bash

    #Interface da Internet
    ifinternet="eth0"

    #Ip do MK
    ifmk="10.200.150.11"

    #Rede Local
    iplocal="10.200.150.0/255.255.255.0"

    #Gateway
    ifgw="10.200.150.1"

    #interface local
    iflocal="eth1"

    #Porta SSH
    ptssh="22"

    #Porta Webmin
    ptwebmin="10000"

    #Porta Winbox
    ptwinbox="8291"

    iniciar(){

    #Compartilha a Conexao:
    modprobe iptable_nat
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
    echo "Compartilhamento Ativado"

    #Proxy Transparente
    iptables -t nat -A PREROUTING -i $iflocal -p tcp --dport 80 -j REDIRECT --to-port 3128
    echo "Proxy Transparente Ativado"

    #Redireciona o Winbox via Ip do Mk de Conexao Externa
    iptables -t nat -A PREROUTING -p tcp -i $ifinternet --dport $ptwinbox -j DNAT --to $ifmk
    iptables -t nat -A POSTROUTING -d $ifmk -j SNAT --to $ifgw
    echo "Redirecionado Winbox Ativado"

    #Permite conexao com a rede local
    iptables -A INPUT -i $iflocal -j ACCEPT

    #Abre a porta do SSH
    iptables -A INPUT -p tcp --dport $ptssh -j ACCEPT

    #Abre a porta do Webmin
    iptables -A INPUT -p tcp --dport $ptwebmin -j ACCEPT
    echo "Conexao Local, Porta SSH e Porta Webmin Liberadas"

    #Regras Basicas do Firewall(Aprimorar sempre)
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
    echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
    iptables -A INPUT -m state --state INVALID -j DROP
    iptables -A INPUT -p tcp --syn -j DROP
    echo "Protecoes Basicas Ativadas"
    }
    parar(){
    iptables -F
    iptables -F -t nat
    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    echo 0 > /proc/sys/net/ipv4/ip_forward
    echo "Regras de Firewall e Compartilhamento Desativados"
    }
    case "$1" in
    "start") iniciar ;;
    "stop") parar ;;
    "restart") parar; iniciar ;;
    *) echo "User os parametos Star e Stop"
    esac


    proxy

    http_port 3128 transparent
    visible_hostname webproxy2

    cache_mem 1400 MB
    maximum_object_size_in_memory 64 KB
    maximum_object_size 150 MB
    minimum_object_size 2 KB
    cache_swap_low 90
    cache_swap_high 95
    cache_dir ufs /var/spool/squid 90000 16 256
    cache_access_log /var/log/squid/access.log
    refresh_pattern ^ftp: 15 20% 2280
    refresh_pattern ^gopher: 15 0% 2280
    refresh_pattern . 15 20% 2280
    #dns_nameservers 201.10.128.3 201.10.120.3 # ainda não habilitei essa regra e meu proximo teste

    acl all src 0.0.0.0/0.0.0.0
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl SSL_ports port 443 563
    acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535
    acl Porta_webmin port 10000
    acl Porta_ssh port 22
    acl purge method PURGE
    acl CONNECT method CONNECT

    http_access allow Porta_webmin
    http_access allow Porta_ssh
    http_access allow manager localhost
    http_access deny manager
    http_access allow purge localhost
    http_access deny purge
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports

    acl redelocal src 10.200.150.0/24
    http_access allow localhost
    http_access allow redelocal

    http_access allow all

  2. #2

    Padrão

    estranho ein...
    aconselho vc ir comentando algums parametros referentes ao cache.
    dai vc sabe qual é o parametro q ta emperrando depois desse intervalo de tempo.

  3. #3

    Padrão

    E o problema maior que o squid não trava tipo, ele da como rodando normal so que, pelo que me parece o erro e o dnsserver que não ta respondendo a tempo o squid, sera que tem jeito de aumentar esse delay?

  4. #4

    Padrão

    Citação Postado originalmente por renanphp Ver Post
    Bom dia a todos, venho enfrentando uma problema com meu squid aqui a algum tempo ja e não encontro a solução e o seguinte

    Habilito o squid normal, inicializa o cache, grava nos disco, usa memoria tudo normal, ai do nada ele para a navegação, nota que o msn e alguns outro serviços continuam rodando normal, e isso e varial talvez de 1h depois ou 3 dias, ai quando da o erro de time out no squid, vo la e do um restart nele, volta a funfa blz, to achando que o problema e no dns, mais ja alterei de tudo quando e forma, meu resolv, ta com os nameserver da brt, vo postar minha regras de firewall e do squid, tava pensando se eu liberasse a porta do dns no firewall resolveria ou se add a regra de dns no proprio squid, alguem mi de uma luz pra da proxima vez que acontecer eu ja altere aqui

    firewall

    #!/bin/bash

    #Interface da Internet
    ifinternet="eth0"

    #Ip do MK
    ifmk="10.200.150.11"

    #Rede Local
    iplocal="10.200.150.0/255.255.255.0"

    #Gateway
    ifgw="10.200.150.1"

    #interface local
    iflocal="eth1"

    #Porta SSH
    ptssh="22"

    #Porta Webmin
    ptwebmin="10000"

    #Porta Winbox
    ptwinbox="8291"

    iniciar(){

    #Compartilha a Conexao:
    modprobe iptable_nat
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
    echo "Compartilhamento Ativado"

    #Proxy Transparente
    iptables -t nat -A PREROUTING -i $iflocal -p tcp --dport 80 -j REDIRECT --to-port 3128
    echo "Proxy Transparente Ativado"

    #Redireciona o Winbox via Ip do Mk de Conexao Externa
    iptables -t nat -A PREROUTING -p tcp -i $ifinternet --dport $ptwinbox -j DNAT --to $ifmk
    iptables -t nat -A POSTROUTING -d $ifmk -j SNAT --to $ifgw
    echo "Redirecionado Winbox Ativado"

    #Permite conexao com a rede local
    iptables -A INPUT -i $iflocal -j ACCEPT

    #Abre a porta do SSH
    iptables -A INPUT -p tcp --dport $ptssh -j ACCEPT

    #Abre a porta do Webmin
    iptables -A INPUT -p tcp --dport $ptwebmin -j ACCEPT
    echo "Conexao Local, Porta SSH e Porta Webmin Liberadas"

    #Regras Basicas do Firewall(Aprimorar sempre)
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
    echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
    iptables -A INPUT -m state --state INVALID -j DROP
    iptables -A INPUT -p tcp --syn -j DROP
    echo "Protecoes Basicas Ativadas"
    }
    parar(){
    iptables -F
    iptables -F -t nat
    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    echo 0 > /proc/sys/net/ipv4/ip_forward
    echo "Regras de Firewall e Compartilhamento Desativados"
    }
    case "$1" in
    "start") iniciar ;;
    "stop") parar ;;
    "restart") parar; iniciar ;;
    *) echo "User os parametos Star e Stop"
    esac


    proxy

    http_port 3128 transparent
    visible_hostname webproxy2

    cache_mem 1400 MB
    maximum_object_size_in_memory 64 KB
    maximum_object_size 150 MB
    minimum_object_size 2 KB
    cache_swap_low 90
    cache_swap_high 95
    cache_dir ufs /var/spool/squid 90000 16 256
    cache_access_log /var/log/squid/access.log
    refresh_pattern ^ftp: 15 20% 2280
    refresh_pattern ^gopher: 15 0% 2280
    refresh_pattern . 15 20% 2280
    #dns_nameservers 201.10.128.3 201.10.120.3 # ainda não habilitei essa regra e meu proximo teste

    acl all src 0.0.0.0/0.0.0.0
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl SSL_ports port 443 563
    acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535
    acl Porta_webmin port 10000
    acl Porta_ssh port 22
    acl purge method PURGE
    acl CONNECT method CONNECT

    http_access allow Porta_webmin
    http_access allow Porta_ssh
    http_access allow manager localhost
    http_access deny manager
    http_access allow purge localhost
    http_access deny purge
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports

    acl redelocal src 10.200.150.0/24
    http_access allow localhost
    http_access allow redelocal

    http_access allow all
    Olá!

    Recomendo vc rever a quantidade em uso de memória RAM para cache em cache_mem, use 25% da memória toral do servidor (de acordo com a FAQ do squid-cache.org), não mais do que isso, veja o cálculo abaixo:

    512MB RAM * 25% = 128MB RAM

    O outro detalhe é sobre políticas de armazenamentos, pois o squid possui recursos muito interessante para aumentar as chances de cache-hit porém sem degradar o desempenho do servidor como as opções memory_replacement_policy e cache_replacement_policy e suas politicas de armazenamento.

    Politicas heap:
    GDSF -> Prioriza o armazenamento de objetos populares menores
    LFUDA -> Prioriza o armazenamento de objetos populares independente do tamanho

    Então vc pode combinar essas politicas da seguinte forma:

    memory_replacement_policy heap GDSF <- para memoria RAM
    cache_replacement_policy heap LFUDA <- para Disco

    Configure o minimum_object_size 2 KB para 0 KB , para que não haja exessões no armazenamento de objetos de modo geral

    Quanto ao DNS, intale um dns-cache no mesmo server do squid (ex: apt-get install bind9) e configure no mesmo como abaixo:

    dns_nameservers 127.0.0.1

    Abraços
    Última edição por rrinfor; 30-03-2009 às 23:34.

  5. #5

    Padrão

    Boa noite, muito obrigado pelas dicas, vo implementa aqui, como tenho aqui 3gb de memoria vo deixa la habilitado 1GB pra da um sobra e implementarei esse regras de armazenamento mais um detalhes coloco elas em que possição no squid conf, para serem executadas depois das conf de memoria e deretorios ou antes delas?
    Tenho o bind9 instalado na maquina, ai deixo so esse dns do localhost, ou deixo ele e mais os da brt?

  6. #6

    Padrão

    posta o seu named.conf por favor.

    Abraço

  7. #7

    Padrão

    ele ta do jeito que instala o dns,

    // This is the primary configuration file for the BIND DNS server named.
    //
    // Please read /usr/share/doc/bind9/README.Debian.gz for information on the
    // structure of BIND configuration files in Debian, *BEFORE* you customize
    // this configuration file.
    //
    // If you are just adding zones, please do that in /etc/bind/named.conf.local

    include "/etc/bind/named.conf.options";

    // prime the server with knowledge of the root servers
    zone "." {
    type hint;
    file "/etc/bind/db.root";
    };

    // be authoritative for the localhost forward and reverse zones, and for
    // broadcast zones as per RFC 1912

    zone "localhost" {
    type master;
    file "/etc/bind/db.local";
    };

    zone "127.in-addr.arpa" {
    type master;
    file "/etc/bind/db.127";
    };

    zone "0.in-addr.arpa" {
    type master;
    file "/etc/bind/db.0";
    };

    zone "255.in-addr.arpa" {
    type master;
    file "/etc/bind/db.255";
    };

    include "/etc/bind/named.conf.local";

    tava pensando em fazer um cahce de dns na mesma naquina, será que resolveria o problema?

  8. #8

    Padrão

    Uso isso muito e funciona bem.

    Tente fazer isso mas coloque no

    resolv.conf
    nameserver 127.0.0.1

    mas antes faça os testes de cache local

    host -a UOL - O melhor conteúdo 127.0.0.1


    Abraço

  9. #9

    Padrão

    Citação Postado originalmente por renanphp Ver Post
    Boa noite, muito obrigado pelas dicas, vo implementa aqui, como tenho aqui 3gb de memoria vo deixa la habilitado 1GB pra da um sobra e implementarei esse regras de armazenamento mais um detalhes coloco elas em que possição no squid conf, para serem executadas depois das conf de memoria e deretorios ou antes delas?
    Tenho o bind9 instalado na maquina, ai deixo so esse dns do localhost, ou deixo ele e mais os da brt?
    Olá!

    As politicas de armazenamento podem ser implementadas logo abaixo de maximum_object_size_in_memory.

    Qaunto ao dns, vc pode deixar configurado somente o localhost, e no arquivo /etc/resolv.conf faça como abaixo:

    nameserver 127.0.0.1
    nameserver 200.200.200.2 <<-- dns seu provedor

    Abraços

  10. #10

    Padrão

    Citação Postado originalmente por wps Ver Post
    Uso isso muito e funciona bem.

    Tente fazer isso mas coloque no

    resolv.conf
    nameserver 127.0.0.1

    mas antes faça os testes de cache local

    host -a UOL - O melhor conteúdo 127.0.0.1


    Abraço
    Ok vo tentar aqui, vc conhece algum material a respeito de cache dns no debian, achei um aqui mais no fedora, e eu não so nada familiarizado com ele

  11. #11

    Padrão

    Citação Postado originalmente por renanphp Ver Post
    Ok vo tentar aqui, vc conhece algum material a respeito de cache dns no debian, achei um aqui mais no fedora, e eu não so nada familiarizado com ele
    DNS cache no debian não tem segredo, basta instalar o bind9 e configurar o resolv.conf:

    apt-get update
    apt-get install bind9


    E editar o /etc/resolv.conf

    nameserver 127.0.0.1
    nameserver 200.200.200.2
    <<-- dns seu provedor

    Abraços

  12. #12

    Padrão

    Citação Postado originalmente por wps Ver Post
    Uso isso muito e funciona bem.

    Tente fazer isso mas coloque no

    resolv.conf
    nameserver 127.0.0.1

    mas antes faça os testes de cache local

    host -a UOL - O melhor conteúdo 127.0.0.1


    Abraço
    Rodei o comando apareceu isso na tela
    Trying "www.uol.com.br"
    Using domain server:
    Name: 127.0.0.1
    Address: 127.0.0.1#53
    Aliases:

    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20062
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 0

    ;; QUESTION SECTION:
    ;UOL - O melhor conteúdo. IN ANY

    ;; ANSWER SECTION:
    UOL - O melhor conteúdo. 300 IN A 200.98.249.120
    UOL - O melhor conteúdo. 300 IN A 200.221.2.45

    ;; AUTHORITY SECTION:
    uol.com.br. 3600 IN NS eliot.uol.com.br.
    uol.com.br. 3600 IN NS borges.uol.com.br.

    Received 105 bytes from 127.0.0.1#53 in 469 ms

    ta correto assim né, implementei todas as regras ate agora ta rodando normal, deu ate uma melhorada

  13. #13

    Padrão

    eu vou dizer para voce nao colocar os dns do seu provedor nao.

    Vamos somente usar o seu agora 127.0.0.1


    Feito isso voce pode registrar os principais como terra,uol como forwarder isso evita cagadas de cache !

  14. #14

    Padrão

    Citação Postado originalmente por wps Ver Post
    eu vou dizer para voce nao colocar os dns do seu provedor nao.

    Vamos somente usar o seu agora 127.0.0.1


    Feito isso voce pode registrar os principais como terra,uol como forwarder isso evita cagadas de cache !
    Olá!

    O DNS secundario é para redundancia, ele apenas será requisitado em caso de problemas com o DNS primario.

    Eu sempre achava que não era necessário, até o dia em que sofrí de um problema chamado DNS poisoning, ai entao tive que colocar o secundário, mas eu estava fora da cidade e não tinha niguem para mexe por mim, foi uma confusão, por isso recomendo.

    Abraços

  15. #15

    Padrão

    Amigos so mais uma duvida, coloquei la no resolv.conf o ip do localhost e os dos da brt, no squid.conf no dns_nameserv eu não coloquei na deixei a linha comentada, ai os dns que vai sair para os meus clientes serão quais, pq meu dhcp ta configurado assim:

    ddns-update-style none;
    default-lease-time 600;
    max-lease-time 7200;
    authoritative;
    #log-facility local7;
    subnet 10.200.150.0 netmask 255.255.255.0 {
    range 10.200.150.10 10.200.150.100;
    option routers 10.200.150.1;
    option domain-name-servers 201.10.128.3,201.10.120.3;
    option broadcast-address 10.200.150.255;
    host Mikrotik {
    hardware ethernet 00:0c:42:2d:fd:2f;
    fixed-address 10.200.150.11;
    }
    }

    no campo em vermelho devo colocar o ip do gateway 10.200.150.1, ou deixo como esta, ou mem uma das opções.

  16. #16

    Padrão

    Citação Postado originalmente por renanphp Ver Post
    Amigos so mais uma duvida, coloquei la no resolv.conf o ip do localhost e os dos da brt, no squid.conf no dns_nameserv eu não coloquei na deixei a linha comentada, ai os dns que vai sair para os meus clientes serão quais, pq meu dhcp ta configurado assim:

    ddns-update-style none;
    default-lease-time 600;
    max-lease-time 7200;
    authoritative;
    #log-facility local7;
    subnet 10.200.150.0 netmask 255.255.255.0 {
    range 10.200.150.10 10.200.150.100;
    option routers 10.200.150.1;
    option domain-name-servers 201.10.128.3,201.10.120.3;
    option broadcast-address 10.200.150.255;
    host Mikrotik {
    hardware ethernet 00:0c:42:2d:fd:2f;
    fixed-address 10.200.150.11;
    }
    }

    no campo em vermelho devo colocar o ip do gateway 10.200.150.1, ou deixo como esta, ou mem uma das opções.
    Se vc quiser que seja feito dns-cache das requisições de cliente coloque seu gateway para ser oferecido como dns primário.

    Abraços