Como usar o comando dig no Linux

Conteúdo

Uma janela de terminal estilizada em um sistema Linux.

El Linux dig O comando permite que você consulte os servidores DNS e execute pesquisas DNS. Você também pode encontrar o domínio ao qual um endereço IP leva. Vamos mostrar como!

Como funciona o comando dig

As pessoas usam Linux dig comando para consultar os servidores do Sistema de Nomes de Domínio (DNS). dig é um acrônimo para Informações de domínio Groper. Com dig, você pode consultar os servidores DNS para obter informações sobre vários registros DNS, incluindo endereços de host, trocas de correio, servidores de nomes e informações relacionadas. Pretendia ser uma ferramenta para diagnosticar problemas de DNS. Apesar disto, você pode usá-lo para pesquisar e aprender mais sobre DNS, que é um dos sistemas centrais que mantêm o tráfego de roteamento da Internet.

A Internet usa endereços de protocolo da Internet (IP) para identificarubicaciones” na web, mas as pessoas usam nomes de domínio. Quando você digita um nome de domínio em um aplicativo, como um navegador da web ou cliente SSH, algo precisa ser traduzido do nome de domínio para o endereço IP real. É aqui que entra o sistema de nomes de domínio..

Quando você usa um nome de domínio com qualquer programa conectado à Internet, seu roteador local não pode resolver isso (a menos que armazenado em cache de uma solicitação anterior). Por isso, seu roteador consulta o servidor DNS do seu provedor de internet (ISP) ou qualquer outra pessoa que você configurou seu sistema para usar. Eles são chamados de servidores precursores DNS..

Se o servidor DNS recebeu recentemente a mesma solicitação de outra pessoa no mesmo computador, a solução pode estar em Está esconderijo. Se for esse o caso, apenas envie as mesmas informações para o seu programa.

Se o servidor DNS precursor não puder localizar o domínio em seu cache, contata um DNS. servidor de nomes raiz. Um servidor raiz não conterá as informações necessárias para resolver nomes de domínio em endereços IP, mas conterá listas de servidores que podem contribuir com sua solicitação.

O servidor raiz olha para o domínio de nível superior ao qual pertence o seu nome de domínio, como .COM, .ORG, .CO.UK, etc. Em seguida, ele envia uma lista dos servidores de domínio de nível superior que tratam desses tipos de domínios para o servidor DNS precursor.. O servidor DNS precursor pode fazer sua solicitação mais uma vez, para um servidor de domínio de nível superior.

O servidor de domínio de nível superior envia os detalhes do servidor de nome autorizado (onde os detalhes do domínio são armazenados) para o servidor DNS precursor. Depois de, o servidor DNS consulta o servidor de nomes autorizado que hospeda a zona do domínio que você inseriu originalmente em seu programa. O servidor de nomes autoritativo envia o endereço IP para o servidor DNS, naquela, na sua vez, envia para você.

Instalação de escavação

dig já estava instalado em nossos computadores Ubuntu 18.04 e Fedora 30. Apesar disto, tivemos que instalá-lo no computador Manjaro 18.04 com o seguinte comando:

sudo pacman -Sy bind-tools

Introdução à escavação

Em nosso primeiro exemplo, vamos retornar os endereços IP associados a um nome de domínio. Frequentemente, vários endereços IP estão associados a um único nome de domínio. Isso geralmente acontece se o balanceamento de carga é usado, como um exemplo.

Nós usamos o +short opção de consulta, como é mostrado a seguir, o que nos dá uma resposta concisa:

seu systempeaker.com + short

Todos os endereços IP associados ao domínio systempeaker.com são listados para nós. Do outro lado do espectro, e não use o +short opção de consulta, a saída é bastante detalhada.

Então, nós escrevemos o seguinte para canalizá-lo less:

você systempeaker.com | menos

A saída é mostrada em less, Como mostrado abaixo.

Aqui está a lista completa:

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> systempeaker.com
;; opções globais: +cmd
;; Tenho a resposta:
;; ->>CABEÇALHO<<- Código de operação: CONSULTA, status: NOERROR, Eu iria: 12017
;; bandeiras: qr rd ra; CONSULTA: 1, RESPONDER: 4, AUTORIDADE: 0, ADICIONAL: 1

;; OPT PSEUDOSECÇÃO:
; EDNS: versão: 0, bandeiras:; udp: 65494
;; SEÇÃO DE QUESTÕES:
;systempeaker.com. EM UM

