227 votes

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. Le fait qu'il soit sous Windows ou *nix n'a pas vraiment d'importance.

Dans 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. J'aimerais plutôt interroger un serveur DNS spécifique pour vérifier s'il répond correctement à mes requêtes ou s'il ne répond pas du tout.

Donc ça devrait être quelque chose comme :

nslookup --dns-ip=8.8.8.8 superuser.com

301voto

TheCompWiz Points 10142

Pour les enregistrements A et CNAME de base, 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 juste 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

14voto

Anton Daneyko Points 2435

Je creuse juste dans les options de nslookup, que vous pouvez afficher si vous invoquez nslookup et ensuite taper 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

11voto

Bede Amarasekara Points 219

Oui, C:\Documents and Settings\Anton Daneyko>nslookup superuser.com consultera votre propre serveur DNS pour trouver l'adresse IP de superuser.com. Si vous ajoutez l'adresse IP ou le nom d'un serveur DNS différent à la ligne de commande, il recherchera ce serveur DNS donné pour l'adresse IP de superuser.com. 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

Au fait, 8.8.4.4 est l'adresse IP des serveurs DNS de Google.

Mais les deux solutions ci-dessus donnent des "réponses non autorisées", car aucune d'entre elles n'est une SOA, qui fait autorité pour le domaine superuser.com. Les deux ont une copie en cache qui a été propagée à partir de la SOA. Si vous voulez demander le serveur qui fait autorité, trouvez d'abord le nom ou l'adresse IP du serveur qui fait autorité, en utilisant 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

Ceci renverra une réponse non-autoritaire de votre serveur DNS local, de l'Uni de Marburg, nommant tous les serveurs faisant autorité pour le superuser.com. Vous pouvez alors utiliser la commande que nous avons utilisée précédemment pour demander n'importe lequel des 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-ci, le serveur SOA faisant autorité a renvoyé les adresses IP, et vous ne voyez donc plus le commentaire "Non-authoritative answer". Ceci est particulièrement utile, lorsque vous avez créé un nouveau nom de domaine ou changé de fournisseur 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. Vous pouvez alors commencer par le SOA et vérifier que votre adresse IP correcte est donnée par le serveur DNS, puis suivre l'arborescence. Il est bon de vérifier si les serveurs DNS de Google ont reçu les changements, et enfin si votre serveur DNS local peut résoudre votre nom de domaine à l'adresse IP correcte.

5voto

Obtenez des types d'enregistrement spécifiques à partir d'un serveur DNS spécifié avec une seule commande.

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

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

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

nslookup -q=MX stackexchange.com 8.8.4.4

2voto

Pour changer votre serveur DNS par défaut dans nslookup, vous pouvez simplement changer le serveur en tapant le NAME ou l'IP du serveurDNS Dans l'exemple ci-dessous, j'ai changé mon serveur DNS par défaut (192.168.50.21) par un nouveau serveur (4.2.2.3).

C:\Windows\system32 >nslookup

Serveur par défaut : UnKnownn

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 contre 4.2.2.3 versus 192.168.50.21

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X