Und schwups war DNS aus

Posted by christopher on Friday, February 3, 2017

Was lernen wir als kleine Kinder von unseren Eltern? Immer in beide Richtungen schauen bevor die Straße überquert wird. – Nur was ist mit Einbahnstraßen? Ist es schlau sich den unnötigen Blick in die verbotene Gegenrichtung zu sparen, oder ist es schlau das Unerwartete zu erwarten und trotzdem in beide Richtungen zu schauen?

Wenn es um Computer geht ist es meist am besten, auch mit dem Unerwarteten zu rechnen, das ist zum Beispiel eine wichtige Lektion wenn es um IT-Security geht, aber auch beim Debugging kann das viel Kopfzerbrechen sparen (aber leider meist keine Zeit). Aber auch in der Kommunikation mit Menschen kann das eine wichtige Lektion sein, sonst passieren manchmal nicht nur Dinge die gewollt waren, sondern auch Dinge die nicht gewollt waren. Besonders gefährlich ist, wenn Dinge als implizit gegeben angenommen werden und nicht explizit gesagt werden.

Soetwas ist uns heute mit dem DNS an einem unserer drei Rechenzentrums-Standorte passiert. Dort wird der Traffic zum Schutz gegen DDoS-Attacken derzeit teilweise gefiltert, spezifisch wird DNS-Traffic aktuell komplett blockiert, außer zu einer kleinen Liste von ausgewählten externen Resolvern. Alle Server in diesem Rechenzentrum müssen diese Resolver benutzen, sie können weder selbst Namen im DNS auflösen noch externe Resolver darum bitten, beides verhindert der Filter. (Plot-Twist: Wegen dieses Filters funktionierte auch unser Monitoring für “funktioniert DNS-Auflösung in diesem Rechenzentrum?” seit einer Weile nicht mehr und war daher stumm geschaltet. Das ist nebenher einer der Gründe warum wir das Setup ändern wollten. Dazu weiter unten mehr.)

Nun wollen wir auf neue, interne Resolver umstellen, unter anderem damit wir selbst Caching betreiben können, aber auch damit wir z.B. DNSSEC zuverlässig nutzen können und einen besseren Blick darauf haben, was auf den Resolvern vor sich geht. Also schrieben wir die freundlichen Leute vom RZ-Betreiber an, gaben ihnen die Liste der IP-Adressen unserer neuen Resolver und baten darum, die für DNS-Traffic komplett frei zu schalten, damit wir die benutzen können.

Und schon war’s passiert.

Was wir meinten war: Die Filter-Regeln sollen ergänzt werden, nämlich um eine Regel die unsere neuen Resolver benutzbar macht. (Damit wir dann im nächsten Schritt anfangen können auf diese Resolver umzustellen. Danach könnte dann die alte Filter-Regel weiter angepasst werden, sie kann aber auch einfach bestehen bleiben.)

Was beim Rechenzentrums-Betreiber ankam war: Alte Filterregel durch neue ersetzen.

Und schwups ging mit einem Mal ab 14:10 das DNS nicht mehr, außer auf drei neuen Resolvern, die aber noch keiner unserer Server benutzte. So schnell geht’s manchmal. Ärgerlich, aber wenigstens war es aus technischer Sicht schnell zu beheben. Doppelt ärgerlich, weil unser Monitoring nicht sofort Alarm schlagen konnte (schönen Gruß von weiter oben), deswegen dauerte es über eine halbe Stunde bis es deutlich auffiel und wir mit der Fehlersuche und Behebung beginnen konnten. Besonders ärgerlich, weil diese Art Missverständnis eigentlich nichts Neues ist und wir auf solche Details achten, in diesem Fall aber echt kalt erwischt wurden. So oder so: Ab 15:15 ging alles wieder.

Das hätte nun durch deutlichere Kommunikation (weniger implizite Annahmen, mehr explizite Ansagen meinerseits, oder auf der Gegenseite mehr explizitie Rückfragen) verhindert werden können. Es hätte auch technisch verhindert werden können, wenn die neuen Resolver erstmal im Forwarding-Modus konfiguriert und alle Server im Rechenzentrum schon im Vorfeld auf die neuen Resolver umgestellt worden wären. In dem Fall hätten die neuen Resolver zunächst die alten Resolver benutzt und die Anfragen erstmal nur durchgereicht. Nach der Filter-Umstellung hätte dann auf den neuen Resolvern das Forwarding nach und nach abgestellt werden können. Aber dazu hätte eben das Unerwartete erwartet werden müssen. Hier beißt sich dann die Katze der Vorsicht in den Schwanz: Erstmal in Ruhe die neuen Resolver testen, oder um einem möglichen Missverständnis bei der Umstellung vorzugreifen schon vorher alles auf die neuen Resolver umstellen?

Es sollte eben immer erst in beide Richtungen geschaut werden. Das Problem bei Computern ist, dass es mehr als zwei Richtungen gibt und oft unklar ist wie viele es eigentlich sind.