Squid + Load Balance - Problemas com meu Squid

1. Squid + Load Balance - Problemas com meu Squid

Tiago Rodrigues
tgwo

(usa Ubuntu)

Enviado em 28/10/2024 - 13:53h

Ola!

Tenho uma maquina com o Ubuntu 20.04.6 LTS, nela esta o Servidor Squid, DHCP(Ips fixo por MAC das maquinas), Firewall. Atualmente a rede da empresa rede possui 68 Pcs, tenho 2 servidores em redundancia onde fica o AD que gerencia meu dominio, windows server 2019.

Hoje tenho 3 links de internet banda larga. que passam por um Load Balance ER605(UN) omada gigabit vpn router, e deste load balance ele vai para o Ubuntu e de la para o Switch.

acontece que de 1 ano para ca, esta havendo instabilidade de internet na minha rede, as maquinas que estao sendo gerenciadas seu DHCP pelo ubuntu do nada a internet vai embora, seu eu der um restart no squid a internet volta na hora(as vezes por poucos minutos tempo) dependento do dia uns 50 restart, tenho uma maquina que passa por fora desse Squid e e uso o IP do modem essa nao cai a internet a nao ser quando é problema mesmo na operadora ai sim.

Os testes que ja fiz e o mesmo problema ainda ocorre, foram varios, entre eles:

--LOAD BALANCE
*Deixar apenas 1 link de internet no load balance, ou dois, ou tres
*Configurar o load para somar, para ele escolher qual o melhor link no momento
*Criar regra do link primario e backup em caso de falhas

--SQUID
* Alterações no Squid.conf conforme alguns foruns com relatos parecidos
* Nao lembro todos agora pq realmente foi muita alteracao


Resumindo: fora do Squid acessando diretamento o modem qualquer maquina funciona sem cair internet, ja passando por ele é instavel, o que se parece é que ha um conflito entre o load balance e o squid quanto a distribuição do link para as maquinas ou quando ele troca de link por alguma falha o squid parece que nao consegue voltar (mas tudo isso é uma analise minha com base no que ja venho testando e reparando)

Gostaria de ajuda. se preciso envio aqui meu Squid.conf


  


2. Re: Squid + Load Balance - Problemas com meu Squid

Amarildo Sertorio dos Santos
amarildosertorio

(usa Fedora)

Enviado em 28/10/2024 - 20:37h

Você monitora o ambiente? O Squid usa descritores de arquivo para gerenciar as conexões, e um valor insuficiente para `max_filedescriptors` pode causar a interrupção do serviço. Além disso, se o Squid atingir o limite de memória configurado em `cache_mem`, o alto consumo de memória também pode levá-lo a parar.

O Squid armazena arquivos de cache no disco; se o diretório de cache alcançar seu limite de espaço ou se houver problemas de I/O no disco, isso também pode comprometer o serviço.

É importante monitorar todos esses aspectos. Se tudo parecer em ordem, recomendo ativar o modo de depuração do Squid e analisar os logs.


3. Squid + Load Balance - Problemas com meu Squid

Tiago Rodrigues
tgwo

(usa Ubuntu)

Enviado em 29/10/2024 - 12:41h

Você monitora o ambiente?
R: Sim, venho usando vario comando para tambem melhorar este monitoramento pra que fique o mais detalhado possivel

O Squid usa descritores de arquivo para gerenciar as conexões, e um valor insuficiente para `max_filedescriptors` pode causar a interrupção do serviço.
R: Sobre isto notei que no meu Squid.conf nao havia esta configuracao la, entao eu adicionei "max_filedescriptors 4096"

Além disso, se o Squid atingir o limite de memória configurado em `cache_mem`, o alto consumo de memória também pode levá-lo a parar. O Squid armazena arquivos de cache no disco; se o diretório de cache alcançar seu limite de espaço ou se houver problemas de I/O no disco, isso também pode comprometer o serviço.
R: Na minha Configuracao atual esta assim:
cache_mem 6000 MB
cache_dir ufs /var/spool/squid 8000 16 256
cache_dir ufs /var/spool/squid1 8000 16 256
O Disco sendo usado 20% e a memoria em 40%

É importante monitorar todos esses aspectos. Se tudo parecer em ordem, recomendo ativar o modo de depuração do Squid e analisar os logs.
R: sobre isso coloquei no meu squid.conf a linha "debug_options ALL,1". ao rodar o comando tail -f /var/log/squid/cache.log ele me retornou este LOG em anexo, junto a ele estou enviando tambem a configuracao de porta do squid http e https.


4. Re: Squid + Load Balance - Problemas com meu Squid

