Eu estava usando este comando para verificar se configuraria as coisas corretamente com um provedor DNS:
host hostname.example.com ns1.example-nameserver.com
Tanto quanto posso dizer, isso pede ns1.example-nameserver.com
para procurar hostname.example.com
e relata a resposta. Eu estava recebendo uma resposta de host não encontrada, então pensei que tinha feito errado. No entanto, sem especificar o nome do servidor (permitindo assim o nome do servidor do meu ISP para procurá-lo) eu tenho a resposta correta ( hostname
se um CNAME
se importa). Não consegui entender isso, então procurei e encontrei o dig
comando:
dig @ns1.example-nameserver.com hostname.example.com
Tanto quanto posso dizer, isso faz o mesmo que o host
comando - pede a um servidor de nomes específico para procurar um host. Portanto, concluo que eles devem fazê-lo de maneira diferente e que os servidores de nomes em cache devem usar o mesmo método que dig
.
Minha conclusão é certa ou errada, se estiver certa:
Qual é a diferença entre esses dois métodos de pesquisa?
Se estiver errado:
Quais são os meus mal-entendidos sobre o DNS e os comandos host
e dig
que me levaram a essa conclusão?
Exemplo de saída:
$ host cardiff.tzmchapters.org ns1.livedns.co.uk
Using domain server:
Name: ns1.livedns.co.uk
Address: 213.171.192.250#53
Aliases:
Host cardiff.tzmchapters.org not found: 3(NXDOMAIN)
$ dig @ns1.livedns.co.uk cardiff.tzmchapters.org
; <<>> DiG 9.8.3-P1 <<>> @ns1.livedns.co.uk cardiff.tzmchapters.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 23620
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;cardiff.tzmchapters.org. IN A
;; ANSWER SECTION:
cardiff.tzmchapters.org. 3600 IN CNAME ghs.google.com.
;; AUTHORITY SECTION:
google.com. 3600 IN SOA ns1.livedns.co.uk. admin.google.com. 1354213742 10800 3600 604800 3600
;; Query time: 27 msec
;; SERVER: 213.171.192.250#53(213.171.192.250)
;; WHEN: Mon Apr 22 23:47:05 2013
;; MSG SIZE rcvd: 128
fonte
dig
ehost
relateNXDOMAIN
. Comdig
você pode vê-lo no cabeçalho (5ª linha não em branco da saída) e comhost
isso é mais óbvio.NXDOMAIN
significa que o domínio não existe. No entanto, aCNAME
é retornado na seção de respostas! Eu acredito que é um bug no servidor DNS!dig
ehost
tanto enviar exatamente o mesmo pacote de consulta, obter o mesmo pacote de resposta exata (além de quaisquer marcas de tempo), mas interpretá-lo de forma diferente? Será quehost
sai assim que vêNXDOMAIN
?Respostas:
host
,,dig
enslookup
todos compartilham quase a mesma funcionalidade. No caso de você estar perguntando sobre (fazer uma pergunta DNS específica para um servidor de nomes específico)dig
ehost
(e de fatonslookup
) se comportar exatamente da mesma maneira.Para solução de problemas de DNS,
dig
é preferível porque seu formato de saída é mais "bruto": na saída, ele mostra diretamente o conteúdo de todos os 4 campos na resposta DNS: pergunta, resposta, autoridade e seções adicionais (além dos sinalizadores no cabeçalho) , e também tem mais opções.host
, por outro lado, possui um formato de saída mais amigável.Se você não precisar de uma opção que um dos comandos possua e os outros não, ou de uma informação que um deles gera e os outros não, então tudo se resume a uma questão de preferência.
fonte
host
mas a resposta correta ao usardig
? Mesmo se o servidor estiver configurado usando uma configuração específica (por opção ou acidente) para causar isso, ele deverá conseguir diferenciar as solicitações.dig
deu uma resposta real e não um registro na seção adicional ou autoridade? Como Renan sugere, pode ajudar a mostrar a saída.host
funciona bem. Tente você mesmo e deixe-me saber os resultados.dig
consulta é feita de maneira diferente, como faria um servidor de nomes?Se você estiver usando o nome de host que não seja o FQDN, os resultados poderão ser diferentes, pois
host
usarão os domínios de pesquisaresolv.conf
, enquantodig
não o padrão.Você precisa usar a
+search
opção se desejardig
usarresolv.conf
(ou adicioná-lo a~/.digrc
).Por exemplo:
fonte