„Ping“ mit dem DNS-Protokoll

Aug 19 2020

Gibt es anerkannte „gute Vorgehensweisen“, um zu überprüfen, ob die Netzwerkverbindung zu einem DNS-Server betriebsbereit ist und der Server nur minimal antwortet, außer dass er eine Suchanforderung ausgibt? Wenn ich mir den Code für Nagios als besonderes Beispiel ansehe, stelle ich fest, dass er sich an "wird dieser Name aufgelöst?" zu orientieren scheint. statt "Ist der Server in Ordnung?".

Ich habe eine Nullabfrage versucht, aber sie scheint ignoriert zu werden. Ich habe versucht, den Serverstatus anzufordern, und während einige antworten (normalerweise mit "nicht implementiert"), ignorieren andere die Anfrage. Ich würde etwas Besseres vorziehen, als mich auf Ping zu verlassen, da ich viele Serversysteme gesehen habe, die Pings ignorieren, und wegen des zusätzlichen Aufwands, mit Fähigkeiten usw. herumzuspielen.

Derzeit vermute ich, dass die einzig dauerhaft zuverlässige Lösung darin besteht, nach etwas wie google.com zu suchen, unter der Annahme, dass der Server dies zwischengespeichert hat, um nur minimalen Aufwand zu beantworten: Da ich dies alle paar Minuten tun muss, tue ich es nicht möchte seinen Besitzer verärgern.

Antworten

2 telcoM Aug 19 2020 at 16:01

RFC 6303 listet eine Reihe von DNS-Zonen auf, für die im Wesentlichen jeder DNS-Server antworten können sollte, im Grunde um zu verhindern, dass diese Abfragen unnötigerweise an den Stamm der DNS-Hierarchie weitergegeben werden, wenn diese Zonen nicht für lokale Zwecke verwendet werden.

Die älteste und bekannteste davon ist die Rückwärtszone für das Loopback-Netzwerk und insbesondere der PTR-Eintrag für die IPv4-Adresse 127.0.0.1 (dh der FQDN 1.0.0.127.in-addr.arpa.). Grundsätzlich sollte das jeder DNS-Server leisten können, ohne einen anderen DNS-Server abzufragen.

Obwohl dig -x 127.0.0.1 @dns-server-addresses sich also technisch gesehen um eine Abfrage nach einem bestimmten Datensatz handelt, ist es effektiv anwendbar als "Ist der Server in Ordnung?" testen, da dies ein Datensatz ist, sollte jeder DNS-Server mit minimalem Aufwand und ohne Kontakt zu einem anderen DNS-Server auflösen können.

Die Abfrage nach dem Namen localhost.sollte praktisch genauso gut sein, beachten Sie nur, dass Sie explizit den Punkt am Ende einfügen sollten, um anzuzeigen, dass der abgefragte Name bereits vollständig qualifiziert ist, um zu verhindern, dass das von Ihnen verwendete Tool möglicherweise etwas hinzufügt Ihr lokales Domain-Suffix, was die Ergebnisse verfälschen könnte.