Na última semana, encontrei dois incidentes em que uma entrada DNS incorreta foi criada e começou a causar problemas. Em um caso, o Varnish não iniciava porque um dos back-ends resolveu para vários IPs. No outro, um nó Mongo estava apontando para o IP errado. Em ambos os casos, a entrada DNS foi corrigida e as alterações propagadas, mas os próprios hosts problemáticos ainda estavam vendo as entradas obsoletas.
Lembrei que estávamos executando o nscd , então reiniciei o serviço para liberar o cache. Infelizmente, isso não ajudou. Um colega me informou que o cache do nscd é realmente persistente por padrão no CentOS 6. Para liberá-lo, você precisa executar
nscd -i hosts
A -i
sigla significa invalidate .
Você também pode verificar se o cache do nscd é persistente executando
nscd -g
e procurando cache is persistent
. Observe que nscd
armazena em cache vários outros tipos de dados (não apenas entradas de DNS), portanto, se você estiver procurando pelo cache de DNS especificamente, certifique-se de consultar a hosts cache
seção.
Esta dica foi republicada do meu blog, jontai.me