Limpando o cache DNS nscd

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 -isigla significa invalidate .

Você também pode verificar se o cache do nscd é persistente executando

nscd -g

e procurando cache is persistent. Observe que nscdarmazena 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 cacheseção.

Esta dica foi republicada do meu blog, jontai.me