DNS Check - überwacht Ihr eure eingetragenen resolver?

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • DNS Check - überwacht Ihr eure eingetragenen resolver?

      Gestern gabs "ein bisschen" DDOS: heise.de/newsticker/meldung/DD…Dienste-lahm-3357289.html

      Wir haben das bei uns mitbekommen, da unsere Hetzner Maschinen für ein paar Stunden (über die Hetzner resolver) github.com nicht auflösen konnten. Sowas nervt natürlich extrem, vor allem wenn mans dann checkt wenn man `git clone git@github.com:...` eingibt..

      Hetzner trägt bei uns by default folgende drei DNS Server ein:

      nameserver 213.133.100.100
      nameserver 213.133.99.99
      nameserver 213.133.98.98

      Gehen wir davon aus, dass wir nur maschinen bei Hetzner haben - ich erstelle jetzt einen Host in Bloonix pro DNS Server und werfe dort alle domains rein, die ein debian so zum überleben braucht (z.b. github.com, debian.org, ntp server usw usf).

      Das wär jetzt so meine erste Überlegung zu dem Thema. Was meint Ihr? Ich finde, das nicht zu überwachen ist eigentlich nicht so gut. Bis dato hab ich das nicht oder nicht gescheit gemacht (jeden Server bloonix.de resolven lassen z.B. ist ja eig nur die Hälfte der Wette).
      A service is only a service if its monitored.
    • Jeden Server, der in der resolv.conf eingetragen ist, einzeln remote zu überwachen ist sinnlos .. wenn der erste erreichbar ist und ggf. falsch antwortet, dann hilft es Dir auch nicht, dass der zweite oder dritte in der Liste richtig arbeiten, denn das Ergebis des ersten erreichbaren zählt.

      Sofern es überhaupt zweckdienlich ist, zu wissen, ob die lokale Namensauflösung richtig funktioniert, so würde ich das versuchen anders zu regeln.
      Punkt 1 wäre, dass ich mir mehrere eigene Cachning Nameserver (bind, pdns-recorsur, etc) auf verschiedenen Servern anlegen würde, die nach Möglichkeit auch netzwerkstechnisch Unabhänging und lokal getrennt sind. Und diese Server würde ich dann in die resolv.conf meiner übrigen Server aufnehmen.
      Punkt 2 wäre dann ein lokaler Agent auf den Caching Nameservern, der bestimmte - mir wichtige - Domains beim Nameserver abfragt und prüft. Remote-Abfragen führen bei Erreichbarkeitsproblemen und DNS-Checks sonst zu false positives.

      Aber müssen denn zu jeder Stunde die Nameserver problemlos laufen, damit ein Linux ungestört arbeiten kann? Ausser in einigen Spezial-Fällen kann ich mir das kaum vorstellen.
      An vielen Stellen, bei den sich Server untereinander kontaktieren müssen, sind IP-Adressen schon seit jeher erste Wahl, da man über Domain-Namen sonst immer SPOF - den Nameserver halt - hat und diesen nur mit einigem Aufwand umschiffen kann (DNS kann zwar redundant ausgelegt werden, aber da immer nur eine zusätzlicher DNS-Server befragt wird, wenn der erste nicht erreichbar ist, hast Du Probleme zB bei DDos-Attacken, wo der erste vielleicht noch antwortet - aber nicht wie erwartet).
      Einzige Ausnahem wären hier Mail-Server, die zwingend auf DNS-Server angewiesen sind .. aber die sind für gewöhnlich so konfiguriert, dass sie auch "überleben", wenn die DNS-Server nicht erreichbar sind oder falsch antworten. Im Zweifel gibts halt Bounces oder die Mail bleibt etwas länger in der Queue - nichts, womit man nicht leben könnte.
    • Vllt hat ja jemand anders Erfahrungen damit gemacht, die benötigten DNS Server zu überwachen?


      wenn der erste erreichbar ist und ggf. falsch antwortet, dann hilft es Dir auch nicht, dass der zweite oder dritte in der Liste richtig arbeiten, denn das Ergebis des ersten erreichbaren zählt.


      Es geht um monitoring, nicht darum, was unsere Linux Server (noch) tun können oder nicht - ändert einer der DNS Server eine für eine Domain IP kann man das überwachen, gibt einer dafür keine Antwort fällt das auch auf.


      ob die lokale Namensauflösung richtig funktioniert


      Konkretisiert was mich interessiert:
      - sind die Nameserver unserer Provider (z.B. u.a. Hetzner) erreichbar
      - geben diese Domains wie erwartet zurück


      Punkt 2 wäre dann ein lokaler Agent auf den Caching Nameservern, der bestimmte - mir wichtige - Domains beim Nameserver abfragt und prüft. Remote-Abfragen führen bei Erreichbarkeitsproblemen und DNS-Checks sonst zu false positives.


      Wenn ich jetzt im Moment wissen will ob ns1.your-server.de github.com resolven soll möchte ich da keine caching Schicht dazwischen haben sondern den Server direkt ansprechen. Wenn er down ist ist das eine Information, die ich überwachen will. Auch sonst sehe ich wenig sinn darin, so ein setup unter globalen Maschinen zu verteilen - selbstverständlich lasse ich die DNS Serer der provider in der resolv.conf stehen. Ein localer dns-cache auf jeder Maschine ist ein anderes Thema und hat auch mit der Überwachung der DNS Server der Provider nichts zu tun.


      Aber müssen denn zu jeder Stunde die Nameserver problemlos laufen, damit ein Linux ungestört arbeiten kann?


      Das lässt sich ganz einfach anzeigen: tcpdump -vvv -s 0 -l -n port 53 und dann einfach mal per SSH einloggen, usw usf. Freilich benutzt alles mögliche DNS.

      Ist ja auch egal, ich will, dass mein DNS funktioniert ;) Daher muss das auch überwacht werden. A service is only a service if its monitored.

      Zurück zur eigentlichen Frage- wer überwacht seine relevanten DNS Server und wie?
      A service is only a service if its monitored.
    • pthurner wrote:

      Es geht um monitoring, nicht darum, was unsere Linux Server (noch) tun können oder nicht - ändert einer der DNS Server eine für eine Domain IP kann man das überwachen, gibt einer dafür keine Antwort fällt das auch auf.

      Naja, Ok, aber das ist nur die Hälfte der Wahrheit: Wenn ein Nameserver nicht korrekt antwortet, so kann die abfragende Applikation nicht korrekt arbeiten und gibt als Fehler dafür (hoffentlich) auch den Fehler in der Namensauflösung zurück - Da Du Deine Apps sicher auch monitorst, erscheint es mir daher unsinnig, die Nameserver ebenfalls zu überwachen.
      Zudem erscheint es auch fragwürdig, was Dir die Information nutzt, dass der zweite und dritte Nameserver in der resolv.conf critical sind, wenn doch der erste funktioniert - der ja ohnehin ausschliesslich benutzt wird, solange er antwortet.

      pthurner wrote:

      Konkretisiert was mich interessiert:
      - sind die Nameserver unserer Provider (z.B. u.a. Hetzner) erreichbar
      - geben diese Domains wie erwartet zurück

      Das ist verständlich, aber das kannst Du eben nur überwachen - wenn die Nameserver nicht korrekt arbeiten, dann kannst Du erstmal nichts daran ändern.
      Daher die Idee mit den eigenen Caching Nameservern. Die hast Du unter Kontrolle und kannst sie beeinflussen und nach Deinem Gutdünken gestalten (zum Beispiel statische IP-Adressen für Domains aufnehmen, wenn mal das DNS großflächig gestört ist) und monitoren, ob sie auch immer da tun, was du willst.

      pthurner wrote:

      Wenn ich jetzt im Moment wissen will ob ns1.your-server.de github.com resolven soll möchte ich da keine caching Schicht dazwischen haben sondern den Server direkt ansprechen. Wenn er down ist ist das eine Information, die ich überwachen will. Auch sonst sehe ich wenig sinn darin, so ein setup unter globalen Maschinen zu verteilen - selbstverständlich lasse ich die DNS Serer der provider in der resolv.conf stehen. Ein localer dns-cache auf jeder Maschine ist ein anderes Thema und hat auch mit der Überwachung der DNS Server der Provider nichts zu tun.

      Ich glaube hier liegt ein Verständnisproblem vor:
      1- Caching Nameserver (genauer: nicht-authoritative Nameserver) sind diejenige Nameserver, die Du überall verwendest, die Dir Dein DSL-Provider gibt, damit Du deinen Anschluss nutzen kannst, die Dir Hentzner gibt, damit Du Deine Services betreiben kannst .. sprich: So werden die Nameserver genannt, die man tatsächlich ständig nutzt. Solche Cachning Nameserver haben früher auch viele Linux-Distributionen bei der Default-Installation in Form von bind mitgebracht - die Server von Hetzner sind nichts anderes, laufen halt nur nicht lokal bei Dir sondern auf deren Servern.
      Die andere Form der Nameserver, die es noch gibt, wären Authoritative Nameserver. Mit denen kommst Du in Kontakt, wenn Du selbst Domains verwaltest und zum Beispiel A-Records für diese erstellst.
      2. Die lokale Auflösung von DomainNamen unter Linux läuft im Normalfall über den ersten eingetragenen Nameserver in der resolv.conf .. 'lokal' meint hier also nur "auf dem Server" .. ob der befragte Caching Nameserver dann auch lokal oder remote erreichbar ist, ist irrelevant. (Meiner Meinung nach ist zudem auch überflüssig immer einen lokalen Cachung Nameserver auf jedem Server zu betreiben. Im Fehlerfall ist das viel zu komplex.

      pthurner wrote:

      Das lässt sich ganz einfach anzeigen: tcpdump -vvv -s 0 -l -n port 53 und dann einfach mal per SSH einloggen, usw usf. Freilich benutzt alles mögliche DNS.

      Das stimmt, die Frage ist hier mehr: Braucht es auch DNS? ssh zum Beispiel eigentlich nicht ;)

      pthurner wrote:

      Ist ja auch egal, ich will, dass mein DNS funktioniert Daher muss das auch überwacht werden. A service is only a service if its monitored.

      Da hast Du recht. Aber dann sorg selbst dafür, dass es funktioniert und überwache Deine eigenen Dienste und nicht die anderer, auf die Du keinen Einfluss hast. ;)

      pthurner wrote:

      Zurück zur eigentlichen Frage- wer überwacht seine relevanten DNS Server und wie?

      Ich! :saint:
      Wie gesagt: Eigene Caching Nameserver, mit eigenen Einträgen .. zum Beispiel für VPN-Verbindungen oder für Domains die schon gelöscht wurden oder für Domains, wo ich keinen authoritiven Namerserver brauche, um die korrekte Adresse zu kennen ;)
      Die eigenen Eintragungen überprüfen ich trivialerweise mit den konfigurierten Eiintragungen und frage sie am Nameserver ab. Und für externe Domains werden nur einige wenige geprüft, die besonders beständig sind (PTR-Record von 8.8.8.8 zum Beispiel ist schon Ewigkeiten identisch) und das auch nur um die Funktionsfähigkeit des Nameservers zu prüfen, denn:
      Den Rest brauch ich nicht prüfen, da Caching Nameserver direkt die Root-Server befragen, welche Authoritativen Nameserver für die abgefragte Domain zuständig sind und fragt da dann nach den korrekten Einträgen für die Domains, welche nur von den Domainhabern gesetzt sein können.


      Edit: Letzten kleine Absatz konkrtisiert und überflüssigen, dummen Scherz entfernt ;)

      The post was edited 1 time, last by LicoMonch ().