W jaki sposób system kliencki w sieci Active Directory znajduje się w której witrynie?

21

Kiedy przygotowywałem prezentację na temat rozpoczęcia administracji Windows, uderzyło mnie pytanie, które mnie dziwi, że nie zadałem wcześniej.

Wiem to:

  • Usługi AD są logicznie konfigurowane w lokacjach, aby pomóc w replikacji i zmniejszyć opóźnienie niezbędnej domeny między komputerami klienckimi a usługami domenowymi.
  • Witryny są zdefiniowane przez zastosowane do nich podsieci
  • subdomena _msdcs zawiera hierarchię rekordów SRV do wyszukiwania ogólnego (_tcp) i wyszukiwania specyficznego dla witryny (_sites)
  • Komputery w jakiś sposób wiedzą, na której stronie się znajdują, albo kontroler domeny decyduje się na przejrzystość w jakiejś magii DNS ... czy to prawda?

Ten post na blogu wskazuje, że komputery klienckie w sieci AD mogą „wiedzieć”, do której witryny należą. Moje pytanie brzmi: jeśli tak, to w jaki sposób się dowiadują?

Jeśli sam klient nie wie, w jaki sposób kontroler domeny pomaga maszynie w procesie wyboru usług AD najbliższych temu komputerowi klienckiemu?

Peter Grace
źródło

Odpowiedzi:

29

Odpowiedź jest taka, że ​​przy pierwszym uwierzytelnieniu klienta w usłudze Active Directory klient nie wie, w której witrynie się znajduje.

Przy pierwszym dołączaniu do domeny klient generuje ogólne zapytania DNS i LDAP oraz pobiera listę wszystkich kontrolerów domeny w domenie, a następnie przegląda listę, próbując powiązać LDAP i pierwszy udany kontroler domeny, z którym się łączy - to znaczy pierwszy DC, z którym się uwierzytelnia.

Po dołączeniu klienta do domeny usługa Active Directory powie klientowi, do której witryny należy. Usługa Active Directory wie o tym, ponieważ administrator umieścił podsieć IP klienta w Witrynach i usługach AD i powiązał ją z Witryną.

Usługa Active Directory informuje klienta o swojej witrynie AD, a klient przechowuje ją we własnym rejestrze w HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\DynamicSiteNamewartości rejestru. W ten sposób przy następnym uruchomieniu klient wie, jakie zapytanie DNS należy wykonać, aby uzyskać tylko kontrolery domeny znajdujące się w tej witrynie.

Oczywiście pełne zachowanie jest udokumentowane w KB247811 , ale jeśli chcesz to zobaczyć na własne oczy , możesz uruchomić Wireshark lub NetMon i wykonać śledzenie pakietów, a następnie dołączyć do domeny podczas działania śledzenia. Zobaczysz dokładną sekwencję zapytań DNS i powiązań LDAP. Kolejne zapytania DNS i powiązania LDAP są tworzone dla podstref specyficznych dla witryny, ponieważ AD poinformował klienta, do której witryny należy.

Usługa Netlogon będzie okresowo odświeżać informacje o swojej witrynie AD, więc jeśli przejdziesz do innej sieci, twój klient automatycznie otrzyma nową witrynę. Można to zmienić w HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\SiteNameTimeoutwartości rejestru. ( Link )

Ryan Ries
źródło
GAH! Pobiłeś mnie do tego!
MD Marra
4
@MDMarra To rzadkie zjawisko, panie.
Ryan Ries
Z ciekawości, czy sprawdzenie loglogów zostało kiedykolwiek wykonane ponownie? Na przykład, co jeśli miałbym system, który był w Ośrodku 1, a następnie przeniósł osobę i sprzęt do Ośrodka 2, czy maszyna nadal identyfikowałaby się i kontynuowała rozmowę z Ośrodkiem 1?
Peter Grace,
Właściwie to cofam. Netlogon może aktualizować nazwę dynamicznej witryny bez ponownego uruchamiania: technet.microsoft.com/en-us/library/cc958488.aspx
Ryan Ries
@RyanRies, jeśli chcesz wstawić to do tekstu odpowiedzi, byłoby świetnie, w przeciwnym razie edytuję odpowiedź, aby ją włączyć.
Peter Grace,
8

W rzeczywistości istnieje kilka powiązanych funkcji / interfejsów API. Mimo że są długie, w rzeczywistości są to jedne z ciekawszych sposobów czytania w Active Directory.

Niezależnie od poniższego wyjaśnienia, musisz pamiętać o dwóch rzeczach:

  • Jeśli kontroler domeny w lokalnej witrynie nie odpowiada z jakiegokolwiek powodu, oczekuje się, że klient skontaktuje się z dowolnym kontrolerem domeny w domenie. Jest to normalne i zawsze było to zachowanie domyślne. Czasami nie wiadomo, dlaczego tak się dzieje.

  • To może być nieoptymalne. Rozważmy następujący scenariusz: Trzy witryny: Nowy Jork (hub / datacener - szybki), Los Angeles (rozmawiał z NYC - szybko) i Kazachstan (rozmawiał z NYC - zdecydowanie nie szybko). Jeśli Twój klient w witrynie LA nie może skontaktować się z lokalnym przedstawicielstwem lokalnym z jakiegokolwiek powodu, nie jest wykluczone, że zostanie on uwierzytelniony w Kazachstanie.

Istnieje kilka rozwiązań. Możesz zrobić jedno lub oba.

  • Firma Microsoft utworzyła ustawienie zasad grupy / rejestru o odpowiedniej nazwie TryNextClosestSite. Oznacza to, że klient LA powinien wypróbować NYC przed wędrowaniem po planecie w poszukiwaniu DC. Znakomity! Zajęło to osiem lat, ale w końcu dostaliśmy to dzięki Vista / 2008. Pamiętaj, że domyślnie wyłączone, musisz utworzyć obiekt GPO, aby to włączyć.

  • W przypadku mówionych witryn, w których naprawdę nie chcesz, aby DC obsługiwał klientów w innych witrynach, możesz utworzyć ustawienie zasad grupy / rejestru, które określa, które rekordy DNS nie powinny być rejestrowane. Jest to określane jako DNS Mnemonics.


Znajdowanie kontrolera domeny w najbliższej witrynie (DsGetSiteName API)
http://technet.microsoft.com/en-us/library/cc978016.aspx

Mapowanie adresów IP do nazw witryn

„Podczas uruchamiania Net Logon usługa Net Logon na każdym kontrolerze domeny wylicza obiekty lokacji w kontenerze konfiguracji. Logowanie netto na każdym kontrolerze domeny jest również powiadamiane o wszelkich zmianach dokonanych w obiektach lokacji. Net Logon używa informacji o lokacji do zbudowania struktura w pamięci używana do mapowania adresów IP na nazwy witryn.

„Gdy klient, który szuka kontrolera domeny, otrzymuje listę adresów IP kontrolera domeny z DNS, klient kolejno przesyła zapytania do kontrolerów domeny, aby dowiedzieć się, który kontroler domeny jest dostępny i odpowiedni. Usługa Active Directory przechwytuje zapytanie, które zawiera adres IP klienta i przekazuje go do Net Logon na kontrolerze domeny. Net Logon wyszukuje adres IP klienta w tabeli mapowania podsieci do witryny, znajdując obiekt podsieci, który najbardziej odpowiada adresowi IP klienta, a następnie zwraca następujące informacje:

  • Nazwa witryny, w której znajduje się klient, lub witryny, która najbardziej odpowiada adresowi IP klienta.

  • Nazwa witryny, w której znajduje się bieżący kontroler domeny.

  • Bit wskazujący, czy znaleziony kontroler domeny znajduje się (bit jest ustawiony), czy nie (bit nie jest ustawiony) w witrynie najbliżej klienta.

„Kontroler domeny zwraca informacje do klienta. Odpowiedź zawiera także różne inne informacje opisujące kontroler domeny. Klient sprawdza informacje w celu ustalenia, czy spróbować znaleźć lepszego kontrolera domeny. Decyzja jest podejmowana w następujący sposób:

„Jeśli zwrócony kontroler domeny znajduje się w najbliższej witrynie (ustawiony jest zwracany bit), klient używa tego kontrolera domeny.

„Jeśli klient próbował już znaleźć kontroler domeny w witrynie, w której kontroler domeny twierdzi, że klient się znajduje, klient używa tego kontrolera domeny.

„Jeśli kontroler domeny nie znajduje się w najbliższej witrynie, klient aktualizuje informacje o swojej witrynie i wysyła nowe zapytanie DNS w celu znalezienia nowego kontrolera domeny w tej witrynie. Jeśli drugie zapytanie zakończy się powodzeniem, używany jest nowy kontroler domeny. Jeśli drugie zapytanie nie powiedzie się, używany jest oryginalny kontroler domeny.

„Jeśli domena, której dotyczy komputer, jest taka sama jak domena, do której komputer jest przyłączony, witryna, w której znajduje się komputer (zgłoszona przez kontroler domeny), jest przechowywana w rejestrze komputera. Klient przechowuje to nazwa witryny we wpisie rejestru DynamicSiteName w HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Netlogon \ Parameters. Dlatego interfejs API DsGetSiteName zwraca witrynę, w której znajduje się komputer. ”

Funkcja DsGetDcName
http://msdn.microsoft.com/en-us/library/ms675983%28VS.85%29.aspx

Typy lokalizatorów
http://technet.microsoft.com/en-us/library/cc978019.aspx

Funkcje usługi katalogowej
http://technet.microsoft.com/en-us/subscriptions/ms675900%28v=vs.85%29.aspx

Jak działa obsługa DNS dla Active Directory
http://technet.microsoft.com/en-us/library/cc759550%28v=ws.10%29.aspx

Jak zoptymalizować lokalizację kontrolera domeny, który znajduje się poza witryną klienta
http://support.microsoft.com/kb/306602

Greg Askew
źródło