Question Comment puis-je diriger une requête vers un serveur DNS spécifique?


Je voudrais envoyer une requête à un serveur DNS spécifique, dont je connais l'adresse IP. Ce n'est pas grave si c'est sous Windows ou * nix.

Sous Windows, je peux faire quelque chose comme:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com
Server:  DNSs2.Uni-Marburg.DE
Address:  137.248.21.22

Non-authoritative answer:
Name:    superuser.com
Address:  64.34.119.12

Mais cela utilise les paramètres DNS de la machine locale. Au lieu de cela, je voudrais interroger un serveur DNS spécifique pour vérifier s'il répond correctement à mes requêtes ou s'il répond.

Donc ça devrait être quelque chose comme:

nslookup --dns-ip=8.8.8.8 superuser.com

122
2017-12-14 16:43


origine




Réponses:


Pour les enregistrements de base A et CNAME, vous pouvez simplement faire

nslookup somewhere.com some.dns.server

 

Usage: 
   nslookup [-opt ...]             # interactive mode using default server
   nslookup [-opt ...] - server    # interactive mode using 'server'
   nslookup [-opt ...] host        # just look up 'host' using default server
   nslookup [-opt ...] host server # just look up 'host' using 'server'

ou si vous tapez simplement nslookup sans aucun paramètre, vous pouvez faire beaucoup plus d'options ...

Commands:   (identifiers are shown in uppercase, [] means optional)
NAME            - print info about the host/domain NAME using default server
NAME1 NAME2     - as above, but use NAME2 as server
help or ?       - print info on common commands
set OPTION      - set an option
    all                 - print options, current server and host
    [no]debug           - print debugging information
    [no]d2              - print exhaustive debugging information
    [no]defname         - append domain name to each query
    [no]recurse         - ask for recursive answer to query
    [no]search          - use domain search list
    [no]vc              - always use a virtual circuit
    domain=NAME         - set default domain name to NAME
    srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2, etc.
    root=NAME           - set root server to NAME
    retry=X             - set number of retries to X
    timeout=X           - set initial time-out interval to X seconds
    type=X              - set query type (ex. A,AAAA,A+AAAA,ANY,CNAME,MX,NS,PTR,SOA,SRV)
    querytype=X         - same as type
    class=X             - set query class (ex. IN (Internet), ANY)
    [no]msxfr           - use MS fast zone transfer
    ixfrver=X           - current version to use in IXFR transfer request
server NAME     - set default server to NAME, using current default server
lserver NAME    - set default server to NAME, using initial server
root            - set current default server to the root
ls [opt] DOMAIN [> FILE] - list addresses in DOMAIN (optional: output to FILE)
    -a          -  list canonical names and aliases
    -d          -  list all records
    -t TYPE     -  list records of the given RFC record type (ex. A,CNAME,MX,NS,PTR etc.)
view FILE           - sort an 'ls' output file and view it with pg
exit            - exit the program

161
2017-12-14 16:54



Il est regrettable que le manuel utilise les termes «hôte» et «serveur» plutôt que quelque chose de plus clair, comme «nom de domaine» et «serveur DNS». - ClearCrescendo
Ce n'est pas tout à fait incorrect. Le "nom de domaine" n'est qu'une partie d'un nom d'hôte. Vous pouvez en effet effectuer des recherches uniquement sur la partie "hôte" du nom de domaine complet, en omettant le suffixe de domaine. NSLOOKUP tentera automatiquement d'utiliser les suffixes de recherche configurés dans votre système pour obtenir une correspondance. - TheCompWiz
Vous n'avez pas à accéder pleinement NSLOOKUP pour utiliser les options - la syntaxe est juste un peu bizarre. Exemple: nslookup -all -debug -type=ANY -class=ANY servertolookup.com someDNSserver.com - Coruscate5


Il suffit de creuser dans les options de nslookup, que vous pouvez afficher si vous invoquez nslookup puis en tapant help à l'intérieur du mode interactif nslookup m'a donné la bonne réponse:

C:\Documents and Settings\Anton Daneyko>nslookup help
Server:  DNSs2.Uni-Marburg.DE
Address:  137.248.21.22

*** DNSs2.Uni-Marburg.DE can't find help: Non-existent domain

C:\Documents and Settings\Anton Daneyko>nslookup
Default Server:  DNSs2.Uni-Marburg.DE
Address:  137.248.21.22

> stackoverflow.com 8.8.8.8
Server:  [8.8.8.8]
Address:  8.8.8.8

Non-authoritative answer:
Name:    stackoverflow.com
Address:  64.34.119.12

9
2017-12-14 16:50



J'ai souri quand j'ai vu cette réponse commence par "Just creusering ... ". - Hossein


Oui,   C:\Documents and Settings\Anton Daneyko>nslookup superuser.com recherchera votre propre serveur DNS pour trouver l'adresse IP de superuser.com. Si vous ajoutez l'adresse IP ou le nom d'un autre serveur DNS à la ligne de commande, il recherchera l'adresse IP de superuser.com sur ce serveur DNS donné. Ex:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com 8.8.4.4
Server:  google-public-dns-b.google.com
Address:  8.8.4.4