;; SEÇÃO DE RESPOSTAS:
systempeaker.com. 3551 EM UM 151.101.194.217
systempeaker.com. 3551 EM UM 151.101.130.217
systempeaker.com. 3551 EM UM 151.101.66.217
systempeaker.com. 3551 EM UM 151.101.2.217

;; Tempo de consulta: 0 mseg
;; SERVIDOR: 127.0.0.53#53(127.0.0.53)
;; QUANDO: Dom mar 22 07:44:37 Edt 2020
;; MSG SIZE rcvd: 106

Vamos repassar peça por peça.

Cabeçalho

Primeiro, vamos dar uma olhada no que temos no cabeçalho:

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> systempeaker.com
;; opções globais: +cmd
;; Tenho a resposta:
;; ->>CABEÇALHO<<- Código de operação: CONSULTA, status: NOERROR, Eu iria: 12017
;; bandeiras: qr rd ra; CONSULTA: 1, RESPONDER: 4, AUTORIDADE: 0, ADICIONAL: 1

Agora, isso é o que tudo isso significa:

  • Primeira linha: A versão de dig e o domínio que foi consultado.
  • Opções globais: Como veremos, Você pode usar dig para consultar vários domínios simultaneamente. Esta linha mostra as alternativas que foram aplicadas a todas as consultas de domínio. Em nosso exemplo simples, era apenas o padrão +cmd (comando) opção.
  • Código de operação: Consulta: Este é o tipo de operação que foi solicitada, nesta circunstância, foi uma query. Este valor também pode ser iquery para uma consulta reversa, o status se você estiver apenas testando a integridade do sistema DNS.
  • Estado: Noerror: Não houve erros e a solicitação foi resolvida com sucesso.
  • EU IRIA: 12017: Este ID aleatório une a solicitação e a solução.
  • Banderas: qr rd ra: Estes representam query, recursion desired, e recursion available. A recursão é uma forma de busca DNS (o outro é iterativo). Você também pode ver AA, O que significa resposta autorizada?, o que significa que um servidor de nomes autorizado forneceu a solução.
  • Consulta: 1: O número de consultas nesta sessão, o que foi um.
  • Responder: 4: O número de respostas nesta resposta, o que é quatro.
  • Autoridade: 0: O número de respostas que vêm de um servidor de nomes autorizado, que era zero nesta circunstância. A solução foi retornada do cache de um servidor DNS precursor. Não haverá seção autorizada na solução.
  • Adicional: 1: Há uma informação adicional. (curiosamente, nada é incluído a menos que este valor seja dois ou mais).

Pseudossecção decantada

A seguir, vemos o seguinte na pseudossecção Opt:

;; OPT PSEUDOSECÇÃO:
; EDNS: versão: 0, bandeiras:; udp: 65494

Vamos analisar isso:

  • EDNS: versão 0: A versão de Sistema de extensão DNS que se está usando. EDNS transmite dados espalhados e sinalizadores expandindo o tamanho do Protocolo de datagrama do usuário (UDP) pacotes. Isso é indicado por uma bandeira redimensionável.
  • banderas: Sem sinalizadores em uso.
  • udp: 4096: Tamanho do pacote UDP.

Seção de perguntas

Na seção de perguntas, nós vemos o seguinte:

;; SEÇÃO DE QUESTÕES:
;systempeaker.com. EM UM

Isso é o que isso significa:

  • systempeaker.com: O nome de domínio que estamos consultando.
  • SOBRE: Estamos fazendo uma consulta de classe de internet.
  • UMA: A menos que especifiquemos de outra forma, dig irá solicitar um registro A (Morada) do servidor DNS.

Seção de resposta

A seção Resposta contém as seguintes quatro respostas que recebemos do servidor DNS:

systempeaker.com. 3551 EM UM 151.101.194.217
systempeaker.com. 3551 EM UM 151.101.130.217
systempeaker.com. 3551 EM UM 151.101.66.217
systempeaker.com. 3551 EM UM 151.101.2.217

Isso é o que essas respostas significam:

  • 3551: Este é o tempo de vida (TTL), um inteiro de 32 bits assinados contendo o intervalo de tempo durante o qual um registro pode ser armazenado em cache. Quando expira, os dados devem ser usados ​​em uma resposta a uma solicitação até que o servidor DNS os atualize.
  • SOBRE: Executamos uma consulta de classe da Internet.
  • UMA: Solicitamos um registro A do servidor DNS.

