Eu estou querendo saber se existe uma maneira de consultar um servidor DNS e ignorar o cache (com dig
). Muitas vezes eu mudo uma zona no servidor DNS e quero verificar se ela resolve corretamente na 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 é realmente algo legal.
Você pode usar a
@
sintaxe para pesquisar o domínio de um servidor específico. Se o servidor DNS for autoritativo para esse domínio, a resposta não será um resultado em cache.Você pode encontrar os servidores autorizados solicitando os
NS
registros de um domínio:Não há mecanismo no protocolo DNS para forçar um servidor de nomes a responder sem usar seu cache. O Dig em si não é um servidor de nomes, é simplesmente uma ferramenta que passa sua consulta para os servidores de nomes que você configurou, usando solicitações DNS padrão. O DNS inclui uma maneira de dizer a um servidor para não usar recursão, mas isso não é o que você deseja. Isso só é útil quando você deseja consultar diretamente um servidor de nomes autoritário.
Se você quiser impedir que um servidor de nomes responda 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 é impossível.
Você pode, no entanto, obter dig para ignorar os servidores de nomes configurados e executar sua própria solicitação recursiva que retorna aos servidores raiz. Para fazer isso, use a
+trace
opção.Na prática, como isso só consultará os servidores autorizados em vez do seu resolvedor de cache local, o resultado não ficará obsoleto, mesmo que esses servidores empreguem o cache interno. O benefício adicional de usar
+trace
é que você consegue ver todas as solicitações separadas feitas ao longo do caminho.Algo importante a ser observado aqui, que noto que muitas pessoas nunca incluem quando falam ,
+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). Então, em outras palavras, seu cliente de escavação funcionará como um servidor DNS recursivo, se você perguntar. Mas - importante, você não tem um cache.Mais detalhes - então, 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ê, você meio que envenenou seus resultados de DNS com o Google para o TTL de sua zona. Nada mal se você tiver um TTL curto, um pouco ruim se você tiver um de 1 hora.Portanto, embora
+trace
ajude você a ver o que SERIA visto se você estivesse perguntando ao Google pela PRIMEIRA vez e não tivesse uma entrada em cache, pode dar uma falsa ideia de que o Google estará dizendo a todos o mesmo que seu+trace
resultado, o que não será se você tiver perguntado anteriormente e tiver um TTL longo, pois ele servirá do cache até que o TTL expire - ENTÃO ele servirá da mesma forma que o que você+trace
revelou.Não pode ter muitos detalhes IMO.
Este bash escavará as entradas DNS de example.com do 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 corrigido.
dig
não é minha especialidade - melhorias são bem-vindas :-)Graças a essas soluções, posso verificar a propagação de registros DNS TXT que preciso adicionar à Zona DNS do AZURE, para certificados LetsEncrypt. Aqui está o meu comando dig: