O dig
comando Linux permite consultar servidores DNS e realizar pesquisas DNS. Você também pode encontrar o domínio ao qual um endereço IP leva de volta. Vamos mostrar como!
Índice
As pessoas usam o dig
comando Linux para consultar os servidores DNS (Sistema de Nomes de Domínio) . dig
é um acrônimo para Domain Information Groper . Com o 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. O objetivo era ser uma ferramenta para diagnosticar problemas de DNS. No entanto, você pode usá-lo para vasculhar e aprender mais sobre o DNS, que é um dos sistemas centrais que mantêm o tráfego de roteamento da Internet.
A internet usa endereços de protocolo de internet (IP) para identificar “locais” 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 resolvê-lo (a menos que seja armazenado em cache de uma solicitação anterior). Portanto, seu roteador consulta o servidor DNS do seu provedor de serviços de Internet (ISP) ou qualquer outro que você tenha configurado para usar no sistema. 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 resposta pode estar em seu cache. Se for esse o caso, ele simplesmente envia as mesmas informações de volta ao seu programa.
Se o servidor DNS precursor não puder localizar o domínio em seu cache, ele contata um servidor DNS 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 ajudar em sua solicitação.
O servidor raiz examina o domínio de nível superior ao qual seu nome de domínio pertence, como .COM, .ORG, .CO.UK e assim por diante. Em seguida, ele envia uma lista dos servidores de domínio de nível superior que tratam desses tipos de domínios de volta ao servidor DNS precursor. O servidor precursor DNS pode então 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 nomes autoritativo (onde os detalhes do domínio são armazenados) de volta para o servidor DNS precursor. O servidor DNS então consulta o servidor de nomes autoritativo que hospeda a zona do domínio que você inseriu originalmente em seu programa. O servidor de nomes autoritativo envia o endereço IP de volta ao servidor DNS, que, por sua vez, o envia de volta para você.
dig
já estava instalado em nossos computadores Ubuntu 18.04 e Fedora 30. No entanto, tivemos que instalá-lo no computador Manjaro 18.04 com o seguinte comando:
sudo pacman -Sy bind-tools
Em nosso primeiro exemplo, retornaremos os endereços IP associados a um nome de domínio. Freqüentemente, vários endereços IP são associados a um único nome de domínio. Isso geralmente acontece se o balanceamento de carga for usado, por exemplo.
Usamos a +short
opção de consulta, conforme mostrado abaixo, o que nos dá uma resposta concisa:
cavar howtogeek.com + curto
Todos os endereços IP associados ao domínio howtogeek.com são listados para nós. No outro extremo do espectro, se não usarmos a +short
opção de consulta, a saída será bastante prolixa.
Então, digitamos o seguinte para canalizar less
:
cavar howtogeek.com | Menos
A saída é exibida em less
, conforme mostrado abaixo.
Aqui está a lista completa:
; << >> DiG 9.11.3-1ubuntu1.11-Ubuntu << >> howtogeek.com ;; opções globais: + cmd ;; Resposta obtida: ;; - >> HEADER << - opcode: QUERY, status: NOERROR, id: 12017 ;; sinalizadores: qr rd ra; CONSULTA: 1, RESPOSTA: 4, AUTORIDADE: 0, ADICIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: versão: 0, sinalizadores :; udp: 65494 ;; SEÇÃO DE PERGUNTAS: ; howtogeek.com. EM UM ;; SEÇÃO DE RESPOSTA: howtogeek.com. 3551 IN A 151.101.194.217 howtogeek.com. 3551 IN A 151.101.130.217 howtogeek.com. 3551 IN A 151.101.66.217 howtogeek.com. 3551 IN A 151.101.2.217 ;; Tempo de consulta: 0 mseg ;; SERVIDOR: 127.0.0.53 # 53 (127.0.0.53) ;; QUANDO: Dom, 22 de março, 07:44:37 EDT 2020 ;; MSG SIZE rcvd: 106
Vamos dissecar essa peça por peça.
Primeiro, vamos dar uma olhada no que temos no cabeçalho:
; << >> DiG 9.11.3-1ubuntu1.11-Ubuntu << >> howtogeek.com ;; opções globais: + cmd ;; Resposta obtida: ;; - >> HEADER << - opcode: QUERY, status: NOERROR, id: 12017 ;; sinalizadores: qr rd ra; CONSULTA: 1, RESPOSTA: 4, AUTORIDADE: 0, ADICIONAL: 1
Agora, aqui está o que tudo isso significa:
dig
e o domínio consultado.dig
para consultar vários domínios simultaneamente. Esta linha mostra as opções que foram aplicadas a todas as consultas de domínio. Em nosso exemplo simples, era apenas a opção padrão +cmd
(comando).query
. Esse valor também pode ser iquery
para uma consulta inversa ou status
se você estiver apenas testando o estado do sistema DNS.query
, recursion desired
e recursion available
. A recursão é uma forma de pesquisa DNS (a outra é iterativa). Você também pode ver AA
, que significa Resposta Autoritativa, significando que um Servidor de Nomes Autoritativo forneceu a resposta.A seguir, vemos o seguinte na Pseudossecção Opt:
;; OPT PSEUDOSECTION: ; EDNS: versão: 0, sinalizadores :; udp: 65494
Vamos decompô-lo:
Na seção Pergunta, vemos o seguinte:
;; SEÇÃO DE PERGUNTAS: ; howtogeek.com. EM UM
Aqui está o que isso significa:
dig
solicitará um registro A (endereço) do servidor DNS.Seção de resposta
A seção Resposta contém as seguintes quatro respostas que recebemos do servidor DNS:
howtogeek.com. 3551 IN A 151.101.194.217 howtogeek.com. 3551 IN A 151.101.130.217 howtogeek.com. 3551 IN A 151.101.66.217 howtogeek.com. 3551 IN A 151.101.2.217
Aqui está o que essas respostas significam:
Estatísticas é a seção final e contém as seguintes informações:
;; Tempo de consulta: 0 mseg ;; SERVIDOR: 127.0.0.53 # 53 (127.0.0.53) ;; QUANDO: Dom, 22 de março, 07:44:37 EDT 2020 ;; MSG SIZE rcvd: 106
Aqui está o que temos:
Você não tem que se conformar com os dois extremos de boca fechada e tagarela. O dig
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:
A +noall
opção de consulta geralmente é combinada com uma das anteriores para incluir uma seção nos resultados. Portanto, em vez de digitar uma longa sequência de opções de consulta para desativar várias seções, você pode usar +noall
para desativá-las todas.
Você pode então usar as seguintes opções de consulta inclusivas para ativar aquelas que deseja ver novamente:
Nós digitamos o seguinte para fazer uma solicitação e excluir as linhas de comentário:
dig howtogeek.com + nocomments
Se usarmos a +noall
opção de consulta por conta própria, conforme mostrado abaixo, não obteremos nenhum resultado útil:
cavar howtogeek.com + noall
Podemos adicionar seletivamente as seções que queremos ver. Para adicionar a seção de resposta, digitamos o seguinte:
dig howtogeek.com + noall + resposta
Se digitarmos o seguinte para ativar +stats
, também veremos a seção de estatísticas:
dig howtogeek.com + noall + resposta + estatísticas
A +noall +answer
combinação é usada com freqüência. Você pode adicionar outras seções à linha de comando, conforme necessário. Se você quiser evitar digitar +noall +answer
na linha de comando toda vez que usar dig
, você pode colocá-los em um arquivo de configuração chamado “.digrc.” Ele está localizado em seu diretório inicial.
Nós digitamos o seguinte para criar um com echo
:
echo "+ noall + answer"> $ HOME / .digrc
Podemos então digitar o seguinte para verificar seu conteúdo:
cat .digrc
Essas duas opções agora serão aplicadas a todos os usos futuros de dig
, conforme mostrado abaixo:
dig ubuntu.org
dig linux.org
dig github.com
Este dig
arquivo de configuração será usado para os exemplos restantes neste artigo.
As informações retornadas às suas dig
solicitações são obtidas de diferentes tipos de registros mantidos no servidor DNS. A menos que solicitemos algo diferente, consulte dig
o registro A (endereço). A seguir estão os tipos de registros comumente usados com dig
:
dig
para retornar todos os tipos de registro DNS que puder.Especificar o tipo de registro A não altera a ação padrão, que é consultar o registro de endereço e obter o endereço IP, conforme mostrado abaixo:
dig redhat.com A
Para consultar os registros de troca de correio, usamos o seguinte sinalizador 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:
dig fedora.com NS
Para consultar o início do registro de autoridade, digitamos o seguinte sinalizador 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 o tempo de vida reduzido a nada e, então, voltamos ao seu valor inicial.
Nós digitamos o seguinte:
dig usa.gov TTL
Para ver os registros de texto, digitamos o sinalizador TX:
dig usa.gov TXT
Se desejar usar um servidor DNS específico para sua solicitação, você pode usar o sinal de arroba ( @
) para passá-lo dig
como um parâmetro de linha de comando.
Com o servidor DNS padrão (veja abaixo), faz dig
referência ao resolvedor de stub de cache local em 127.0.0.53.
dig usa.gov + estatísticas
Agora, digitamos o seguinte para usar o servidor DNS público do Google em 8.8.8.8:
dig @ 8.8.8.8 usa.gov + estatísticas
Podemos passar vários domínios para dig
na linha de comando, conforme mostrado abaixo:
dig ubuntu.org fedora.org manjaro.com
Se você verifica regularmente um conjunto de domínios, pode armazená-los em um arquivo de texto e passá-lo para dig
. Todos os domínios no arquivo serão verificados sucessivamente.
Nosso arquivo é chamado de “domains.txt”. Usaremos cat
para mostrar seu conteúdo e, em seguida, passá-lo dig
com a -f
opção (arquivo). Nós digitamos o seguinte:
cat domains.txt
dig -f domains.txt
Se você tiver um endereço IP e quiser saber para onde ele vai, pode tentar uma pesquisa DNS reversa. Se for resolvido para um servidor registrado com um servidor DNS, você poderá descobrir seu domínio.
Se você pode ou não, depende da presença de um PTR (registro de ponteiro). PTRs resolvem um endereço IP para um nome de domínio totalmente qualificado . No entanto, como não são obrigatórios, nem sempre estão presentes em um domínio.
Vamos ver se podemos descobrir para onde nos leva o endereço IP 209.51.188.148. Nós digitamos o seguinte, usando a opção -x
(pesquisa reversa):
dig -x 209.51.188.148
Presto! O endereço IP é resolvido para gnu.org.
Como um PTR é um registro DNS e sabemos que dig
podemos solicitar registros DNS específicos, não poderíamos simplesmente pedir dig
para recuperar o PTR para nós? Sim, podemos, mas dá um pouco mais de trabalho.
Temos que fornecer o endereço IP na ordem reversa e alinhavar .in-addr.arpa
no final, conforme mostrado abaixo:
dig ptr 148.188.51.209.in-addr.arpa
Obtemos o mesmo resultado; apenas exigiu um pouco mais de esforço.
Todos nós usamos a Internet diariamente, e mentes inquisitivas sempre se perguntam como a mágica acontece quando digitamos o nome de um site em um navegador. Com dig
, você pode explorar os processos de conjuração de rede.
Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…
Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…
A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…
A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…
O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…
Para ver suas fotos mais de perto ou para uma edição precisa , você pode…