Estou gerenciando alguns proxies da web executando o Squid 4.10 no Ubuntu 20.04LTS em vários locais distribuídos em todo o mundo. Um deles desenvolveu o péssimo hábito de ocasionalmente não acessar uma página da web. O usuário recebe uma página de erro dizendo:
Hmmm... can't reach this page
It looks like the webpage at <URL> might be having issues,
or it may have moved permanently to a new web address.
ERR_TUNNEL_CONNECTION_FAILED
Depois de adicionar %err_code/%err_detail
ao final do relevante logformat
conforme recomendado nesta postagem da lista de discussão , as entradas access.log do Squid para os acessos com falha ficam assim:
1635169354.239 171 10.72.1.103 NONE/503 0 CONNECT ad.360yield.com:443 - HIER_
NONE/- - ERR_DNS_FAIL/-
O status do Squid é NONE/503
, e o código de erro e os detalhes sempre ERR_DNS_FAIL/-
. O carimbo de data/hora, o endereço IP do cliente e a URL solicitada variam, é claro.
Cada ocorrência do problema afeta um único FQDN ou um número muito pequeno de FQDNs, geralmente todos da mesma organização (por exemplo, lm.licenses.adobe.com e cc-api-data.adobe.io, ambos da Adobe.) Todos os outros os acessos continuam funcionando normalmente. Uma ocorrência dura tipicamente entre cinco e dez minutos. Durante esse período, todos os clientes que tentam acessar esse FQDN são afetados. Antes e depois disso, o mesmo FQDN funciona sem problemas. Não há regularidade discernível nos FQDNs afetados.
Algumas das ocorrências são acompanhadas por uma mensagem como:
2021/10/25 15:42:34 kid1| ipcacheParse No Address records in response to 'ad.360yield.com'
mas na /var/log/squid/cache.log
maioria dos casos nada é registrado lá.
Como posso descobrir o que está errado lá?
Aumentando o nível de log para pesquisas de DNS para 6 colocando a diretiva
into
/etc/squid/squid.conf
faz o log do Squid para/var/log/squid/cache.log
qual servidor de nomes foi usado para as consultas com falha, por exemplo:As falhas podem então ser investigadas nesse servidor de nomes.
No meu caso, isso apontou para um
dnsmasq
servidor proxy DNS em execução na mesma máquina. A ativação do logon de consultadnsmasq
revelou que um dos quatro servidores de nomes externos configurados era responsável pelas falhas. As consultas enviadas para esse servidor de nomes falharam, enquanto as consultas enviadas para um dos outros três foram bem-sucedidas. Portanto, a solução foi descartar o servidor de nomes externo com defeito da configuração.