"Pinging" en utilisant le protocole DNS
Existe-t-il une "bonne pratique" acceptée pour vérifier que la connexion réseau à un serveur DNS est opérationnelle et que le serveur répond de manière minimale, autre que l'émission d'une demande de recherche ? En regardant le code de Nagios comme exemple particulier, je remarque qu'il semble être orienté vers "est-ce que ce nom se résout?" plutôt que "est-ce que le serveur est OK ?".
J'ai essayé une requête nulle mais elle semble être ignorée. J'ai essayé de demander l'état du serveur et tandis que certains répondent (généralement par "non implémenté"), d'autres ignorent la demande. Je préférerais quelque chose de mieux que de compter sur le ping, car j'ai vu de nombreux systèmes de serveurs qui ignorent les pings, et à cause des tracas supplémentaires liés aux capacités, etc.
À l'heure actuelle, je soupçonne que la seule solution fiable serait de rechercher quelque chose comme google.com, en supposant que le serveur l'aura mis en cache pour dépenser un minimum d'efforts pour répondre : puisque je dois le faire toutes les quelques minutes, je ne le fais pas vouloir contrarier son propriétaire.
Réponses
La RFC 6303 répertorie un certain nombre de zones DNS auxquelles chaque serveur DNS devrait pouvoir répondre, essentiellement pour empêcher ces requêtes d'être propagées inutilement vers la racine de la hiérarchie DNS, si ces zones ne sont pas utilisées à des fins locales.
La plus ancienne et la plus connue d'entre elles est la zone inverse pour le réseau en boucle, et en particulier l'enregistrement PTR pour l'adresse IPv4 127.0.0.1 (c'est-à-dire le FQDN 1.0.0.127.in-addr.arpa.
). Fondamentalement, chaque serveur DNS devrait pouvoir fournir cela sans interroger aucun autre serveur DNS.
Ainsi, bien qu'il s'agisse dig -x 127.0.0.1 @dns-server-address
techniquement d'une requête pour un enregistrement particulier, elle s'applique effectivement comme "le serveur est-il OK ?" test, puisqu'il s'agit d'un enregistrement que chaque serveur DNS devrait pouvoir résoudre avec un minimum d'effort et sans contacter un autre serveur DNS.
La requête pour le nom localhost.
devrait être pratiquement aussi bonne, notez simplement que vous devez inclure explicitement le point à la fin pour indiquer que le nom que vous interrogez est déjà entièrement qualifié, pour empêcher l'outil que vous utilisez d'ajouter éventuellement votre suffixe de domaine local qui pourrait fausser les résultats.