Seção de Estatísticas

Estatísticas é a seção final e contém as próximas informações:

;; Tempo de consulta: 0 mseg 
;; SERVIDOR: 127.0.0.53#53(127.0.0.53) 
;; QUANDO: Dom mar 22 07:44:37 Edt 2020 
;; MSG SIZE rcvd: 106

Isso é o que temos:

  • Tempo de consulta: 0 mseg: O tempo que levou para obter a solução.
  • SERVIDOR: 127.0.0.53 # 53 (127.0.0.53): O endereço IP e o número da porta do servidor DNS que respondeu. Para este caso, aponta para o solucionador de stub de cache local. Isso encaminha as solicitações de DNS para os servidores DNS upstream que estão configurados. No computador de teste de Manajro, o endereço que aparece aqui era 8.8.8.8 # 53, o que é Serviço de DNS público do Google.
  • QUANDO: Julgamento 22 de março 07:44:37 Edt 2020: Quando o pedido foi feito.
  • Rcvd TAMANHO DA MENSAGEM: 106: O tamanho da mensagem recebida do servidor DNS.

Seja seletivo

Você não deve se contentar com as duas pontas dos lábios tensos e falantes. a dig O comando permite que você inclua ou exclua seletivamente seções dos resultados.

As seguintes opções de consulta removerão essa seção dos resultados:

  • + sem comentários: Não mostrar linhas de comentários.
  • + sem autoridade: Não mostrar seção de autoridade.
  • + nenhum adicional: Não mostrar a seção adicional.
  • + nostats: Não mostrar seção de estatísticas.
  • + sem resposta: Não mostrar a seção de resposta.
  • + notodos: Não mostrar nada!

a +noall A opção de consulta em geral é combinada com uma das opções acima para incluir uma seção nos resultados. Então, em vez de escrever uma longa sequência de alternativas de consulta para desativar várias seções, você pode usar +noall para desligar todos eles.

Depois de, você pode usar as seguintes opções de consulta inclusivas para reativar aquelas que deseja ver:

  • + comentários: Mostrar linhas de comentários.
  • + autoridade: Mostrar seção de autoridade.
  • + adicional: Mostrar seção adicional.
  • + Estatisticas: Mostrar seção de estatísticas.
  • + responder: Mostrar a seção de resposta.
  • + tudo: Mostrar tudo.

Escrevemos o seguinte para fazer uma solicitação e excluir linhas de comentários:

seu systempeaker.com + nocomments

Se usarmos o +noall opção de consulta sozinha, como é mostrado a seguir, não obteremos nenhum resultado útil:

dig systempeaker.com + noall

Podemos adicionar seletivamente as seções que queremos ver. Para adicionar a seção de resposta, nós escrevemos o seguinte:

dig systempeaker.com + noall + answer

Se escrevermos o seguinte para ligar +stats, também veremos a seção de estatísticas:

dig systempeaker.com + noall + answer + stats

a +noall +answer A combinação é frequentemente usada. Você pode adicionar outras seções à linha de comando conforme necessário. Se você quiser evitar escrever +noall +answer na linha de comando toda vez que você usa dig, puede ponerlos en un archivo de configuración llamado “.digrc”. Ele está localizado em seu diretório pessoal.

Escrevemos o seguinte para criar um com echo:

eco "+não + resposta" > $HOME / .digrc

Então podemos escrever o seguinte para verificar seu conteúdo:

cat .digrc

Essas duas opções agora se aplicam a todos os usos futuros de dig, Como mostrado abaixo:

dig ubuntu.org
dig linux.org
dig github.com

Está dig O arquivo de configuração será usado para os exemplos restantes nesta postagem.

Registros DNS

Informações devolvidas ao seu dig as solicitações são extraídas de diferentes tipos de registros armazenados no servidor DNS. A menos que peçamos algo diferente, dig verifique o registro A (Morada). A seguir estão os tipos de registros que são comumente usados ​​com dig:

  • Um arquivo: Vincule o domínio a um endereço IP de versão 4.
  • Registro MX: Os registros de troca de mensagens direcionam os e-mails enviados aos domínios para o servidor de e-mail correto.
  • Registro NS: Os registros do servidor de nomes delegam um domínio (ou subdomínio) a um conjunto de servidores DNS.
  • Registro TXT: Os registros de texto armazenam informações baseadas em texto sobre o domínio. Em geral, pode ser usado para suprimir e-mails falsos ou falsos.
  • Registro SOA: Os registros de início de autoridade podem conter muitas informações sobre o domínio. Aqui, pode encontrar o servidor de nomes principal, a parte responsável, um carimbo de data / hora para mudanças, a frequência de atualizações de zona e uma série de limites de tempo para novas tentativas e abandono.
  • TTL: O tempo de vida é uma configuração para cada registro DNS que especifica por quanto tempo um servidor DNS precursor pode armazenar em cache cada consulta DNS. Quando esse tempo acabar, os dados devem ser atualizados para solicitações subsequentes.
  • ALGUM: Isso diz dig para retornar todo tipo de registro DNS que puder.

Especificar o tipo de registro A não altera a ação padrão, que é verificar o registro de endereço e obter o endereço IP, como é mostrado a seguir:

dig redhat.com A

Para verificar os registros de troca de e-mail, usamos a próxima bandeira MX:

dig yahoo.com MX

A sinalização do servidor de nomes retorna o seguinte nome dos servidores de nomes raiz associados ao domínio de nível superior:

você fedora.com NS

Para verificar o início do registro de autoridade, nós escrevemos a próxima bandeira SOA:

dig manjaro.com SOA

O sinalizador TTL nos mostrará o tempo de vida dos dados no cache do servidor DNS. Se fizermos uma série de solicitações, vemos que o tempo de vida é reduzido a zero e depois voltamos ao seu valor inicial.

Nós escrevemos o seguinte:

dig utiliza.gov TTL

Para ver os registros de texto, nós escrevemos a bandeira TX:

dig utiliza.gov TXT

Especifique o servidor DNS

Se você quiser usar um servidor DNS específico para sua solicitação, você pode usar o símbolo de arroba (@) para passar para dig como parâmetro de linha de comando.

Com o servidor DNS padrão (Veja abaixo), dig refere-se ao solucionador de stub de armazenamento em cache local em 127.0.0.53.

dig utilizar.gov + estatísticas

Agora, escrevemos o seguinte para usar o servidor DNS público do Google em 8.8.8.8:

dig @ 8.8.8.8 utiliza.gov + stats

Usando dig com múltiplos domínios

Podemos passar vários domínios para dig na linha de comando, como é mostrado a seguir:

você ubuntu.org fedora.org manjaro.com

Se você verifica regularmente um conjunto de domínios, você pode armazená-los em um arquivo de texto e passá-lo para dig. Todos os domínios no arquivo serão verificados sucessivamente.

Nuestro archivo se llamadomains.txt”. Usaremos cat para mostrar seu conteúdo e depois passá-lo para dig com ele -f (Arquivo) opção. Nós escrevemos o seguinte:

cat domains.txt
dig -f domains.txt

Pesquisas reversas de DNS

Se você tem um endereço IP e quer saber para onde está indo, você pode tentar uma busca DNS reversa. Se resolver para um servidor registrado com um servidor DNS, é possível que você descubra seu domínio.

Se pode, depende da presença de um PTR (registrador de ponteiro). PTRs resolvem um endereço IP para um nome de domínio completo. Apesar disto, porque estes não são obrigatórios, nem sempre estão presentes em um domínio.

Vamos ver se podemos descobrir para onde o endereço IP nos leva 209.51.188.148. Nós escrevemos o seguinte, usando o -x (pesquisa reversa) opção:

dig -x 209.51.188.148

Presto! O endereço IP é resolvido para gnu.org.

Porque um PTR é um registro DNS e sabemos dig pode solicitar registros DNS específicos, Não poderíamos apenas perguntar dig recupere o PTR para nós? sim, nós podemos, mas precisa de um pouco mais de trabalho.

Temos que fornecer o endereço IP na ordem inversa e alinhada .in-addr.arpa ao final, como é mostrado a seguir:

dig ptr 148.188.51.209.in-addr.arpa

Nós obtemos o mesmo resultado; só exigiu um pouco mais de esforço.

Você pode cavá-lo?

Todos nós usamos a internet todos os dias, e mentes curiosas muitas vezes se perguntam como a mágica acontece quando digitamos o nome de um portal da web em um navegador. Com dig, pode explorar processos de conjuração de rede.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.