Kategorie:

DC Locator, czyli jak Windows odnajduje domenę

Odnalezienie kontrolera domeny to jedna z kluczowych usług, aby móc skorzystać z usług w Active Directory. Stacji klienckiej do odnalezienia kontrolera domeny służy algorytm zwany DC Locator.

Active Directory posiada zawsze 2 nazwy:

  • DNS-ową – FQDN (fully qualified domain name), tzw. długa nazwa
  • NetBIOS-ową – tzw. krótka nazwa, która nie musi być taka sama jak początek nazwy FQDN domeny

Dlatego też DC Locator może działać w tych dwóch trybach:

  • Wyszukiwanie za pomocą DNSu
  • Wyszukiwanie z użyciem NetBIOS

DC Locator oparty o DNS:

Począwszy od Windowsa 2000 jest to preferowana metoda wykrywania kontrolera domeny opierając się właśnie o zapytania DNS-owe. Zatem ja to wygląda, pierwsze zapytanie o rekord SRV odbywa się do serwera DNS skonfigurowanego na karcie sieciowej na adres _ldap._tcp.dc._msdcs.FQDN_Domeny, czyli w moim przypadku _ldap._tcp.dc._msdcs.krbtgt.pl, dokładnie o ten rekord na poniższym zrzucie.

W odpowiedzi otrzymujemy wszystkie rekordy zarejestrowanym kontrolerów domeny w domenie, które spełniają wskazany warunek – usługa _ldap.
Co potwierdza poniższa odpowiedź na zapytanie.

Komputer gdy już zna listę serwerów obsługujących usługę LDAP, wybiera z tej listy w pierwszej kolejności te o najniższym priorytecie. Jeśli więcej niż jeden posiada ten sam priorytet, serwer jest wybierany losowo (zgodnie z algorytmem z RFC2782). Klient wysyła pakiet do kontrolera, oczekując na odpowiedź z danymi usługi, jeśli nie otrzyma odpowiedzi odpytuje następny serwer, do czasu uzyskania poprawnej odpowiedzi lub gdy odpyta już wszystkie kontrolery. W mojej testowej sieci jest tylko jeden kontroler domeny, zatem to jego zapytajmy o adres IP, czyli kolejnym krokiem jest zapytanie o rekord A.

Obrazek posiada pusty atrybut alt; plik o nazwie image-3.png

W odpowiedzi otrzymujemy adres IP naszego kontrolera domeny, do którego teraz stacja robocza robi zapytanie z użyciem protokołu MS-CLDAP (tzw. LDAP „Ping” lub LDAP bezpołączeniowy, gdyż wykorzystuje protokół UDP). W treści zapytania jest użyty filtr z danymi hosta tworzącego zapytanie oraz domeny, w której się znajduje. Celem tego pakietu jest odnalezienie atrybutu „NetLogon”. Funkcja NetLogon wyszukuje adres IP klienta oraz mapuje go do odpowiedniej lokalizacji względem podsieci będącej najbliżej klienta, w której on się znajduje.

W odpowiedzi kontroler przekazuje wartość atrybutu NetLogon, w którym znajduje się m.in. nazwa domeny, nazwa kontrolera domeny odpowiadającego na zapytanie, oraz nazwa Site, w którym klient się znajduje oraz flaga DSClosestFlag. Przyjmuje 2 wartości 0 albo 1 i oznacza czy dany Site jest „najbliżej” klienta.

Po zamianie wartości szesnastkowej na ciąg znaków otrzymujemy:

DC Locator oparty o NetBIOS:

Wyszukiwanie kontrolera domeny w oparciu o NetBIOS było szerzej stosowane przed wydaniem Windows-a 2000. Wraz z premierą tego systemu preferencje w wyszukiwaniu kontrolera domeny zostały zmienione na metodę DNS-ową. NetBIOS pozostał fallbackiem w przypadku, gdy DNS jest nieosiągalny. Aby odnaleźć kontroler, klient wysyła broadcastem zapytanie do serwera WINS (Windows Internet Name Service) o lokalizację kontrolera domeny. Po otrzymaniu odpowiedzi, klient wysyła Mailslot ping (nieszyfrowana komunikacja) do kontrolera oczekując na odpowiedź.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *