Como limpar o cache do resolvedor de DNS no Linux (e no FreeBSD)

7

Eu sou administrador de vários servidores Linux e FreeBSD e aqui está um problema que tenho:

Os servidores executam uma ferramenta que faz muitas consultas DNS a cada minuto para toda a rede. Quando faz uma consulta, o resultado fica em cache em todo o sistema. Se uma entrada de DNS for alterada, a alteração será coletada muito mais tarde.

Qual seria a maneira de liberar o cache DNS? Meu chefe quase me empurra para mover o software para o Windows que tem ipconfig /flushdns chamada. Eu disse ao meu chefe que resolveria esse problema durante o final de semana e, na segunda-feira, todo o Linux e o FreeBSD vão esvaziar o cache. Se eu não fizer isso, ele me forçará a criar servidores Windows e executar software neles.

Como limpar o cache do DNS no Linux e no FreeBSD?

    
por Boda Cydo 01.11.2014 / 05:46

3 respostas

9

Eu não entendi a sua pergunta porque você diz alguma bobagem.

Se você estiver em um sistema Linux / Unix que não execute um servidor DNS chamado / bind / other, o sistema não armazenará em cache nenhuma consulta DNS. Aplicativos (clientes DNS) apenas consultam o servidor DNS toda vez sem o cache, consultam o servidor DNS todas as vezes. Se você usar um servidor DNS 'named / bind' e quiser limpar o cache, apenas reinicie este serviço (Freebsd: /etc/rc.d/named restart ), mas não há nenhum motivo para isso.

If a DNS entry changes, the change gets picked up much later.

Como isso pode ser? Você executa um servidor DNS ou não? Se você executar um servidor DNS secundário, basta obter uma cópia da zona do servidor primário e não há sentido em esvaziar o cache. Você pode enviar a zona de atualização do servidor do servidor principal, excluindo o arquivo de zona e reiniciando o serviço DNS. Se você executar o DNS primário e quiser atualizar as informações da zona, altere a serial na zona e reinicie o serviço:

# /etc/rc.d/named restart (for named)
# rndc (for bind9)

Para atualizar as informações da zona. Para verificar se você acertar o dns, use:

# dig @dns_server example.com

pushes me to move software to Windows that has ipconfig /flushdns

Para quê?

    
por 01.11.2014 / 19:16
1

Supondo que você esteja executando o Daemon de Cache do Serviço de Nomes, execute "nscd -i hosts" como root

    
por 01.11.2014 / 05:54
1

O que você pode querer fazer é uma combinação dos seguintes.

Se você souber que várias alterações de entrada na sua zona DNS mudam rapidamente, defina o TTL como um valor menor para a zona.

Geralmente, existe um processo NameServerCacheDaemon (nscd) que é executado na versão padrão do Linux (não tenho certeza sobre o FreeBSD). Uma maneira rápida de limpar o cache é reiniciar esse daemon.

Por fim, se você estiver executando um servidor DNS de cache em seus hosts, será possível reiniciar facilmente o serviço de DNS e isso limpará o cache. Eu acho que pode até haver um cache claro se você usar o comando dns control.

    
por 01.11.2014 / 08:27