Non-authoritative answer:
Name:    superuser.com
Addresses:  190.93.245.58
      190.93.246.58
      141.101.114.59
      190.93.247.58
      190.93.244.58

Par ailleurs, 8.8.4.4 est l'adresse IP des serveurs DNS de Google.

Mais, les deux ci-dessus donnent des "réponses ne faisant pas autorité", car aucune d'entre elles n'est une SOA, qui fait autorité pour le domaine superuser.com. Les deux ont une copie mise en cache qui a été propagée depuis SOA. Si vous souhaitez demander au serveur faisant autorité, recherchez d'abord le nom de l'adresse IP du serveur faisant autorité, à l'aide de la commande:

C:\Documents and Settings\Anton Daneyko>nslookup -type=ns superuser.com
Server:  DNSs2.Uni-Marburg.DE
Address:  137.248.21.22

Non-authoritative answer:
superuser.com   nameserver = cf-dns02.superuser.com
superuser.com   nameserver = cf-dns01.superuser.com

cf-dns02.superuser.com  internet address = 173.245.59.4
cf-dns02.superuser.com  AAAA IPv6 address = 2400:cb00:2049:1::adf5:3b04
cf-dns01.superuser.com  AAAA IPv6 address = 2400:cb00:2049:1::adf5:3a35
cf-dns01.superuser.com  internet address = 173.245.58.53

Cela renverra une réponse non officielle de votre serveur DNS local, de la part de Marburg Uni, en nommant tous les serveurs faisant autorité pour le superuser.com. Ensuite, vous pouvez utiliser la commande utilisée précédemment pour demander aux 4 serveurs faisant autorité, comme suit:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com 173.245.59.4
Server:  cf-173-245-59-4.cloudflare.com
Address:  173.245.59.4

Name:    superuser.com
Addresses:  141.101.114.59
      190.93.246.58
      190.93.245.58
      190.93.247.58
      190.93.244.58

Comme vous le voyez, cette fois, le serveur SOA faisant autorité a renvoyé les adresses IP, vous ne voyez donc plus le commentaire "Réponse non autoritaire". Cela est particulièrement utile lorsque vous avez créé un nouveau nom de domaine ou modifié les fournisseurs d'hébergement ou transféré vers un autre registraire de domaine et que vous ne pouvez pas accéder à votre site Web, car les nouvelles adresses IP ne se sont pas propagées même après 24 heures. Ensuite, vous pouvez commencer avec la SOA et vérifier que votre adresse IP correcte est donnée par le serveur DNS, puis la suivre plus bas dans l'arborescence. Bon pour vérifier si les serveurs DNS de Google ont reçu les modifications, et enfin si votre serveur DNS local peut résoudre votre nom de domaine pour corriger l'adresse IP.


7
2017-09-22 13:20





Pour changer votre serveur DNS par défaut dans nslookup, vous pouvez simplement changer le serveur en tapant le serveur NAMEorIPofDNS Dans cet exemple ci-dessous, j'ai changé mon serveur DNS par défaut (192.168.50.21) en un nouveau (4.2.2.3)

C: \ Windows \ system32> nslookup

Serveur par défaut: UnKnown

Adresse: 192.168.50.21

serveur 4.2.2.3

Serveur par défaut: c.resolvers.level3.net

Adresse: 4.2.2.3

>

Maintenant je suis prêt à faire des requêtes sur 4.2.2.3 contre 192.168.50.21


1
2018-03-30 20:02



Cela duplique une autre réponse et n'ajoute aucun nouveau contenu. S'il vous plaît ne pas poster une réponse à moins que vous ayez réellement quelque chose de nouveau à contribuer. - DavidPostill♦
Pas de nouveau contenu peut-être, mais de la valeur. Je préfère cette réponse à long terme :) - Pawel Cioch


vous pouvez configurer le DNS principal à utiliser avec votre connexion.
Accédez à vos propriétés de connexion => Procol Internet (TCP / IP). (l'endroit où vous pouvez définir une adresse IP statique)
Ici, vous pouvez définir manuellement le DNS que vous souhaitez utiliser pour chaque connexion.
Après le test, vous pouvez toujours revenir à sa valeur précédente.


0
2017-12-14 16:50



Je ne pense pas que ce soit un moyen "direct" d'interroger un serveur DNS. - lepe


Obtenir des types d'enregistrement spécifiques à partir du serveur DNS spécifié avec une seule commande

Pour rechercher des types d'enregistrement autres que les enregistrements A et AAAA (et CNAME) par défaut renvoyés par nslookup, en utilisant le serveur DNS, vous spécifiez:

nslookup -q=<record type> <host> <DNS server>

Par exemple, pour renvoyer des enregistrements MX pour le domaine stackexchange.com en utilisant le serveur DNS 8.8.4.4 la commande serait:

nslookup -q=MX stackexchange.com 8.8.4.4

0
2017-09-24 20:07