J'aimerais envoyer une requête à un serveur DNS spécifique, dont je connais l'adresse IP. Peu importe que ce soit 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 ou pas du tout à mes requêtes.
Donc, cela devrait être quelque chose comme:
nslookup --dns-ip=8.8.8.8 superuser.com
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
Le simple fait de fouiller dans les options de nslookup, que vous pouvez afficher si vous appelez 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
Oui, C:\Documents and Settings\Anton Daneyko>nslookup superuser.com
recherchera votre propre serveur DNS pour connaître l'adresse IP de superuser.com. Si vous ajoutez l'adresse IP ou le nom d'un autre serveur DNS à la ligne de commande, le serveur DNS indiqué recherchera l'adresse IP de superutilisateur.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
À propos, 8.8.4.4 est l'adresse IP des serveurs Google DNS.
Mais, les deux réponses ci-dessus donnent des "réponses ne faisant pas autorité", comme aucune des deux 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 souhaitez demander au serveur faisant autorité, commencez par connaître le nom de l'adresse IP du serveur faisant autorité, à l'aide de la commande suivante:
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 ne faisant pas autorité de votre serveur DNS local, de Marburg Uni, nommant tous les serveurs faisant autorité pour le superutilisateur.com. Ensuite, vous pouvez utiliser la commande que nous avons utilisée précédemment pour interroger l’un 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, le serveur faisant autorité SOA a renvoyé les adresses IP et vous ne voyez donc plus le commentaire "Réponse ne faisant pas autorité". Cela est particulièrement utile lorsque vous avez créé un nouveau nom de domaine, 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 par le SOA et vérifier que votre adresse IP correcte est fournie par le serveur DNS, puis la suivre plus loin dans l'arborescence. C'est bien de vérifier si les serveurs DNS 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.
Pour changer votre serveur DNS par défaut dans nslookup, vous pouvez simplement changer de serveur en tapant le serveur NAMEorIPofDNS. Dans l'exemple ci-dessous, j'ai remplacé mon serveur DNS par défaut (192.168.50.21) (4.2.2.3).
C:\Windows\system32> nslookup
Serveur par défaut: inconnu
Adresse: 192.168.50.21
serveur 4.2.2.3
Serveur par défaut: c.resolvers.level3.net
Adresse: 4.2.2.3
>
Je suis maintenant prêt à poser des questions sur 4.2.2.3 contre 192.168.50.21
vous pouvez configurer le DNS principal à utiliser avec votre connexion.
Accédez à vos propriétés de connexion => Internet Procol (TCP/IP). (l'endroit où vous pouvez définir une adresse IP statique)
Ici, vous pouvez définir manuellement le DNS que vous voulez utiliser pour chaque connexion.
Après le test, vous pouvez toujours rétablir sa valeur précédente.
Je travaille sur Openwrt 18.06.1 ARMv6 Raspberry Pi et la mise en place de DNS ainsi que de dnscrypt-proxy a donc eu un problème très similaire. La cause fondamentale en est que le fournisseur d'accès Internet local intercepte les réponses non sécurisées de root-servers.net, les réponses indiquant que le site n'a pas été trouvé, puis redirigées vers leur propre site Web. Bien que ce ne soit pas un gros problème de sécurité, je ne le trouve pas particulièrement utile non plus.
Le premier test à effectuer lorsque vous interrogez une adresse spécifique consiste en fait à essayer une adresse non valide, afin de vous assurer que vous obtenez une réponse null correcte lorsque vous utilisez les paramètres serveur, port et hôte. Il existe de nombreux guides et versions et il est facile de penser vous effectuez un test de port alors qu'il répond en fait à partir de résultats mis en cache ou de serveurs par défaut. Après avoir obtenu une réponse nulle, utilisez une adresse de serveur et un port actifs. Les ports actifs peuvent être affichés sur openwrt avec netstat -plnt mais notez que certaines commandes de routeur peuvent avoir besoin d'être installées en premier. Le service tor que j'ai défini sur le port 9053 ne s'affiche pas ici, mais fonctionne après l'ajout de DNSPort 127.0.0.1:9053 au fichier torrc. Le format nslookup sur cette plate-forme accepte les paramètres [hôte] et [serveur] et je peux tester dns avec nslookup cnn.com 127.0.0.1 # 9053 Je peux tester dnscrypt avec la commande nslookup cnn.com 127.0.0.1 # 5353 Passage en port non valide les nombres ou les domaines obtiennent une réponse; ; la connexion a expiré; aucun serveur n’a pu être atteint. Dig fonctionne également sur openwrt mais doit être installé à partir du paquet bind-Dig. Dig -q 127.0.0.1 -p 9053 www.bbc.com Et échoue à nouveau pour les ports non valides. Dans mon cas, le problème était résolu lorsque je changeais les entrées dans/etc/config/network et que je définissais l'option DNS '127.0.0.1' pour les réseaux où j'utilisais auparavant des entrées DNS non sécurisées.
Pour rechercher des types d'enregistrement autres que les enregistrements A et AAAA (et CNAME) par défaut renvoyés par nslookup, à l'aide du serveur DNS que vous spécifiez:
nslookup -q=<record type> <Host> <DNS server>
Par exemple, pour renvoyer des enregistrements MX pour le domaine stackexchange.com
à l'aide du serveur DNS 8.8.4.4
, la commande serait la suivante:
nslookup -q=MX stackexchange.com 8.8.4.4
Pour Windows, ce que vous cherchez peut-être est présenté dans l'article suivant: https://technet.Microsoft.com/en-us/library/ff394369.aspx