Strefy wyszukiwania wstecznego

W systemach DNS znaczącą rolę odgrywają strefy wstecznego wyszukiwania. DNS jest rolą która nie tylko tłumaczy nazwy domen na adresy IP, ale również adresy IP na nazwy domenowe. Niektóre usługi wymagają tłumaczenia w obie strony. Podobnie jak w przypadku klasycznych stref możliwe jest delegowanie takich stref, jednak zasady ich działania powodują, że proces ten jest trudniejszy szczególnie w przypadku stref w sieciach o wielkości dyktowanej VLSM.

Wyszukiwanie wsteczne jest ściśle powiązane z sieciami a konkretnie z adresacją. Aby to należycie wytłumaczyć musimy posłużyć się przykładem:

W firmie funkcjonuje sieć 172.20.0.0/16 oraz domena lokalna mydomain.local. Oznacza to, że urządzenia będące członkami tej domeny otrzymają stosowny suffix DNS czyli np serwer MYSQL o adresie 172.20.11.10 którego nazwa NETBIOS to MYSQLSRV001 będzie miał FQDN MYSQLSRV001.mydomain.local. Serwer ten będzie próbował zarejestrować zarówno swoją nazwę (rekord A/AAAA) jak i rekord PTR (wyszukiwania wstecznego) w serwerze DNS.

Do tego celu serwer DNS musi posiadać domenę wyszukiwania wstecznego odpowiednią dla tej sieci – w prezentowanym przykładzie będzie to 20.172.in-addr.arpa. Jak łatwo dostrzec notacja takiej strefy jest również wsteczna. Jeżeli serwer będzie miał możliwość odnalezienia takiej strefy i aktualizacje będą dozwolone, wprowadzi on swój adres i nazwę w następującej postaci:

10.11 PTR  MYSQLSRV001.mydomain.local. 

Jeśli teraz połączymy nasze 10.11 z 20.172 (nazwa strefy) i odczytamy od tyłu otrzymamy 172.20.11.20 (adres naszego serwera). Celem oddelegowania fragmentu sieci do innego serwera co do zasady używa się klasowych odniesień. Np w powyższym przykładzie możemy oddelegować sieć 172.20.20.0/24 na inny serwer DNS. W pliku serwera posiadającego strefę delegowaną wprowadzamy następujące odniesienie:

20.20.172 IN NS newdnsserver.local

Natomiast na serwerze docelowym tworzymy właściwą domenę wsteczną przechowującą wymagane rekordy:

20.20.172.in-addr.arpa

Sytuacja jest niestety bardziej skomplikowana w przypadku delegowania stref bezklasowych. I tak to strefy większe od podstawowej np. 23 należy podzielić na strefy /24 i oddelegować jako osobne strefy do serwera delegowanego.

Jeszcze bardziej problematycznym jest obejście stref mniejszych niż /24 np trzymających sieci /26 lub /27. Tu musimy posłużyć się dokumentem RFC2317.

Dzielenie polega na oddelegowaniu na serwerze głównym następującej strefy (przykład dla 172.20.0.0/25):

0/25.0.20.172 IN NS delegatedserver.local

Jest to jednak dopiero początek, ponieważ każdy rekord który będzie w wydelegowanym serwerze również trzeba odnieść do tego serwera ze strefy głównej; co znaczy, że oprócz powyższego wpisu należy także dla KAŻDEGO urządzenia dodać wpisy CNAME:

1  IN CNAME 1.0/25.0.20.172.in-addr.arpa
2  IN CNAME 2.0/25.0.20.172.in-addr.arpa
5  IN CNAME 5.0/25.0.20.172.in-addr.arpa
(...)

Dlatego wyjątkowo istotną rzeczą podczas planowania podsieci i usługi DNS jest umiejętne zaplanowanie stref wstecznych i planu IP.