Buckminster
Buckminster

(usa Debian)

Enviado em 29/10/2024 - 13:12h

O erro "ERROR: No forward-proxy ports configured" significa que a porta 3128 foi alterada incorretamente para uma porta de interceptação:
https://wiki.squid-cache.org/KnowledgeBase/NoForwardProxyPorts

"Configure várias linhas de porta com pelo menos uma capaz de receber tráfego de proxy de encaminhamento", ou seja, você precisa de uma porta 'intercept' e uma 'forward proxy' na configuração, mesmo que não use o forward proxy:

http_port 192.168.4.254:3128
http_port 192.168.4.254:3130 intercept
https_port 192.168.4.254:3129 intercept ssl-bump etc etc...

e altere no Iptables também para a porta 3130. A porta 3128 é aconselhado deixar como forward, pois é a porta padrão para isso, mas pode testar com
http_port 192.168.4.254:3130
http_port 192.168.4.254:3128 intercept
e caso der erro daí altere.

E no visible_hostname aconselho a colocar um nome em vez de IP:PORTA ou tire fora ou comente, pois o Squid sem essa opção configurada pega o valor de retorno de gethostname().
https://www.squid-cache.org/Doc/config/visible_hostname/

E o erro "Error sending to ICMPv6 packet to..." provavelmente sumirá, mas se persistir acrescente essas duas linhas no Squid:

tcp_outgoing_address NÚMERO_IPV6
tcp_outgoing_address 192.168.4.254

Para melhor configuração leia esse link:
https://www.squid-cache.org/Doc/config/tcp_outgoing_address/

Faça as alterações, reinicie a rede e o Squid e verifique os logs.

Em relação ao max_filedescriptors:
https://www.squid-cache.org/Doc/config/max_filedescriptors/

Verifique no sistema com o comando ulimit:
$ ulimit

Caso aparecer um número tenha o cuidado de deixar a diretiva no Squid com um número menor ou igual, nunca maior.
Caso aparecer "unlimited" na saída do comando daí pode deixar 4096 e vá monitorando para aumentar ou diminuir de acordo com o desempenho do Squid.
Toda alteração nesse parâmetro max_filedescriptors exige a reinicialização do Squid.
Pode verificar também com:

$ cat /proc/sys/fs/file-max

Caso a saída der um numerozão assim
9223372036854775807
é porque é unlimited.
Para melhor configuração:
$ ulimit -Hn
1048576
$ ulimit -Sn
1024

E deixe entre esses valores. O -Hn é o hard limit e o -Sn é o soft limit.
Tenha o cuidado de verificar isso com o usuário no qual você usa o Squid, caso for root use
$ su - root
$ ulimit -Hn
$ ulimit -Sn

Ou
$ su - usuario
$ ulimit -Hn
$ ulimit -Sn

Para ver o usuário do Squid execute:
$ id
para ver os usuários.
Exemplo:
$ id
uid=1000(debian) gid=1000(debian) grupos=1000(debian),0(root),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),33(www-data),44(video),46(plugdev),100(users),106(netdev),113(bluetooth),116(lpadmin),119(scanner),129(wireshark),1001(kismet)

No caso não tenho o Squid nessa máquina, mas você vê aí.
Pode ser que não tenha sido criado um usuário para o Squid, daí você usa o teu usuário, pois os File descriptors são específicos para cada usuário.
Para saber mais, leia isso:
https://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/


_________________________________________________________
Always listen the Buck!
Enquanto o cursor estiver pulsando, há vida!


5. Re: Squid + Load Balance - Problemas com meu Squid

Amarildo Sertorio dos Santos
amarildosertorio

(usa Fedora)

Enviado em 29/10/2024 - 15:03h

Para identificar a causa do problema, acompanhe o debug até o momento em que ele ocorre. Se as mensagens de log não forem detalhadas o suficiente, aumente o nível de depuração para obter mais informações.

Você mencionou que utiliza o Ubuntu 20.04 LTS. O Squid foi instalado a partir do repositório oficial ou compilado? A versão disponível nos repositórios oficiais do Ubuntu 20.04 é a 4.x, que possui vários relatos de problemas.

Sugiro que, em paralelo, você configure uma VM com o Ubuntu 24.04 LTS e o Squid 6.x para testes. Essa versão traz diversas correções e otimizações que podem melhorar o desempenho e a estabilidade.


6. Squid + Load Balance - Problemas com meu Squid

Tiago Rodrigues
tgwo

(usa Ubuntu)

Enviado em 30/10/2024 - 13:48h

Agradeço "Buckminster" e o "amarildosertorio". as ultimas dicas que voces me passaram vou segui-las aqui para continuar com os testes.

INFORMACAO IMPORTANTE: De meio dia de ontem 29/10 ate hoje 30/10 no momento em que escrevo aqui a internet simplismente nao caiu mais e nem ficou instavel esta rapida em todas as estações.
As ultimas alterações que fiz foi o que o amarildosertorio me recomendou colocar o "max_filedescriptors 4096" e o modo depuracao "debug_options ALL,1" no squid.conf

Alem disso no LOG do load balance eu notei o seguinte log, que se repetia infinitamente, o que fiz foi remover o cabo desta porta WAN/LAN2 (meu link claro 1Gps) deixei apenas os outros dois Links conectado no load balance, vi que o link da minha porta WAN (Oi 400Mb) é o que ta funcionando sem cair desde ontem meio dia, o da porta WAN/LAN1 (Vivo 600Mb) esta apenas somando ao da OI. em anexo envio alguns prints da config do load.

39 2024-10-28 07:49:43 DHCP Client NOTICE WAN/LAN2: DHCP client renewing IP succeeded. (IP-Address=192.168.2.2, Mask=255.255.255.0, Gateway=192.168.2.1)
40 2024-10-28 07:49:40 DHCP Client NOTICE WAN/LAN2: DHCP client lease expired. Began renewing the lease.
41 2024-10-28 07:26:14 DHCP Client NOTICE WAN: DHCP client renewing IP succeeded. (IP-Address=192.168.100.5, Mask=255.255.255.0, Gateway=192.168.100.1)
42 2024-10-28 07:26:11 DHCP Client NOTICE WAN: DHCP client lease expired. Began renewing the lease.
43 2024-10-28 07:19:44 DHCP Client NOTICE WAN/LAN2: DHCP client renewing IP succeeded. (IP-Address=192.168.2.2, Mask=255.255.255.0, Gateway=192.168.2.1)
44 2024-10-28 07:19:40 DHCP Client NOTICE WAN/LAN2: DHCP client lease expired. Began renewing the lease.


7. Re: Squid + Load Balance - Problemas com meu Squid

Amarildo Sertorio dos Santos
amarildosertorio

(usa Fedora)

Enviado em 30/10/2024 - 13:52h

Ative o modo de depuração somente durante investigações, mantê-lo ativo pode impactar o desempenho do sistema.


8. Squid + Load Balance - Problemas com meu Squid

Tiago Rodrigues
tgwo

(usa Ubuntu)

Enviado em 01/11/2024 - 11:26h

.....ATUALIZAÇÃO

Ainda sobre os testes, removi o load balance configurei  rede enp1s0 do ubunto em dhcp e o modem tambem em dhcp e coloquei o cabo direto do modem na maquina com o squid, ja vai para 2 dias funcionando sem ao menos oscilar. agora ja resetei o load e atualizei o firmware e vou reconfigura-lo para novos testes. mas de imediato o que detectei com isso é que o problema é a comunicacao do load balance com o squid.

Obrigado pelas dicas ate aqui. se tiverem mais alguma dica sobre como configurar este load para que trabalhe bem com o squid, eu agradeço!!


9. Re: Squid + Load Balance - Problemas com meu Squid

Buckminster
Buckminster

(usa Debian)

Enviado em 01/11/2024 - 12:54h

Vi que você configurou DNS no Squid, teste sem os DNSs no Squid com o Load Balance, comente os DNSs no Squid, reinicie e teste.
O problema também pode ser no Load Balance que ao trocar de link se perde nos DNSs, pois cada operadora força os seus próprios DNSs, é uma droga isso.
Verifique no Load Balance se tem como configurar/fixar os DNSs.
Você testou com o Load Balance sem o Squid e com o Squid sem o Load Balance?

E numa porta você tem um IP estático e em outra um IP dinâmico no Load Balancer, sendo que quem distribui IP para a rede é o DHCP do Ubuntu e ali no Load balancing tem onde configurar os DNSs.
Talvez esses DNSs estejam dando conflito com os das operadoras, por isso tem de reiniciar o Squid toda hora.

"tenho uma maquina que passa por fora desse Squid e e uso o IP do modem essa nao cai a internet a nao ser quando é problema mesmo na operadora ai sim."
Veja que o problema é uma incompatibilidade do Roteador e/ou do Load Balancing com o Ubuntu e/ou Squid, verifique os IPs e os DNSs de um e de outro para ver se batem.


_________________________________________________________
Always listen the Buck!
Enquanto o cursor estiver pulsando, há vida!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts