Protokół DNS – zapytania rekurencyjne

  DNS, Protokół DNS, Teoria DNS

Przy wysyłaniu zapytania serwerowi DNS, w nagłówku można określić, czy chcesz dokonać tzw. zapytania rekurencyjnego. Oznacza to, że w chwili, gdy serwer DNS nie będzie znał odpowiedzi (nie jest autorytatywnym serwerem domeny, o którą pytamy), w celu jej uzyskania uruchomi standardowy algorytm (tj. rozpocznie od korzeniowych serwerów DNS, przechodząc kolejno na niższe poziomy) a pytającemu prześle wynik. Wykonanie zapytania rekurencyjnego zależy od serwera. Może on odrzucić żądanie a Klientowi wysłać taką odpowiedź, którą zna. Jeśli nie zna nawet części odpowiedzi, często przekazuje wykaz korzeniowych serwerów DNS (czym informuje, gdzie mamy rozpocząć wyszukiwanie).

Regułą miałoby być, że autorytatywne serwery DNS nie wykonują zapytań rekurencyjnych, a jedynie realizują swoje główne zadanie, tj. przekazują wiarygodne informacje o swojej stałej liście domen i ich rekordach. Odwrotna sytuacja występuje w przypadku caching serwerów DNS, których istotą jest wykonywanie zapytań rekurencyjnych.

Umieszczenie serwera autorytatywnego z caching serwerem DNS na jednym urządzeniu nie jest najlepszym pomysłem, ze względu na problemy, które mogą wystąpić. Wyobraźmy sobie domenę „xyz.cz”, której autorytatywnym serwerem jest „ns.abc.cz”. Serwer ten jest jednocześnie wykorzystywany jako caching serwer, w związku z czym pośredniczy w udostępnianiu nam całego systemu DNS w Internecie. W chwili, gdy domena „xyz.cz” zmieni swoje autorytatywne serwery DNS, tj. serwery DNS domeny „.cz” delegują ją w inne miejsce niż na „ns.abc.cz”, a administrator serwera „ns.abc.cz“ zapomni usunąć tę strefę z serwera (bądź o wystąpieniu zmiany w ogóle się nie dowie), wysyłając zapytanie o domenę, otrzymamy odpowiedź od „ns.abc.cz”, która nie tylko nie musi być prawidłowa, ale będzie wyglądać jak autorytatywna. Wynika to z faktu, że „ns.abc.cz” nadal jest skonfigurowany jako autorytatywny serwer domeny „xyz.cz”, a sam w żaden sposób nie kontroluje aktualności delegacji tej domeny. Dokładne oddzielenie serwerów autorytatywnych od caching serwerów DNS pozwoli zapobiec wystąpieniu tego typu problemu.