Gostaria de saber se existe uma maneira de consultar um servidor DNS e ignorar o cache (com dig
). Frequentemente, mudo uma zona no servidor DNS e quero verificar se ele resolve corretamente da minha estação de trabalho. Mas como o servidor armazena em cache as solicitações resolvidas, geralmente recebo as antigas. Reiniciar ou carregar o servidor não é algo realmente agradável.
linux
domain-name-system
dig
Daniel
fonte
fonte
+norecurse
é recomendado.+recurse
por padrão, ocasionalmente, altera a maneira como um servidor DNS interpreta sua pergunta completamente.+trace
cuidado com o cache. Andrew B escreveu uma boa explicação de como o cache pode enganá-lo quando você espera que os servidores de nomes sejam alterados.dig @8.8.8.8 example.com
. os registros parecem muito mais rápidos lá.Não há mecanismo no protocolo DNS para forçar um servidor de nomes a responder sem usar seu cache. A escavação em si não é um servidor de nomes, é simplesmente uma ferramenta que transmite sua consulta aos servidores de nomes que você configurou, usando solicitações DNS padrão. DNS faz incluir uma maneira de dizer a um servidor não usar recursividade, mas isso não é o que você quer. Isso é útil apenas quando você deseja consultar diretamente um servidor de nomes autoritativo.
Se você quiser impedir que um servidor de nomes responda a partir de seu cache, você só poderá fazer isso alterando a configuração no servidor de nomes , mas se você não controlar o servidor de nomes, isso será impossível.
No entanto, você pode obter dig para ignorar os servidores de nomes configurados e executar sua própria solicitação recursiva, que volta aos servidores raiz. Para fazer isso, use a
+trace
opçãoNa prática, uma vez que isso consultará apenas os servidores autorizados em vez do resolvedor de armazenamento em cache local, o resultado não será obsoleto, mesmo que esses servidores utilizem armazenamento em cache interno. O benefício adicional de usar
+trace
é que você pode ver todos os pedidos separados feitos ao longo do caminho.fonte
+norecurse
apenas informa ao servidor de nomes para retornar qualquer informação que ele tenha (incluindo informações em cache, se houver), para que isso não esteja correto.+trace
funcionará porque seguirá a cadeia de recursão até um servidor autorizado.+norecurse
recomendação, pois ela confundia o problema.Algo importante a ser observado aqui, que noto que muitas pessoas nunca incluem quando se fala,
+trace
é que usar+trace
significa que o cliente dig fará o rastreamento, não o servidor DNS especificado em sua configuração (/etc/resolv.conf). Portanto, em outras palavras, seu cliente Dig funcionará como um servidor DNS recursivo, caso você o solicite. Mas - importante, você não tem um cache.Mais detalhes - portanto, se você já pediu um
mx
registro usandodig -t mx example.com
e seu /etc/resolv.conf é 8.8.8.8, fazer qualquer coisa dentro do TTL da zona retornará o resultado em cache. De certa forma, se você está procurando algo sobre sua própria zona e como o Google a vê, meio que envenenou seus resultados de DNS com o Google pelo TTL da sua zona. Não é ruim se você tiver um TTL curto, um pouco de lixo se você tiver um 1hr.Portanto, embora
+trace
o ajude a ver o que seria visto se você estivesse perguntando pela primeira vez ao Google e não tivesse entrada em cache, pode ser uma idéia falsa de que o Google dirá a todos o mesmo que seu+trace
resultado, o que isso não acontecerá se você tiver solicitado anteriormente e tiver um TTL longo, pois ele servirá a partir do cache até o TTL expirar - ENTÃO servirá da mesma forma que o que você+trace
revelou.Não pode ter muitos detalhes IMO.
fonte
dig mydomain.com +trace
apenas retorna osresolvd
resultados do esboço127.0.0.53
. Veja github.com/systemd/systemd/issues/5897+trace
dig, o rastreamento inicia usando o servidor de nomes especificado (por exemplo, 8.8.8.8, se foi o que você configurou) para a primeira pesquisa (a zona raiz), mas depois disso ele usa os servidores de nomes retornados para consultas adicionais. Portanto, se o servidor de nomes configurado não estiver funcionando ou não responder adequadamente a uma consulta para os servidores de nomes raiz, você poderá ter problemas (como no comentário acima).Este bash irá escavar as entradas DNS do example.com do seu primeiro servidor de nomes listado:
Aqui está o mesmo que um alias para um .zshrc (e provavelmente .bashrc):
Aqui está a saída para / .:
Essa solução é complicada o suficiente para ser impraticável de lembrar, mas simples o suficiente para que o problema não seja resolvido.
dig
não é minha especialidade - melhorias são bem-vindas :-)fonte