J'utilisais cette commande pour vérifier si j'avais configuré correctement les choses avec un fournisseur DNS:
host hostname.example.com ns1.example-nameserver.com
Pour autant que je sache, cela demande ns1.example-nameserver.com
de rechercher hostname.example.com
et de rapporter la réponse. J'obtenais une réponse d'hôte introuvable alors j'ai pensé que je l'avais mal fait. Cependant, sans préciser leur nom serveur (ce qui permet nom serveur de mon fournisseur d' accès Internet pour le rechercher) Je suis la bonne réponse ( hostname
est un CNAME
si elle importe). Je ne pouvais pas comprendre cela, j'ai donc cherché et trouvé la dig
commande:
dig @ns1.example-nameserver.com hostname.example.com
Pour autant que je sache, cela fait la même chose que la host
commande - demande à un serveur de noms spécifique de rechercher un hôte. Je conclus donc qu'ils doivent le faire différemment et que la mise en cache des serveurs de noms doit utiliser la même méthode que dig
.
Ma conclusion est bonne ou mauvaise, si elle est juste:
Quelle est la différence entre ces deux méthodes de recherche?
Si c'est faux:
Quels sont mes malentendus à propos du DNS et des commandes host
et dig
qui m'ont conduit à cette conclusion?
Exemple de sortie:
$ 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
la source
dig
ethost
signalezNXDOMAIN
. Avecdig
vous pouvez le voir dans l'en-tête (5ème ligne non vierge de la sortie) et avechost
c'est plus évident.NXDOMAIN
signifie que le domaine n'existe pas. Pourtant, unCNAME
est retourné dans la section réponse! Je crois que c'est un bug dans le serveur DNS!dig
que leshost
deux envoient exactement le même paquet de requête, obtiennent exactement le même paquet de réponse (à part les horodatages), mais l'interprètent différemment?host
Renfloue- t-il dès qu'il voitNXDOMAIN
?Réponses:
host
,dig
etnslookup
tous partagent la plupart des mêmes fonctionnalités. Dans le cas où vous posez des questions sur (poser une question DNS particulière à un serveur de noms particulier),dig
ethost
(et en effetnslookup
) vous comportez exactement la même chose.Pour le dépannage DNS,
dig
est préférable car son format de sortie est plus "brut": dans sa sortie, il affiche directement le contenu des 4 champs de la réponse DNS: question, réponse, autorité et sections supplémentaires (plus les indicateurs dans l'en-tête) , et il a également plus d'options.host
, d'autre part, a un format de sortie plus convivial.Si vous n'avez pas besoin d'une option que l'une des commandes possède et que les autres n'ont pas, ou d'un élément d'information que l'un d'eux génère et les autres non, alors cela revient à une question de préférence.
la source
host
mais la bonne réponse lors de l'utilisationdig
? Même si le serveur est configuré en utilisant un paramètre particulier (par choix ou accident) pour provoquer cela, il doit être capable de différencier les demandes.dig
vous a donné une réponse réelle et non un enregistrement dans la section supplémentaire ou d'autorisation? Comme le suggère Renan , il peut être utile d'afficher la sortie.host
fonctionne bien. Veuillez l'essayer vous-même et faites-moi connaître les résultats.dig
requête est-elle différente, comme le ferait un serveur de noms?Si vous utilisez le nom d'hôte non FQDN, les résultats peuvent être différents car
host
ils utiliseront les domaines de recherche dansresolv.conf
, alors que cedig
n'est pas le cas par défaut.Vous devez utiliser l'
+search
option si vous souhaitezdig
utiliserresolv.conf
(ou l'ajouter à~/.digrc
).Par exemple:
la source