Eu sei que isso deve ser apenas uma falta de entendimento, mas aqui está o problema.
Recentemente, alteramos os servidores DNS de 192.168.1.1 para .2, então eu passei pelos 8 servidores linux e alterei o /etc/resolv.conf para refletir a alteração. Observe que eles são todos estáticos, não há DHCP envolvido.
Depois de fazer a alteração, posso testar imediatamente os resultados usando nslookup e dig, e tudo fica bem. Fiz uma reinicialização do /etc/init.d/networking - para reiniciar o subsistema de rede - e reiniciei o apache e o postfix em cada um dos servidores, apenas para ter certeza.
Alguns dias depois, recebo um relatório informando que nossos sites não estão mais enviando e-mails. Examinando os logs, descobri que o processo mod_php não conseguia resolver as entradas DNS para enviar email. Depois de bater minha cabeça por cerca de 30 minutos, reiniciei o servidor e tudo voltou ao normal.
No dia seguinte, em um servidor diferente (usando o CentOS em vez do Ubuntu normal), recebo um relatório informando que os emails não estão sendo enviados e, com certeza, olhando os logs indica que o Postfix não pode resolver nomes. Reinicializado e entrega quase instantaneamente todas as mensagens em fila.
Então, o que estou perdendo aqui? Que parte desse processo não entendi corretamente?
fonte
A maioria dos aplicativos inicializa o resolvedor uma vez, na inicialização (com
res_init
), e nunca o faz novamente depois. Não é um problema para aplicativos de vida curta, como o ping, mas mais sério para daemons de longa duração.O processo Apache (que executa o mod_php) provavelmente foi nesse caso. Reiniciar o Apache seria suficiente.
fonte
O resolv.conf direciona os resolvedores para onde procurar nomes. Na maioria dos casos, esse será o resolvedor libc, mas pode haver outros casos, como o vPostMaster, que usa a biblioteca de resolvedores DNS do Python para pesquisas do SPF.
Assim, poderia ser que o resolvedor é o cache as informações resolv.conf para processos de longa duração, mas soou como você postfix reiniciado, o que deve ter causado isso para começar a usar um arquivo resolv.conf fresco.
Verifique seu /etc/nsswitch.conf para ver se ele especifica algo especial acontecendo para "hosts". Por exemplo, a linha padrão do Fedora 11 no meu laptop é:
hosts: arquivos mdns4_minimal [NOTFOUND = return] dns
Portanto, neste caso, ele usa mdns, bem como / etc / hosts e DNS. Nesse caso, se as alterações de DNS não estivessem sendo detectadas, eu me perguntaria se eram os mdns que estavam causando isso.
Sean
fonte
Provavelmente algum cache está acontecendo. Tivemos um problema semelhante
sendmail
e o reinício do serviço foi corrigido.Às vezes, é mais fácil reiniciar o servidor e limpar todos os caches em qualquer lugar do sistema do que gastar todo esse tempo identificando qual serviço está armazenando em cache por muito tempo. Por outro lado, pode ser um investimento quando acontece novamente e você sabe qual serviço reiniciar.
fonte